動的ルール リアクタを延長する

一般的なシナリオでは、新しいリンクそれぞれに直前のリンクをリンクするので、ここでも、その動作を実装します。親デザインに lastLink ルールを追加することからはじめます。

Design Chain : DynamicRuleReactorExampleRoot IvAssemblyDocument

    Parameter Rule linkHoleDia As Number = 0.375
    Parameter Rule linkThickness As Number = 0.250
	
    Parameter Rule lastLink As Part = NoValue
	
End Design
次に、リンク デザインのリアクタ ルールを次のように変更します。
  1. 存在する場合は、link1 を最後のリンクに設定します。
  2. onRight? を正しく設定し、リンクが変換されるようにします。
  3. 2 番目のアクションを追加して、lastLink ルールを更新します。
    Method preCreateSelf() As List
        Dim result As List
        result = {{:action, :createDynamicPart, _
                    :Part, Parent, _
                    :Name, uniqueName("smartPin"), _
                    :design, "smartPin", _
                    :link1, (If lastLink = NoValue Then "NoValue" Else MakeString(lastLink.partName)), _
                    :link2, MakeString(partName), _
                    :onRight?, stringValue(odd?(countPartsOfType(:link)))}, _
                  {:action, :createDynamicRule, _
                    :Part, Parent, _
                    :Name, :lastLink, _
                    :formula, MakeString(partName)}_
                 }
        Return result
    End Method

ここでリンクを追加すると、リンクは自動的に接続され、側面が変換されます。

lastLink は動的ルールであるため、セッション間で保持されていることに注目してください。