| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
[an error occurred while processing this directive]
Autor
|
Thema: iLogic Baugruppe ersetzten wenn Bedingung erfüllt ist (122 / mal gelesen)
|
TRL Mitglied Konstruktionsassistent
Beiträge: 5 Registriert: 12.03.2024 Inventor 2022, iLogic
|
erstellt am: 10. Dez. 2024 10:03 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe leider nur einfache Grundkenntnisse in iLogic und verzweifel gerade an einem Problem. Ich habe eine Baugruppe in welcher etliche Bauteile und Baugruppe sind und in welcher die iLogic ausgeführt werden soll. Ich möchte Baugruppe1.iam gegen Baugruppe2.iam austauschen oder Baugruppe2 gegen Baugruppe1. (Über das normale ersetzen im Inventor lassen sich die Baugruppen problemlos ersetzen) Es gibt den Paramter "Zustand", dieser ist entweder 140 oder 170. wenn Zustand=140 ist und Baugruppe1.iam eingebaut ist, soll nicht passieren. wenn Zustand=140 ist und Baugruppe2.iam eingebaut ist, soll diese Baugruppe gegen Baugruppe1.iam ersetzt werden. wenn Zustand=170 ist und Baugruppe1.iam eingebaut ist, soll diese Baugruppe gegen Baugruppe2.iam ersetzt werden. wenn Zustand=170 ist und Baugruppe2.iam eingebaut ist, soll nichts passieren. Ich habe verschiedene Test gemacht mit dem Befehl Component.Replace ("Baugruppe1.iam:1"), "Pfad\Pfad\Pfad\Baugruppe2.iam", True) Aber ich bekomme hier immer die Meldung das er Baugruppe1.iam nicht findet (ja sie ist eingebaut). Die Baugruppen liegen in einem Bestimmten festen Pfad. Könnte mir hier jemand weiterhelfen, mit welchen Befehlen ich dies umsetzen kann. Besonders die Abfrage ob die Baugruppe vorhanden ist und das Austauschen. Oder gibt es andere Wege die einfach umzusetzen sind? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2677 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 10. Dez. 2024 10:29 <-- editieren / zitieren --> Unities abgeben: Nur für TRL
Moin Wenn die Ersatzbaugruppe im gleichen Pfad liegt, kannst du dir den Pfad glaub ich sparen. Prüf den Komponentennamen nochmal ganz genau. Irgendwas daran passt nicht, sonst würder er die Datei finden. Ich hab es so erfolgreich probiert. Je nach Zustand wird einfach probiert die Baugruppe zu tauschen und der Fehler wenn die zu ersetzende Baugruppe gar nicht verbaut ist, weggefangen. Code:
Select Case Zustand Case 140 : Try Component.Replace("Baugruppe2.iam:1", "Baugruppe1.iam", True) Catch ex As Exception Logger.Debug(ex.Message) End Try Case 170 : Try Component.Replace("Baugruppe1.iam:1", "Baugruppe2.iam", True) Catch ex As Exception Logger.Debug(ex.Message) End Try End Select
------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
TRL Mitglied Konstruktionsassistent
Beiträge: 5 Registriert: 12.03.2024 Inventor 2022, iLogic
|
erstellt am: 10. Dez. 2024 11:50 <-- editieren / zitieren --> Unities abgeben:
Hallo und danke für die schnelle Antwort. Statt meine komplexere Baugruppe zu verwenden habe ich mal exakt mein beschriebenes Beispiel nach gebaut. Ich habe sie auf einen lokalen Odner gelegt statt auf einen Netzwerkpfad und die Dateien liegen nun alle im selben Ordner statt in unterschiedlichen. Ich habe den Benutzerparameter "Zustand" mit 170 oE angelegt. Es funktioniert leider immer noch nicht. Selbst wenn ich nur Component.Replace("Baugruppe1.iam:1", "Baugruppe2.iam", True) verwende kommt die Fehlermeldung "Kompnente nicht gefunden", selbst wenn ich den Pfad noch davor Füge. An was könnte es liegen? Ich verwende Inventor Professional 2022.6
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2677 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 10. Dez. 2024 13:35 <-- editieren / zitieren --> Unities abgeben: Nur für TRL
Moin Dir fällt aber schon auf, dass in deinem Screenshot die Komponente nicht "Baugruppe1.iam:1" heißt, sondern "Baugruppe1:1"? Bei der Gelegenheit bitte gleich mal noch nach Komponentennamen stabilisieren googlen, denn das dürfte der nächste Stolperstein werden.
------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WHaeger Mitglied Konstrukteur
Beiträge: 54 Registriert: 13.11.2004
|
erstellt am: 10. Dez. 2024 14:00 <-- editieren / zitieren --> Unities abgeben: Nur für TRL
Hallo, in den Replace-Zeilen muss der erste Parameter wie im Browserbaum geschrieben sein, dann sollte es funktionieren. Z.B. Component.Replace("Baugruppe1:1",...
------------------ Grüße Wolfgang Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
TRL Mitglied Konstruktionsassistent
Beiträge: 5 Registriert: 12.03.2024 Inventor 2022, iLogic
|
erstellt am: 10. Dez. 2024 15:45 <-- editieren / zitieren --> Unities abgeben:
ah...vielen dank für den Hinweis mit der Benennung, irgend wann fällt einem das selber nicht mehr auf. Es funktioniert nun so wie ich es mir vorgestellt habe. Ich danke vielmals für die Hilfestellung, besonders der Teil mit dem Ausblenden der Fehlermeldung. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |