一般的なシナリオでは、新しいリンクそれぞれに直前のリンクをリンクするので、ここでも、その動作を実装します。親デザインに 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
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 は動的ルールであるため、セッション間で保持されていることに注目してください。