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.