Erstellen und Verwenden eines "intelligenten" Stifts

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.

Anschließend können Sie den Ereignis-Handler aktualisieren, um einen SmartPin anstelle eines gewöhnlichen, nicht intelligenten Zylinders zu erstellen, der als Stift dient.
  • Ändern Sie :Name, um einen eindeutigen Namen für den Stift zu erstellen.
  • Ändern Sie :design von IvCylinder in smartPin.
  • Lassen Sie das erste Kettenglied unverknüpft.
  • Ordnen Sie den Stift dem Bauteil als zweite Verknüpfung hinzu. Beachten Sie, dass der Bauteilname als Zeichenfolge übergeben werden muss.
<%%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.

Weiter: Erweitern des dynamischen Regelreaktors