| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Digitale Engineering-Prozesse bei Pergande mit BIM-, CAD- und PDM-Lösungen von Autodesk, ein Anwenderbericht
|
Autor
|
Thema: iLogic - Parameter Ordner (excel) löschen (827 / mal gelesen)
|
Annuit20 Mitglied Konstrukteur
Beiträge: 15 Registriert: 23.04.2018 Inventor 2017 Enovia
|
erstellt am: 17. Aug. 2022 12:10 <-- editieren / zitieren --> Unities abgeben:
Hallo, jemand eine Idee wie der code dafür aussehen kann um den Excel Ordner zu löschen? Ich möchte erreichen das die verlinkung zur Excel gebrochen wird und die Parameter in die Benutzerparameter übergehen. Händisch funktioniert das mit RK Ordner löschen. Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
iogurt Mitglied Konstrukteur
Beiträge: 283 Registriert: 30.09.2005 Inventor 2021 Professional
|
erstellt am: 17. Aug. 2022 13:09 <-- editieren / zitieren --> Unities abgeben: Nur für Annuit20
|
Annuit20 Mitglied Konstrukteur
Beiträge: 15 Registriert: 23.04.2018 Inventor 2017 Enovia
|
erstellt am: 17. Aug. 2022 14:22 <-- editieren / zitieren --> Unities abgeben:
|
Annuit20 Mitglied Konstrukteur
Beiträge: 15 Registriert: 23.04.2018 Inventor 2017 Enovia
|
erstellt am: 17. Aug. 2022 21:14 <-- editieren / zitieren --> Unities abgeben:
Komisch, jetzt funktioniert es nicht mehr. Kann bitte mal jemand über den code schauen? Ich würde den code aber wie folgt abändern: Dim oPart As PartDocument oPart = ThisDoc.Document bzw. Dim oPart As AssemblyDocument oPart = ThisDoc.Document Code:
Dim oPart As PartDocument oPart = ThisApplication.ActiveDocumentDim oParams As Parameters Dim oDevParam As DerivedParameter 'Get Parameter Tables oParams = oPart.ComponentDefinition.Parameters 'check id there is a derived table If oParams.DerivedParameterTables.Count > 0 Then For Each oDevTable In oParams.DerivedParameterTables 'Kopie Parameters to User Parameters '! This not necessary if the derived parameters are used in the model parameters ' then they will be copied automatically For Each oDevParam in oDevTable.DerivedParameters 'Copy Method from B.Sharan Raj Next If oDevTable.HasReferenceComponent = False Then 'delete all linked tables oDevTable.Delete End If Next End If
[Diese Nachricht wurde von Annuit20 am 17. Aug. 2022 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
iogurt Mitglied Konstrukteur
Beiträge: 283 Registriert: 30.09.2005 Inventor 2021 Professional
|
erstellt am: 18. Aug. 2022 08:07 <-- editieren / zitieren --> Unities abgeben: Nur für Annuit20
|
Annuit20 Mitglied Konstrukteur
Beiträge: 15 Registriert: 23.04.2018 Inventor 2017 Enovia
|
erstellt am: 18. Aug. 2022 09:20 <-- editieren / zitieren --> Unities abgeben:
Hey, jein. Ich möchte aus einer Baugruppe untere iam/ipt ansprechen das ist aber kein Problem. Alle iam/ipt möchte ich nicht da es zu unerwünschten Problemen führen könnte. Mich wundert es das der code erst funktioniert hat und jetzt halt nicht mehr, seltsam. Ich habe diesen auch schon in verschiedenen Varianten angepasst es scheint so als würde er die Tabelle/Ordner nicht mehr finden. Ich habe es natürlich im Einzelteil versucht. Diesen code nutzte ich um die ilogics in den iam/ipt anzusprechen funktz für andere scripte Code:
ThisApplication.SilentOperation = TrueDim TimingBelt As Document Dim TimingBeltFile As String TimingBeltFile = ThisApplication.FileLocations.Workspace & "\" & "INV000013439.ipt" TimingBelt = ThisApplication.Documents.Open(TimingBeltFile, False) iLogicVb.Automation.RunRule(TimingBelt, "Break_Excel_Links") ...
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Annuit20 Mitglied Konstrukteur
Beiträge: 15 Registriert: 23.04.2018 Inventor 2017 Enovia
|
erstellt am: 18. Aug. 2022 11:31 <-- editieren / zitieren --> Unities abgeben:
Mit diesem code funktioniert es. Sieht jemand irgentwelche Probleme da keine Abfrage enthalten ist ob die Tables nach extern verweisen? Code:
Dim oDoc As PartDocument oDoc = ThisDoc.DocumentDim oParams As Parameters oParams = oDoc.ComponentDefinition.Parameters Dim oTables As ParameterTables oTables = oParams.ParameterTables If oTables.count > 0 For Each oTable In oTables oTable.Delete Next End If
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2580 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 18. Aug. 2022 23:24 <-- editieren / zitieren --> Unities abgeben: Nur für Annuit20
Hallo Der erste von dir gepostete Code löscht keine verknüpften Exceltabellen, sondern Referenzparametertabellen. Und die entstehen über abgeleitete Komponenten. Der zweite Code führt die Regel in einer einzigen, namentlich genannten Datei aus. Du änderst jedes Mal den Code und passt den Dateinamen an? Nee, ne? Der erste Code nutzt zu Beginn ThisApplication.ActiveDcoument. Das unsichtbare Öffnen einer Datei führt meines Wissens nicht dazu, dass das geöffnete Dokument das aktive Dokument ist. Das is vermutlich weiterhin die Baugruppe aus der du den ersten Code ausführst. Besser wäre es im ersten Code stattdessen mit ThisDoc.Document zu arbeiten. Auch wenn er dann immer noch die falschen Objekte löscht. Der dritte Code bügelt auch eingebettete Tabellen platt. Das könnte man durch prüfen des Linked-Properties der Parametertabellen verhindern. Welche Randbedingungen noch einzuhalten wären, weißt nur du selbst. Meine Empfehlung: Kopiere nicht irgendwelchen Code, wenn du nicht verstehst was er macht und er nicht exlizit für dein Problem erstellt wurde. ------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Annuit20 Mitglied Konstrukteur
Beiträge: 15 Registriert: 23.04.2018 Inventor 2017 Enovia
|
erstellt am: 19. Aug. 2022 10:41 <-- editieren / zitieren --> Unities abgeben:
Hi, danke. Der erste Code ist der Ursprungs code. Der Zweite Code ist der Trigger in der ober ersten Assy, im script wird der Befehl für jede iam/ipt erweitert in dem ich die ilogics auslösen möchte. Funktioniert gut da ich so Einfluss habe zu welchem Zeitpunkt welche scripte ausgeführt werden. Ja sobald sich Unterbaugruppen ändern muss man das script anpassen. Diese Baugruppe ist eine Vorlage und erfährt nur selten Änderungen. Sobald die Vorlage angepasst wurde sollen die scripte sowieso ohne Funktion sein (sind unterdrückt), deshalb auch das lösen von der Excel. Der dritte code stammt von mir und löscht wie ich ja selbst erkannt habe alle Tabellen. "Das könnte man durch prüfen des Linked-Properties der Parametertabellen verhindern." Kannst Du mir hier einen tipp geben wie der code aussehen könnte? Gruß [Diese Nachricht wurde von Annuit20 am 19. Aug. 2022 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2580 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 19. Aug. 2022 15:25 <-- editieren / zitieren --> Unities abgeben: Nur für Annuit20
Hallo Zitat: Kannst Du mir hier einen tipp geben wie der code aussehen könnte?
Jepp, kann ich. Code:
Dim oDoc As PartDocument= ThisDoc.Document Dim oParams As Parameters= oDoc.ComponentDefinition.Parameters Dim oTables As ParameterTables = oParams.ParameterTablesIf oTables.count > 0 For Each oTable In oTables If oTable.Linked = True Then oTable.Delete End If Next End If
------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Annuit20 Mitglied Konstrukteur
Beiträge: 15 Registriert: 23.04.2018 Inventor 2017 Enovia
|
erstellt am: 19. Aug. 2022 16:43 <-- editieren / zitieren --> Unities abgeben:
|