Ich arbeite derzeit mit Inventor Pro 2017 und hätte folgende Frage:
Ich habe eine kleine externe iLogic Regel die bei Blechteilen den Zuschnitt und bei Normteilen die Hauptmaße, sortiert nach Größe, in die iProperties schreibt.
Diese verwende ich dann in der Stückliste weiter. Soweit klappt das hervorragend.
Nun wollte ich letztens mittels "Bemaßungen abrufen" eine Zeichnungsdatei erstellen bei der der User nur noch das DWG öffnet; die Werte direkt in der Zeichnung ändert, sich damit automatisch die Bauteile und die iProperties ändern (da die Regel bei jeder Geometrieänderung ausgeführt wird), und damit auch gleich die neuen Werte in die Stückliste zurückschreibt.
Leider funktioniert das nicht wie geplant. Das Bauteil wird zwar verändert aber die Regel wird nicht ausgeführt bzw. meldet einen eigenartigen Fehler oder der Wert in der Stückliste ändert sich immer erst eine Änderung später und ist daher falsch.
Der Ereignißauslöser für die Regel ist "vor dem Speichern" und bei "Änderung der Bauteilgeometrie"
Wenn man die DWG schließt und wieder öffnet stimmt der Wert aber, nur leider ist vorher der Aktualisieren Button ausgegraut.
Die Stückliste müsste sozusagen dazu genötigt werden sich zu aktualisieren.
Freue mich über jede Antwort.
BG Luke
Gelöst! Gehe zur Lösung
Gelöst von zeintlinger. Gehe zur Lösung
Hier noch die iLogic- Regel die in den angesteuerten Dateien ausgeführt wird.
Parameter.Quiet = True
'Blechstil abrufen um zu prüfen ob der Bauteil ein Blechteil ist
If SheetMetal.GetActiveStyle <> "" Then
'Auslesen der Abwicklungsmaße und Runden auf 0 Kommastellen
Fx=Round(SheetMetal.FlatExtentsLength,0)
Fy=Round(SheetMetal.FlatExtentsWidth,0)
'Schreiben des Zuschnitts in die iProperties
iProperties.Value("Custom", "Zuschnitt") = Fx & "x" & Fy & "x" & (Round(Parameter("Stärke"), 1)) & "mm"
Else
'Regel für Normteil mit Größensortierung
oCompDef = ThisApplication.ActiveDocument.ComponentDefinition
'Auslesen der maximalen Abmessungen auf 1 Kommastellen
Bx= Round(10*( oCompDef.RangeBox.MaxPoint.X - oCompDef.RangeBox.MinPoint.X),1)
By= Round(10*( oCompDef.RangeBox.MaxPoint.Y - oCompDef.RangeBox.MinPoint.Y),1)
Bz= Round(10*( oCompDef.RangeBox.MaxPoint.Z - oCompDef.RangeBox.MinPoint.Z),1)
'Festlegen von längstem und kürzestem Abstand
Dicke = MinOfMany (Bx, By, Bz)
Länge = MaxOfMany (Bx, By, Bz)
'Ermitteln der Breite
If (Dicke = Bx And Länge = By) Or (Dicke = By And Länge = Bx) Then
Breite = Bz
Else If (Dicke = Bx And Länge = Bz) Or (Dicke = Bz And Länge = Bx) Then
Breite = By
Else If (Dicke = By And Länge = Bz) Or (Dicke = Bz And Länge = By) Then
Breite = Bx
End If
'Schreiben des Zuschnitts in die iProperties
iProperties.Value("Custom","Zuschnitt") = Länge & "x" & Breite & "x" & Dicke & "mm"
End If
Hallo @zeintlinger,
ich kann zwar nicht wirklich programmieren. Aber rein logisch gesehen, fehlt irgendwo eine Aktualisierung. Kannst du nicht in deiner Regel das "neu erstellen" einbauen? Damit sollte alles neu berechnet werden und somit auch die Stückliste aktualisiert werden.
LG
So... ich hätte wohl nur etwas mehr testen sollen... aber keine Zeit, keine Zeit
Die Regel funktioniert mit diesen Ereignißauslösern:
- vor dem Speichern von Dokument
- beliebige Modellparameteränderung (ich denke die Option machts aus)
- Änderung der Bauteilgeometrie (das erschließt sich mir noch nicht so ganz -
soll das bedeuten nur wenn das Bauteil eine andere "Form" annimmt oder auch bei zb. nur Änderung der Länge eines Würfels ?
Auf jeden Fall klappt das jetzt. Der User kann das DWG öffnen, die Werte dort direkt abändern und sieht sofort die Änderungen in der Stückliste (zur Kontrolle). Dann nur noch Speichern und die neue Variante ist fertig.
Danke für das Feedback @zeintlinger,
gerne kannst du deinen Post als akzeptierte Lösung markieren, damit auch andere Leser davon profitieren können.
LG
Sie finden nicht, was Sie suchen? Fragen Sie die Community oder teilen Sie Ihr Wissen mit anderen.