iLogicによる設計の自動化などで作業効率化を図ります。
iLogic - 三面図一括配置
iLogicの目次
三面図一括配置
複数ファイルの三面図を一括配置します。
- 1.複数の設計ファイルで同じ自動化ルールを実行できるように外部ルールで作成します。
iLogicブラウザの外部ルールで追加したフォルダを右クリックして[新しい外部ルールを作成]をクリック。

- 2.任意の名前を入力して[保存]をクリック。

- 3.下記コードを入力して[保存]をクリック。
Sub Main() Try If ThisApplication.ActiveDocumentType <> DocumentTypeEnum.kDrawingDocumentObject Then Exit Sub Dim oDrawingDoc As DrawingDocument = ThisApplication.ActiveDocument Dim selectedFiles As Collection = SelectMultipleFiles() If selectedFiles.Count = 0 Then Exit Sub EnsureSufficientSheets(oDrawingDoc, selectedFiles.Count) Dim centerX As Double = 21.0 Dim centerY As Double = 14.85 For i As Integer = 0 To selectedFiles.Count - 1 Try Dim filePath As String = selectedFiles(i + 1) Dim targetSheet As Sheet = oDrawingDoc.Sheets(i + 1) targetSheet.Name = System.IO.Path.GetFileNameWithoutExtension(filePath) CreateOrthographicViewsOnSheet(oDrawingDoc, targetSheet, filePath, centerX, centerY) Catch ex As Exception Continue For End Try Next oDrawingDoc.Sheets(1).Activate() Catch ex As Exception End Try End Sub Function SelectMultipleFiles() As Collection Dim selectedFiles As New Collection() Try Dim openFileDialog As New System.Windows.Forms.OpenFileDialog() With openFileDialog .Title = "3Dファイル選択" .Filter = "Inventor Parts (*.ipt)|*.ipt|Inventor Assemblies (*.iam)|*.iam|All Files (*.*)|*.*" .Multiselect = True .InitialDirectory = System.IO.Path.GetDirectoryName(ThisDoc.Document.FullFileName) End With If openFileDialog.ShowDialog() = System.Windows.Forms.DialogResult.OK Then For Each fileName As String In openFileDialog.FileNames selectedFiles.Add(fileName) Next End If Catch ex As Exception End Try Return selectedFiles End Function Sub EnsureSufficientSheets(drawingDoc As DrawingDocument, requiredSheets As Integer) Try Dim currentSheetCount As Integer = drawingDoc.Sheets.Count If currentSheetCount < requiredSheets Then For i As Integer = 1 To (requiredSheets - currentSheetCount) Dim newSheet As Sheet = drawingDoc.Sheets.Add() newSheet.Name = $"Sheet{currentSheetCount + i}" Next End If Catch ex As Exception End Try End Sub Sub CreateOrthographicViewsOnSheet(drawingDoc As DrawingDocument, targetSheet As Sheet, filePath As String, centerX As Double, centerY As Double) Try Dim sourceDoc As Document = ThisApplication.Documents.Open(filePath, False) Dim viewSpacing As Double = 8.0 Dim frontViewPos As Point2d = ThisApplication.TransientGeometry.CreatePoint2d(centerX, centerY) Dim frontView As DrawingView = targetSheet.DrawingViews.AddBaseView( sourceDoc, frontViewPos, 1, ViewOrientationTypeEnum.kFrontViewOrientation, DrawingViewStyleEnum.kHiddenLineDrawingViewStyle) frontView.Name = "正面図" Dim topViewPos As Point2d = ThisApplication.TransientGeometry.CreatePoint2d(centerX, centerY + viewSpacing) Dim topView As DrawingView = targetSheet.DrawingViews.AddProjectedView( frontView, topViewPos, DrawingViewStyleEnum.kHiddenLineDrawingViewStyle) topView.Name = "平面図" Dim rightViewPos As Point2d = ThisApplication.TransientGeometry.CreatePoint2d(centerX + viewSpacing, centerY) Dim rightView As DrawingView = targetSheet.DrawingViews.AddProjectedView( frontView, rightViewPos, DrawingViewStyleEnum.kHiddenLineDrawingViewStyle) rightView.Name = "右側面図" AddTitleText(targetSheet, System.IO.Path.GetFileNameWithoutExtension(filePath), centerX, centerY - 10.0) sourceDoc.Close(True) ThisApplication.ActiveView.Fit() Catch ex As Exception End Try End Sub Sub AddTitleText(targetSheet As Sheet, fileName As String, centerX As Double, titleY As Double) Try Dim titlePos As Point2d = ThisApplication.TransientGeometry.CreatePoint2d(centerX, titleY) Dim titleText As Inventor.TextBox = targetSheet.DrawingTexts.AddTextBox(titlePos, fileName) titleText.HorizontalJustification = HorizontalTextAlignmentEnum.kAlignTextCenter Catch ex As Exception End Try End Sub
作成した外部ルールをリボンやショートカットに登録しておくと便利です。 - 4.
配置したいファイルの数だけシートを作成しておく。(シートを作成しない場合、図面枠や表題欄が何もないシートが自動で作成されます)

作成したルールを右クリックして[ルールを実行]をクリック。

配置したい図面フォルダかファイルを複数選択して[開く]をクリックすると自動で配置されます。

三面図の位置、用紙サイズ、尺度等は個々に調整が必要です。
