iLogic のコンポーネント関数

iLogic には、コンポーネントの省略状態や色を設定したり読み取ったりするルール関数や、あるコンポーネントから他のコンポーネントに置き換える関数などがあります。これらの関数は、異なる設定のパーツやアセンブリを駆動するのに役立ちます。

モデル(パーツまたはアセンブリ)を作成し、製品のすべての有効な設定を表現するために必要なコンポーネントを含めることができますこの方法は "スーパー モデリング" と呼ばれています。パーツまたはアセンブリ コンポーネントが、非常に複雑か、数が多く、スーパー モデルが実用的でない場合、Component.Replace 関数を使用します。

コンポーネント関数にアクセスするには、[スニペット]領域の[システム]タブで[コンポーネント]ノードを展開します。

コンポーネントの命名

すべてのコンポーネント名は、ルールから名前を参照する前にカスタマイズします。コンポーネント名を Autodesk Inventor が割り当てた既定の名前から変更する場合は、参照先の .ipt または .iam ファイルの変更時に、コンポーネント名が変更されないことを確認してください。

コンポーネント名は元に戻すことができ、その場合も安定性が維持されます。コンポーネントに変更を加えるには、名前を少しだけ変えてから、元に戻します。

コンテンツ センター コンポーネントの場合は、Component.IsActive 関数と Component.Replace 関数に対して名前の変更が必要です。

Component.IsActive

アセンブリ コンポーネントの省略状態と部品表の構造の設定および読み取りを行います。この関数は、アセンブリ構造にコンポーネントを含めるか除外するために使用します。

単一コンポーネントとコンポーネント パターンを処理できます。パターンの場合、パターン名を使用します。パターンは、ルールと同様にアセンブリと同じレベルに存在する必要があり、サブアセンブリ内に入れることはできません。

サブコンポーネントは省略しないでください。その代わりに、コンポーネント内のルールから省略を実行することをお勧めします。

たとえば、TopAssembly という名前のアセンブリに SubAssembly:1 が含まれており、このサブアセンブリに SamplePart:1 が含まれているとします。

SubAssembly 内のルールを使用して、SamplePart:1 を省略します。このルールには、省略状態を駆動するパラメータを指定でき、そのパラメータは、TopAssembly のルールによって駆動できます。

iLogic を使用して、コンポーネントを省略する場合には、コンポーネントの部品構成を参照に設定します。この操作により、部品表で非表示になります。モデル データ ビューには表示されますが、構造ビューやパーツのみのビューでは表示されません。コンポーネントが省略されていない場合、省略される前に、元の状態(標準、一体、購入、仮想)に戻されます。

iLogic ルールを使用してアセンブリ コンポーネントの省略状態を変更する前に、新規のカスタム詳細レベルを作成してアクティブにします。

構文

Component.IsActive("ComponentName")

true の代わりに 1 を使用し、false の代わりに 0 を使用することもできます。

省略状態と部品構造を設定するには、次のように記述します。

Component.IsActive("PartA:1") = false
Component.IsActive("PartB:1") = 0
Component.IsActive("PartC:1") = false
Component.IsActive("PartD:1") = 0

省略状態と部品構造を読み取るには、次のように記述します。

MyBooleanParam = Component.IsActive("ComponentName:1)
If Component.IsActive("PartE") Then
' do something
End If

Component.iComponentIsActive

この関数は、Component.IsActive の一種で、iPart または iAssembly コンポーネントの省略状態を設定または読み取ります。コンポーネント名を手動で変更しない場合は、iPart と iAssembly にこの専用の構文が必要になります。

コンポーネント名を変更することをお勧めします。変更すれば、この関数ではなく、Component.IsActive を使用できます。

構文

Component.iComponentIsActive(“iPartParentName:1”)

iPartParentName

.ipt ファイル名拡張子を除いたファクトリ パーツの名前です。

Component.Color

コンポーネントの色の設定および読み取りを行います。

構文

Component.Color(“iPartA:1”)

色の設定:

Component.Color("iPartA:1") = "Green"
Component.Color("iPartA:2") = "Aluminum (Cast)"
Component.Color("iPartA:3") = "As Material"

色の読み取り:

MyStringParameter = Component.Color("iPartA:1")

Component.Visible

コンポーネントの表示設定の設定および読み取りを行います。この関数は、コンポーネントの部品構成を変更しません。

構文

Component.Visible("componentName")

表示設定の設定:

Component.Visible("Plate") = true
Component.Visible("Bearing") = false

表示設定の読み取り:

parameter = Component.Visible("Plate")
parameter = Component.Visible("Bearing")
If Component.Visible("PartE") Then
do something
End If

Component.SkipDocumentSave

コンポーネント ドキュメントが変更された場合に保存し、さらにルールによって省略するかどうかを指定します。

構文

Component.SkipDocumentSave = True

True に設定すると、コンポーネントのドキュメントは保存されません。

既定値は False です(Component.SkipDocumentSave = False)。この場合、コンポーネントのドキュメントは保存されます。

Component.Replace

1 つのパーツまたはサブアセンブリを他のものと置き換えます。この関数は、コンポーネント パターンを置き換える場合にも使用できます。

置換対象のコンポーネントの iMate を使用して、アセンブリ コンポーネントの拘束をそのままの状態に維持します。置換では、パーツをパーツに置換するか、アセンブリをパーツに置換するか、パーツをアセンブリに置換することができます。

この関数は、置換に使用するファイルを複数のフォルダで検索します。

ファイル名は相対パスで指定できます(任意の検索場所に対する相対的な場所)。

注: この関数を使用する前に、コンポーネント名を "確定" して、置換時に変更されないようにしてください。コンポーネント名を確定するには、別の名前に変更します。一度名前を変更して、後から元の名前に戻すこともできます。名前を確定しないと、置換処理によって、コンポーネントが他の名前と一致するように変更されます。これにより、ルールを再度実行したときに、そのコンポーネントが検出できなくなります。

構文

Component.Replace(“ComponentToReplaceName”, “OtherPartfilename.ipt”, <replaceAll>)

ComponentToReplaceName

置換するパーツまたはアセンブリの名前です。

OtherPartfilename

置換に使用するパーツまたはアセンブリです。

<replaceAll>

このコンポーネントのすべてのインスタンスを置換するには、ブール値を True に設定します。1 つのインスタンスのみを指定して置換するには、値を False に設定します。

If PartType = "Type A" Then
Component.Replace("Widget","PartA.ipt", True)
ElseIf PartType = "Type B" Then
Component.Replace("Widget","PartB.ipt", True)
End If

Component.Replace(詳細レベルの指定)

この関数は Component.Replace 関数の一種で、アセンブリ内のコンポーネントを他の特定の詳細レベルにあるコンポーネントで置き換えます。

構文

Component.Replace("SubAssem:1", "OtherAssemFilename.iam<詳細レベル>", <replaceAll>)

この関数の <replaceAll> 引数は、標準の Component.Replace 関数の説明と同様に機能します。

また、特定のサブアセンブリを異なる詳細レベルにある同じサブアセンブリと置換できます。

Component.ReplaceiPart

この関数は、カスタム パラメータを持つ iPart に必須です。また、標準の iPart にも使用することをお勧めします。コンポーネントが iPart の場合は、Component.Replace の代わりに使用します。置換後、特定の iPart の設定を変更する場合には、iPart.ChangeRowiPart.FindRow を使用することができます。

カスタム パラメータを含む iPart の場合、rowNumber に続けてカスタム パラメータの値のリストを指定します。リストの値は、テーブルに表示される順番で記述する必要があります。

構文

Component.ReplaceiPart("iPart1:1", "OtherPartfilename.ipt", True, rowNumber)

rowNumber を使用して、置換するコンポーネントの指定と、iPart の行の選択を同時に行います。

カスタム パラメータを設定するには、カスタム値を Component.ReplaceiPart、およびルール内の後続の iPart.ChangeRow または iPart.FindRow で繰り返し使用します。

ChangeRow の場合:

Component.ReplaceiPart("iPart1:1", "OtherPartfilename.ipt", True, rowNumber, customParam1, customParam2)
iPart.ChangeRow("iPart1:1", rowNumber, customParam1, customParam2)

FindRow の場合:

Component.ReplaceiPart("iPart1:1", "OtherPartfilename.ipt", True, rowNumber, customParam1, customParam2)
i = iPart.FindRow("iPart1:1", "Dia", ">=", 3.0, "r;|", customParam1, customParam2)

MakePath

サブアセンブリ内でコンポーネント名へのパスを定義します。パスを指定するには、すべてのサブアセンブリ レベルをツリーに表示される順番にリストで指定します。コンポーネント名を指定する際に、同じ名前がアセンブリ内の他の場所にも存在する場合には、この関数を指定することをお勧めします。

構文

MakePath(“SubassemblyComponentName”,“PartComponentName”)

Component.Color(MakePath("SubAssem1:1", "Part2:1")) = “Green”
Component.IsActive(MakePath("SubAssem1:1", "SubSubAssem2:1", "Part2:1")) = “Yellow”