Da eine bekannte, logische Möglichkeit besteht, den Stift von beiden Kettengliedern abhängig zu machen, ist es am besten, sie automatisch zu erstellen. Sie können ein "intelligentes" Stiftdesign durch Erfassen des Stifts und der erforderlichen Abhängigkeiten in einer Komponentengruppe erstellen. Beginnen Sie mit der Erstellung eines neuen Designs, das in IvComponentGroup beteiligt wird:
Fügen Sie dem Design folgende Parameterregeln hinzu:
Design SmartPin : DynamicRuleReactorExampleRoot IvComponentGroup ' the first link part to constrain to the pin Parameter Rule link1 As Part = NoValue ' the second link part to constrain to the pin Parameter Rule link2 As Part = NoValue ' controls the positioning of the pin relative to the links Parameter Rule onRight? As Boolean = True
Fügen Sie nun die untergeordneten Regeln für den Stift und die vier Abhängigkeiten hinzu:
Child pin As :IvCylinder diameter = linkHoleDia * 0.95 height = linkThickness * 2.05 End Child Child link1Face As :IvMateConstraint part1 = link1 part2 = pin entity1 = (If onRight? Then "leftFace" Else "rightFace") entity2 = "fBottom" solution = :Flush offset = 0 End Child Child link2Face As :IvMateConstraint part1 = link2 part2 = pin entity1 = (If onRight? Then "rightFace" Else "leftFace") entity2 = "fTop" solution = :Flush offset = 0 End Child Child link1Axis As :IvMateConstraint part1 = link1 part2 = pin entity1 = "hole1Axis" entity2 = "fMain" inferredType2 = :InferredLine End Child Child link2Axis As :IvMateConstraint part1 = link2 part2 = pin entity1 = "hole2Axis" entity2 = "fMain" inferredType2 = :InferredLine End Child
Definieren Sie zum Schluss die Regel displayName neu, sodass die Stifte unterschieden werden können.
Rule displayName As String ' construct a displayName string in the pattern: ' partName (link1 : link2) Dim result As String = partName result = result & " (" If link1 = NoValue Then result = result & "?" Else result = result & link1.partName End If result = result & " : " If link2 = NoValue Then result = result & "?" Else result = result & link2.partName End If result = result & ")" Return result End Rule
Jetzt ist es an der Zeit, den intelligenten Stift zu testen. Löschen Sie die Stifte und alle Kettenglieder mit Ausnahme der ersten beiden.
Fügen Sie nun ein untergeordnetes SmartPin-Element hinzu. Wählen Sie hierzu link_1 und link_2 im Bauteil-Editor aus:
Beachten Sie SmartPin im Browser mit dem benutzerdefinierten Anzeigenamen.
Wenn Sie solch einen intelligenten Stift verwenden, steht Ihnen ein höheres Funktionsmodell zur Verfügung. Sie arbeiten nicht mehr nur mit einem Exemplar und einer Reihe von Abhängigkeiten, sondern mit einem Stift. Und der "Stift" kennt alle "stiftrelevanten" Verhaltensweisen, die erforderlich sind. Sie können nicht mehr einzelne stiftbezogene Abhängigkeiten löschen, sondern müssen den gesamten Stift löschen. Dies schließt automatisch alle Abhängigkeiten (oder ähnliches Verhalten) ein.
<%%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, uniqueName("smartPin"), _ :design, "smartPin", _ :link1, "NoValue", _ :link2, MakeString(partName)}} Return result End Method End Design
Wenn Sie jetzt eine dynamische Verknüpfung hinzufügen, wird automatisch ein Stift zugeordnet. Sie können den Stift dann manuell an das vorherige Kettenglied anschließen.