Ausgangssituation: In einer Baugruppe gibt es einen Parameter Anzahl, der über ein iLogic-Form im Wert geändert werden kann.
Wird der Parameterwert über den Schieberegler geändert, soll der Wert innerhalb der Bauteile in der Baugruppe auch geändert werden. Die Parameter in den Bauteilen heißt ebenfalls Anzahl. Dieser Parameter wird ebenfalls in beiden Bauteilen in Features verwendet, z.B. in der Runden Anordnung und der Drehung.
Es soll nun erreicht werden, das bei einer Änderung des Parameters in der IAM die Parameter in den IPTs geändert wird. Das ergibt dann folgendes Verhalten (die zufällige Farbänderung der Komponenten in der IAM wird ebenfalls bei der Parameteränderung durchgeführt):
- Parameter Anzahl in IAM und IPT anlegen und den entsprechenden Elementen (Reihen, Drehungen,...) zuweisen
- In der IAM iLogic-Form erstellen mit Schieberegler für IAM-Parameter Anzahl
- In der IAM iLogic-Code erstellen: Dort wird dem IPT-Parameter Anzahl den Wert des IAM-Parameters Anzahl zugewiesen.
Kleines Video zum Ablauf:
Die Farbänderung ist in eine anderen Sub ausgelagert.
Hier der gesamte Quelltext inkl. zufällige Farbänderung bei Änderung des Parameters Anzahl:
Sub Main Parameter("181104184335154 iLogic Parameter IAM und IPT:1", "Anzahl") = Anzahl Parameter("181105200821711 iLogic Parameter IAM und IPT:1", "Anzahl") = Anzahl Komp_Farbe_Zufall End Sub Public Sub Komp_Farbe_Zufall() On Error GoTo Err Dim oAsmDoc As AssemblyDocument oAsmDoc = ThisApplication.ActiveDocument ' Initialize the random number generator and get ' the number of render styles defined. Randomize Dim iColorCount As Long iColorCount = oAsmDoc.RenderStyles.Count 'JW 30092017 Dim Invapp As Inventor.Application Invapp = ThisApplication Dim oTrans As Inventor.Transaction oTrans = Invapp.TransactionManager.StartGlobalTransaction(oAsmDoc, "VBA973") Invapp.UserInterfaceManager.UserInteractionDisabled = True Invapp.ScreenUpdating = False ' Iterate through the top-level occurrences in the assembly. Dim oOcc As ComponentOccurrence For Each oOcc In oAsmDoc.ComponentDefinition.Occurrences ' Set the color to a random color. Call oOcc.SetRenderStyle(kOverrideRenderStyle, _ oAsmDoc.RenderStyles.Item(Int((iColorCount * Rnd) + 1))) Next Err: Invapp.ScreenUpdating = True Invapp.UserInterfaceManager.UserInteractionDisabled = False Call oAsmDoc.Update oTrans.End End Sub
Die fertige Baugruppe (Inventor 2019) kann hier heruntergeladen werden.
Hallo,
AntwortenLöschenich habe in meiner Baugruppe einen Benutzerparameter "Anzahl" angelegt,
aber im Formulareditor steht nichts von "Schieberegler-Eigenschaften".
Bei Verhalten wird nur "Name des Aktivierungsparameters" und "Steuerelementtyp bearbeiten" angezeigt.
Rechts bei Beschriftung habe ich den Parameter "Anzahl" eingefügt.
Woran kann das denn liegen?
Ich benutze Inventor 2019
Du musst den Parameter in das Form ziehen. Siehe Bild 2
LöschenDas habe ich ja gemacht (schrieb ich oben). Deswegen wundert es mich ja.
LöschenDu hast den Parameter in der Formansicht oben markiert um unten die Eigenschaften wie des Parameters wie "Schieberegler" anzuzeigen weil sonst siehst du nur die Eigenschaften des Forms.
LöschenAuch wenn ich den Parameter "Anzahl" markiere sieht man "Schieberegler" nicht.
Löschenbei "Steuerelementtyp bearbeiten" unten vorher auf Schiebebregler stellen (da steht standardmäßig Textfeld) sonst siehst du keine Scheiebreglereigenschaften.
LöschenAh ok, danke. Das wars :)
Löschen