ここで、リンクを追加するたびに追加される "ピン" (円柱)がほしいとします。ピン + 円柱 アセンブリとすることももちろんできますが、その場合は(a)すべてのピンおよびリンクを兄弟として持つこと、および(b)必要がないと判断した場合は特定のピンを削除することができなくなります。
そこで、リンク デザインに次のメソッドを追加します。
<%%categoryOrder ("Inventor Parameters,Inventor"), _ %%OpenCategories ("Inventor Parameters")> _ Design link : DynamicRuleReactorExampleAdoptedComponents linkAdopt Method preCreateSelf() As List Dim result As List result = {{:action, :createDynamicPart, _ :Part, Parent, _ :Name, makeName(partName & "_pin"), _ :Design, "IvCylinder", _ :diameter, "linkHoleDia * 0.95", _ :length, "linkThickness * 2.05"} _ } Return result End Method End Design
ここで[子を追加]をもう一度使用し、別のリンクの子を挿入してメソッドをテストします。パラメータのダイアログボックスで、holeDia を linkHoleDia に、thickness を linkThickness に設定します。
これでリンクが挿入され、ピンも挿入されます。しかし、これではピンが長すぎるように見えます。
ピンは標準の Intent パーツであるため、問題をデバッグするためにパラメータを見ることができます。
高さが、まだ linkThickness の関数ではなく、既定値の 1 であるように見えます。メソッドをもう一度確認しましょう。
これが原因でした。円柱には長さのパラメータがなく、高さを設定する必要があります。
既存のピンは "そのまま" であり、リアクタのルールへの修正によって影響を受けません。それを行うために他のリンクを作成する必要があります(まず既存のリンクおよびピンを削除します)。リンクおよびピンを個別に削除する必要があることに注意してください。
ここでピンも削除します(表示されていません)。
前に使用したのと同じ手順を使用して別のリンクを追加し、イベントをもう一度テストします。今度はピンが適切な高さの式を取得します。
このメカニズムを使用して、ユーザはピンとリンク間の拘束を手動で作成し、また余分なピンを手動で削除する必要があります。