iLogic では、アセンブリ拘束の省略状態を駆動するルール関数が提供されています。この関数は、iLogic のルールによってアセンブリ レベルの設定を定義する場合に利用できます。
たとえば、アセンブリ内のコンポーネントに別の位置を定義する場合を想定します。コンポーネントを拘束するために必要なすべてのメイトを各位置で定義できます。次に、ルールを使用して、コンポーネントの移動が必要かどうかに応じて、設定ごとにメイトを省略または省略解除します。
Autodesk Inventor では矛盾した拘束を使用することができません。コンポーネントの 1 つの位置に拘束を作成し、手動で省略してから、別のコンポーネントの位置に追加のコンポーネントを作成します。各設定に対して、コンポーネントを配置するために必要なすべての拘束を作成したら、拘束を選択するルールを記述することができます。
拘束関数にアクセスするには、[スニペット]領域の[システム]タブで[拘束]ノードを展開します。
最上位アセンブリの拘束に対して省略状態の設定または読み取りを行います。
ルール内で参照されている各拘束に一意のカスタム名を割り当てます。
拘束の省略状態を手動で変更した場合には、この拘束を参照して自動的に起動するルールには反映されません。
構文
Constraint.IsActive(“Mate:1”)
Constraint.IsActive(“SubAssem.iam”, “Mate:1”)
例
省略状態の設定:
If ConfigStyle = “A” Then Constraint.IsActive("MateLeftSide:1") = true Constraint.IsActive("MateRightSide:2") = false ElseIf ConfigStyle = “B” Then Constraint.IsActive("MateLeftSide:1") = false Constraint.IsActive("MateRightSide:2") = true End If
省略状態の読み取り:
If Constraint.IsActive("MateLeftSide:1") Then (Do something)
サブアセンブリの拘束の省略状態を設定または読み取ります(サブアセンブリ ファイル名および拘束の名前を指定します)。
Constraint.IsActiveInDoc("SubAssem.iam", "Mate:1")
アセンブリ内のすべてのファイルをコピーして名前を変更し、ルールはそのまま維持するには、Constraint.IsActiveInComponent を使用して、ファイル名の代わりにサブアセンブリ名を指定します。
サブアセンブリ名を使用した設定:
If ConfigStyle = “A” Then Constraint.IsActiveInDoc("SubAssem.iam", “LeftMate”) = true Constraint.IsActiveInDoc("SubAssem.iam", “RightMate”) = false ElseIf ConfigStyle = “B” Then Constraint.IsActiveInDoc("SubAssem.iam", “LeftMate”) = false Constraint.IsActiveInDoc("SubAssem.iam", “RightMate”) = true End If
サブアセンブリ名を使用した読み取り:
Constraint.IsActiveInDoc("SubAssem.iam",”LeftMate”) = true then (Do something)
iMate 定義の省略を設定するか、解除します。
Constraint.iMateDefIsActive(“iMate:1”) = False
現在のルール ドキュメントで、名前が iMate:1 の iMate 定義を省略します。結果は、ユーザ インタフェースの右クリック メニューを使用して省略した場合と同じになります。省略している間、iMate 定義はメイトの目的で利用できません。
Constraint.iMateDefIsActive(“SubAssem:1”,“iMate:1) = False
コンポーネント SubAssem:1 で、名前が iMate:1 の iMate 定義を省略します。
Constraint.iMateDefIsActive(PartA:1”,“iMate:1”) = True
コンポーネント パーツ PartA:1 で、名前が iMate:1 の iMate 定義の省略を解除します。