iLogic には、コンポーネントの省略状態や色を設定したり読み取ったりするルール関数や、あるコンポーネントから他のコンポーネントに置き換える関数などがあります。
これらの関数は、異なる設定のパーツやアセンブリを駆動するのに役立ちます。
モデル(パーツまたはアセンブリ)を作成し、製品のすべての有効な設定を表現するために必要なコンポーネントを含めることができますこの方法は "スーパー モデリング" と呼ばれています。パーツまたはアセンブリ コンポーネントが、非常に複雑か、数が多く、スーパー モデルが実用的でない場合、Component.Replace 関数を使用します。
コンポーネント関数にアクセスするには、iLogic の[ルールを編集]ダイアログの[スニペット]領域にある[システム]タブで、[コンポーネント]ノードを展開します。
すべてのコンポーネント名は、ルールから名前を参照する前にカスタマイズします。コンポーネント名を Autodesk Inventor が割り当てた既定の名前から変更する場合は、参照先の .ipt または .iam ファイルの変更時に、コンポーネント名が変更されないことを確認してください。
コンテンツ センター コンポーネントの場合は、Component.IsActive 関数と Component.Replace 関数に対して名前の変更が必要です。
アセンブリ コンポーネントの省略状態と部品表の構造の設定および読み取りを行います。この関数は、アセンブリ構造にコンポーネントを含めるか除外するために使用します。
単一コンポーネントとコンポーネント パターンを処理できます。パターンの場合、パターン名を使用します。パターンは、ルールと同様にアセンブリと同じレベルに存在する必要があり、サブアセンブリ内に入れることはできません。
サブコンポーネントは省略しないでください。その代わりに、コンポーネント内のルールから省略を実行することをお勧めします。
たとえば、TopAssembly という名前のアセンブリに SubAssembly:1 が含まれており、このサブアセンブリに SamplePart:1 が含まれているとします。
SubAssembly 内のルールを使用して、SamplePart:1 を省略します。このルールには、省略状態を駆動するパラメータを指定でき、そのパラメータは、TopAssembly のルールによって駆動できます。
Component.IsActive を使用してコンポーネントを省略する場合には、コンポーネントの部品表構成を[参照]に設定します。この操作により、部品表で非表示になります。モデル データ ビューには表示されますが、構造ビューやパーツのみのビューでは表示されません。コンポーネントを省略しない場合(usingComponent.IsActive)、コンポーネントは省略される前の元の状態(標準、一体、購入、仮想)に戻されます。
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.IsActive の一種で、iPart または iAssembly コンポーネントの省略状態を設定または読み取ります。コンポーネント名を手動で変更しない場合は、iPart と iAssembly にこの専用の構文が必要になります。
コンポーネント名を変更することをお勧めします。変更すれば、この関数ではなく、Component.IsActive を使用できます。
構文
Component.iComponentIsActive(“iPartParentName:1”)
iPartParentName
.ipt ファイル名拡張子を除いたファクトリ パーツの名前です。
コンポーネントの色の設定および読み取りを行います。
構文
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("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 = True
True に設定すると、コンポーネントのドキュメントは保存されません。
既定値は False です(Component.SkipDocumentSave = False)。この場合、コンポーネントのドキュメントは保存されます。
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("SubAssem:1", "OtherAssemFilename.iam<詳細レベル>", <replaceAll>)
この関数の <replaceAll> 引数は、標準の Component.Replace 関数の説明と同様に機能します。
また、特定のサブアセンブリを異なる詳細レベルにある同じサブアセンブリと置換できます。
この関数は、カスタム パラメータを持つ iPart に必須です。また、標準の iPart にも使用することをお勧めします。コンポーネントが iPart の場合は、Component.Replace の代わりに使用します。置換後、特定の iPart の設定を変更する場合には、iPart.ChangeRow や iPart.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(“SubassemblyComponentName”,“PartComponentName”)
例
Component.Color(MakePath("SubAssem1:1", "Part2:1")) = “Green” Component.IsActive(MakePath("SubAssem1:1", "SubSubAssem2:1", "Part2:1")) = “Yellow”