Inventor / iLogic でパラメータを新規作成
Inventor iLogic でパラメータを新規作成する、素敵な iLogic コードを見つけたので紹介する。
Inventor の iLogic には、数多くのスニペットが提供されている。パラメータに関しても便利なスニペットが用意されているが、パラメータを新規に作成する、というのが無い。XMLを保存、ロードというのがあるがこれはドキュメント中の全てのパラメータを一括して保存、ロードする機能なのでちょっと目的と違う。
もちろん、Inventor API を使えば iLogic でパラメータを新規作成するルールを作ることはできる。例えば、TEST という名前のパラメータを作り、123.4 という値を入れたければ、
Dim oDoc = ThisDoc.Document
Dim oParams As Inventor.Parameters = oDoc.ComponentDefinition.Parameters
Dim oParam As Inventor.Parameter = oParams.UserParameters.AddByValue("TEST",123.4, "mm")
となる。しかし、実際に使おうとすると相当に面倒な事が分かる。すなわち、以下の内容だ。
・パーツ、アセンブリ、図面の各ドキュメントの使い分け
・パラメータ名が重複していないかの確認
・型(数値、文字、ブーリアン)及び数値の場合の単位系(mm cm Kg ...)
これらの内容をまとめて処理してくれる iLogic コードを オートデスクのサンプルファイルとしてダウンロードできる。
BrewMain_Drawing.zip
何かの醸造装置の仕様を変更する、iLogicのコードとフォームのサンプルモデルで、iLogic の勉強には大変に良いサンプルだ。このサンプルファイルの中にある、CreateParamsInDoc.vb がパラメータを新規作成するルールだ。
使用方法
1.CreateParamsInDoc.vb を別名でコピーする。
2.コピーしたルール内の Sub Main を編集する。
3.そのルールを外部ルールとして実行する
Sub Main
Dim oDrawing As Document = ThisDoc.Document
Dim nameList As New List(Of String)
nameList.Add("my_BalloonStyles")
nameList.Add("my_DimensionStyles")
nameList.Add("DimensionColor")
nameList.Add("BalloonColor")
nameList.Add("TextColor")
Dim oParam As UserParameter
For Each item In nameList
oParam = FindParamUsingName(oDrawing, item)
If oParam Is Nothing Then
PutParameter(oDrawing, item, "", "text")
End If
Next
End Sub
PutParameter が実際にパラメータを新規作成するルールだ。このサンプルルールでは、図面ドキュメントに文字型のパラメータを追加するのに、List を使って一括処理をしている。リスト内のパラメータ名を順に、FindParamUsingName で既に使われていないかを確認し、 Nothing が帰ってきたら PutParameter で追加している。
単純に、TEST という名前で 123.4 mm の長さを追加したい場合は、
Sub Main()
Dim oDoc = ThisDoc.Document
Dim oParam As Inventor.Parameter
oParam = FindParamUsingName(oDoc, "TEST")
If oParam Is Nothing Then
PutParameter(oDoc, "TEST", 123.4,"length", "mm")
End If
End Sub
となる。このiLogic ルールは、冒頭に挙げた面倒くさい処理をしてくれるので、Main ルールだけ注目すればよい。とても楽だ。
どんな時に便利なのか?
Inventorで作業をしているとき、特定のパラメータを追加したい時がある。都度追加すればよいが、このように外部ルールを作っておけば、簡単についかでき、しかもタイプミスを防止できる。
このサンプルモデルでは、図面ドキュメントを新規作成した際に、必要なパラメータを自動的に追加する処理に利用している。ちょっと難解だが解読すると大変に勉強になる。
役に立った!という記事にはぜひサポートお願いします。サポート頂けると大変に励みになります。