| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: ipart-Verknüpfung lösen (3131 mal gelesen)
|
Kühlfisch Mitglied Dipl.-Ing. Maschinenbau
Beiträge: 300 Registriert: 25.10.2007
|
erstellt am: 06. Okt. 2011 17:03 <-- editieren / zitieren --> Unities abgeben:
|
PaulSchuepbach Moderator Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 07. Okt. 2011 15:57 <-- editieren / zitieren --> Unities abgeben: Nur für Kühlfisch
|
Kühlfisch Mitglied Dipl.-Ing. Maschinenbau
Beiträge: 300 Registriert: 25.10.2007 ACAD 2017 Athena
|
erstellt am: 11. Okt. 2011 08:47 <-- editieren / zitieren --> Unities abgeben:
|
PaulSchuepbach Moderator Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 11. Okt. 2011 09:42 <-- editieren / zitieren --> Unities abgeben: Nur für Kühlfisch
|
Kühlfisch Mitglied Dipl.-Ing. Maschinenbau
Beiträge: 300 Registriert: 25.10.2007 ACAD 2017 Athena
|
erstellt am: 14. Nov. 2012 16:07 <-- editieren / zitieren --> Unities abgeben:
Habe schon wieder einen ziemlich großen Haufen an ipart-Verknüpfungen zu lösen. Weiß vielleicht inzwischen jemand Rat oder hat ein funktionierendes Script? ------------------ --------- Grüße vom Kühlfisch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 14. Nov. 2012 16:18 <-- editieren / zitieren --> Unities abgeben: Nur für Kühlfisch
|
Kühlfisch Mitglied Dipl.-Ing. Maschinenbau
Beiträge: 300 Registriert: 25.10.2007
|
erstellt am: 15. Nov. 2012 08:46 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von rkauskh: HalloDer Code von Hr. Schuepbach funktioniert. Datei öffnen, Code ausführen, Speichern, Schließen - Was noch?
Zu "was noch": Der Code bringt in dieser Form keine Arbeitserleichterung mit sich, denn es braucht genau so viele Klicks wie bei der konventionellen Lösung. Es geht darum, bei sehr vielen Dateien die Verknüpfung zu lösen. Wenn ich bei jeder einzelnen Datei, die oben beschriebenen Schritte durchführen muß, braucht das sehr, sehr lange. Brauchbar wäre z. B. eine Lösung, bei welcher alle geöffneten Dateien nacheinander durch ein Script abgearbeitet werden. ------------------ --------- Grüße vom Kühlfisch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 15. Nov. 2012 10:33 <-- editieren / zitieren --> Unities abgeben: Nur für Kühlfisch
Moin Dann versuch mal den hier: Code: Private Sub execCmd() Dim oApp As Inventor.Application Set oApp = ThisApplication Dim oDef As ControlDefinition For i = 1 To oApp.CommandManager.ControlDefinitions.Count If oApp.CommandManager.ControlDefinitions(i).InternalName = "S3BreakLinkCmd" Then Set oDef = oApp.CommandManager.ControlDefinitions(i) Exit For End If Next i 'Debug.Print oDef.DisplayName Dim oDoc As Document Dim oPartDoc As PartDocument For Each oDoc In oApp.Documents If oDoc.DocumentType = kPartDocumentObject Then oPartDoc = oDoc If oPartDoc.ComponentDefinition.iPartMember = True Then oPartDoc.Activate oDef.Execute End If End If Next End Sub
------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kühlfisch Mitglied Dipl.-Ing. Maschinenbau
Beiträge: 300 Registriert: 25.10.2007
|
erstellt am: 15. Nov. 2012 10:48 <-- editieren / zitieren --> Unities abgeben:
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 15. Nov. 2012 11:16 <-- editieren / zitieren --> Unities abgeben: Nur für Kühlfisch
Moin Sorry, hab das Set vergessen. Code: Set oPartDoc = oDoc
Eventuell ist es auch erforderlich das Aktivieren des jeweiligen Dokumentes mit Call zu machen. Code: Call oPartDoc.Activate
------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kühlfisch Mitglied Dipl.-Ing. Maschinenbau
Beiträge: 300 Registriert: 25.10.2007
|
erstellt am: 15. Nov. 2012 12:05 <-- editieren / zitieren --> Unities abgeben:
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 15. Nov. 2012 13:56 <-- editieren / zitieren --> Unities abgeben: Nur für Kühlfisch
|
Kühlfisch Mitglied Dipl.-Ing. Maschinenbau
Beiträge: 300 Registriert: 25.10.2007
|
erstellt am: 16. Nov. 2012 12:07 <-- editieren / zitieren --> Unities abgeben:
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 16. Nov. 2012 12:19 <-- editieren / zitieren --> Unities abgeben: Nur für Kühlfisch
|
Kühlfisch Mitglied Dipl.-Ing. Maschinenbau
Beiträge: 300 Registriert: 25.10.2007
|
erstellt am: 19. Nov. 2012 09:18 <-- editieren / zitieren --> Unities abgeben:
Hallöchen, kann beobachten wie alle geöffneten Fenster nacheinander aktiviert werden - jedoch werden die Verknüpfungen nicht gelöst. Irgendetwas klemmt noch. ------------------ --------- Grüße vom Kühlfisch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 19. Nov. 2012 12:41 <-- editieren / zitieren --> Unities abgeben: Nur für Kühlfisch
Hallo Der Name der ControlDefinition war falsch. Entweder hat Autodesk das umbenannt oder Hr. Schuepbach meinte eine andere Verknüpfung. Teste mal bitte folgendes: Code: Private Sub execCmd() Dim oApp As Inventor.Application Set oApp = ThisApplication Dim oDef As ControlDefinition For i = 1 To oApp.CommandManager.ControlDefinitions.Count If oApp.CommandManager.ControlDefinitions(i).InternalName = "DeselBreakLinkCtxCmd" Then Set oDef = oApp.CommandManager.ControlDefinitions(i) Exit For End If Next i 'Debug.Print oDef.DisplayName Dim oDoc As Document Dim oPartDoc As PartDocument For Each oDoc In oApp.Documents If oDoc.DocumentType = kPartDocumentObject Then Set oPartDoc = oDoc If oPartDoc.ComponentDefinition.IsiPartMember = True Then Call oPartDoc.Activate Call oDef.Execute oPartDoc.Update End If End If Next End Sub
------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kühlfisch Mitglied Dipl.-Ing. Maschinenbau
Beiträge: 300 Registriert: 25.10.2007
|
erstellt am: 19. Nov. 2012 14:03 <-- editieren / zitieren --> Unities abgeben:
|
Kühlfisch Mitglied Dipl.-Ing. Maschinenbau
Beiträge: 300 Registriert: 25.10.2007 ACAD 2017 Athena
|
erstellt am: 19. Nov. 2012 16:23 <-- editieren / zitieren --> Unities abgeben:
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 19. Nov. 2012 17:43 <-- editieren / zitieren --> Unities abgeben: Nur für Kühlfisch
Hallo In einem Rutsch würde ich nicht machen, falls doch mal andere Dokumente mit geöffnet sind. Setz unter Code: oPartDoc.Update
noch Code: oPartDoc.Save oPartDoc.Close
Dann solltest du am Ende vor einem leeren Inventor sitzen. ------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kühlfisch Mitglied Dipl.-Ing. Maschinenbau
Beiträge: 300 Registriert: 25.10.2007
|
erstellt am: 20. Nov. 2012 13:39 <-- editieren / zitieren --> Unities abgeben:
Hallo Ralf, top, klappt wunderbar - Danke sehr - wieder tausende Mausklicks eingespart. Derzeit öffne ich jeweils hundert Teile und lasse das Script darüber laufen. Bestimmt läßt sich sogar ein Teil nach dem anderen aus dem Ordner öffnen - oder auch aus allen Unterordnern - und die Verknüpfung lösen, speichern und schließen. Wie geht das, wo lernt man das am besten in Berlin und wo überhaupt befindet sich die spezielle "VBA für Inventor Hilfe"? ------------------ --------- Grüße vom Kühlfisch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 20. Nov. 2012 14:12 <-- editieren / zitieren --> Unities abgeben: Nur für Kühlfisch
Hallo Fang mal mit der Entwicklerhilfe von Inventor an. Neben dem Hilfe-Fragezeichen auf das kleine schwarze Dreieck klicken, weitere Ressourcen, Entwicklerhilfe. Da sind auch ein paar Artikel zu grundsätzlichen Themen und dem Aufbau des Objektmodells. Weiterhin hilfreich ist der Blog von Brian Ekins. Sämtliche VBA-Einsteigertutorials im Internet die sich mit der Syntax und Funktionen von VBA beschäftigen kannst du auch hernehmen. ------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |