Autodesk Inventor 2020で、図面の複数レイヤを一括作成する方法

Autodesk Inventorでilogicを使って複数レイヤを一括作成する方法 CAD

Autodesk Inventorで図面を描く際、2D CADへの受け渡しの都合などで、複数のレイヤ(画層)を作る事があります。

標準機能では、一枚ずつ新規作成して名前を変える作業が必要です。
沢山あると一枚ずつ作るのは大変なので、ilogicを使って一括作成する方法を紹介します。

仕上がり結果

連番の複数枚のレイヤが、一回の実行で作成されました。

Inventorのilogicでレイヤを一括作成した結果

以下、方法です。

プログラムを実行される際は、白紙のテスト環境でテストして下さい。
いきなり本番で試すと、プログラムミスでレイヤが消えてしまったり、エラーでフリーズしてデータが消失する可能性があります。

方法1. 連番で作る場合

作るもの

この例では、「parts1~parts5」の5枚のレイヤを作ります。
レイヤの名前の付け方は、”parts”は共通、後ろの数字は連番です。

  • parts1
  • parts2
  • parts3
  • parts4
  • parts5

図面画面に入る

図面作成画面に入って下さい。

パラメーターに、項目を作る

Inventorのパラメーターウィンドウを呼出し、項目を作ります。
【管理タブ】→【パラメータ】でウィンドウが出てきます。

【数値を追加】を選択します。

名前はnumberとしておきます。
単位は無し。unitlessを選ばないとエラーが出ます。

Inventorのパラメータ入力欄

数値には、作りたい枚数を入れて下さい。
今回は5枚作るので、5と入力します。

ilogic編集画面を出す

左側のInventorブラウザ欄(操作履歴が出てる領域)の、ilogicタブをクリックして下さい。
無ければ、+マークを押すと出せます。

そして、【ルールタブ】の領域で右クリック。【ルールを追加】を選択して下さい。
ルールの名前は、好きに付けて下さい。デフォルトのままでも良いです。

コードを書く

処理の内容を指示するコードを書きます。

処理の流れは、こんな感じです。

ilogicでレイヤ一括作成、処理の流れ
  • Step1
    処理の対象を指示
    いま開いているファイルの図面を指定
  • Step2
    見本となるレイヤを指定
    例では、Visible (ISO)というレイヤをコピー元とします。
  • Step3
    FORループ開始
    末尾の番号が、パラメータに入力した値に達するまで繰り返します。
Sub Main()
   '処理の対象を指定する。(この場合は、いま開いている図面)
    Dim oDrawDoc As DrawingDocument
    oDrawDoc = ThisApplication.ActiveDocument
    
   '基になる既存のレイヤを指定する。この例は"Visible (ISO)"をコピー元とする。
   Dim oLayer As Layer
   oLayer = oDrawDoc.StylesManager.Layers.Item("Visible (ISO)")
  
  '”number”というパラメータに指定した数に達するまで、レイヤを作り続ける。
    For i = 1 To number
	Dim oNewLayer As Layer
	oNewLayer = oLayer.Copy("part"&i)
    Next
End Sub

コードは、下記のAutodeskのヘルプページ、およびilogic標準搭載のスニペットを参考にしました。

スニペット欄。目的別に、コードの断片を呼び出せる。

実行

最後に、【保存して実行】を押せば実行されます。

方法2. 任意の名前で作る場合

方法1.のような連番ではなく、すべて任意の名前を付けたい場合もあるかもしれません。その場合も、対処可能です。

作るもの

この例では、以下の5枚のレイヤを作ります。

  • リンゴ
  • バナナ
  • オレンジ
  • ブドウ
  • イチゴ

パラメーターに、項目を作る

方法1.と同じく、まずは図面作成画面に入ってパラメータを編集します。

【管理タブ】→【パラメータ】でウィンドウが出てきます。

【数値を追加】ではなく、【テキストを追加】を選びます。(右の三角をクリックすれば選択できます)

パラメータ名は、testにしておきます。

計算式の欄を右クリックし、【マルチバリュー】を選択して、出てきた画面にレイヤ名を入力します。

レイヤ名は、一項目ずつ改行して下さい。

入力したら【追加】を押したのち、【OK】で閉じます。

コード

入力するコードは、下記の通りです。方法1と同じく、ilogicのコード入力欄に記入して下さい。

方法1.との違いは、マルチバリュー(testという一つのパラメータに複数のレイヤ名を詰め込んでいる)なので、配列リスト型の変数に、値を格納しています。

'マルチバリューのパラメーターから、レイヤを作成する
Sub Main()
    
    '処理の対象を指定する。(この場合は、いま開いている図面)
	Dim oDrawDoc As DrawingDocument
	oDrawDoc = ThisApplication.ActiveDocument
	    
	'基になる既存のレイヤを指定する。この例は"Visible (ISO)"をコピー元とする。
	Dim oLayer As Layer
	oLayer = oDrawDoc.StylesManager.Layers.Item("Visible (ISO)")
	  
	'”test”というパラメータに入力した値を、”values”という変数に格納する
	Dim values As New ArrayList
	values = MultiValue.List("test")

	'”values”の値を名前に使い、順次新規レイヤを作成する
	For Each xVal In values
		Dim oNewLayer As Layer
		oNewLayer = oLayer.Copy(xVal)
	Next

End Sub

コードは、下記のAutodeskのヘルプページ、およびilogic標準搭載のスニペットを参考にしました。

スニペット欄。処理の目的別に、コードを呼び出せる。

実行

最後に、【保存して実行】を押せば実行されます。

レイヤが作成されました

Inventorのilogicでレイヤを一括作成した結果

さいごに

2D CAD(AutoCAD等)へ受け渡す必要がある案件では、レイヤ名を細かく指定したいことがあります。そんな際に、役立っています。