Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Referenz in Zeichnung ersetzen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Referenz in Zeichnung ersetzen (1504 mal gelesen)
Frankx
Mitglied



Sehen Sie sich das Profil von Frankx an!   Senden Sie eine Private Message an Frankx  Schreiben Sie einen Gästebucheintrag für Frankx

Beiträge: 53
Registriert: 08.01.2019

Inventor Professional

erstellt am: 01. Sep. 2020 15:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,
ich habe folgendes Problem:

Es existiert ein Einzelteil (ipt) bzw. eine Baugruppe (iam).
Diese wurden unter einem neuen Namen abgespeichert.

Die jeweilige dazugehörige Zeichnung (idw) wurde ebenfalls unter neuem Namen abgespeichert.

Nun möchte ich in der neuen idw den Verweis auf das neue Teil/Baugruppe ändern.
Im Inventor kann man das unter "Verwalten" - "Modellreferenz ersetzen" tun.

Wie funktioniert das in VBA?

Ich habe dazu bereits im Netz gesucht.
Hier meine bisherigen Bemühungen:

        ' oZeichDoc wird unter sPfadNameNewIdw gespeichert
        Call oZeichDoc.SaveAs(sPfadNameNewIdw, True)
       
       
        doc = oZeichDoc.Document
        Dim oFD As FileDescriptor

        ' die folgende Zeile ergibt immer eine Fehlermeldung
        oFD = doc.ReferencedFileDescriptors(1).DocumentDescriptor.ReferencedFileDescriptor
       
        oFD.ReplaceReference (sPfadNameNew)
       
        oZeichDoc.Update()  'diese Zeile ergibt ebenfalls einen Fehler
       
        'Die Zeichnung speichern
        Call oZeichDoc.Save
       
        'Die Zeichnung speichern und schließen
        Call oZeichDoc.Close(False)


Hat jemand eine Idee? Vielleicht ist der Ansatz ja auch komplett falsch.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Frankx
Mitglied



Sehen Sie sich das Profil von Frankx an!   Senden Sie eine Private Message an Frankx  Schreiben Sie einen Gästebucheintrag für Frankx

Beiträge: 53
Registriert: 08.01.2019

Inventor Professional

erstellt am: 01. Sep. 2020 16:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Also ich habe es jetzt so hinbekommen:

        'Kopie speichern unter mit neuem Zeichnungsnamen.
        Call oZeichOldDoc.SaveAs(sPfadNameNewIdw, True)
       
        'Die alte Zeichnung schließen
        Call oZeichOldDoc.Close(False)
       
        ' Die neue Zeichnung öffnen
        Dim oZeichNewDoc As Document
        Set oZeichNewDoc = ThisApplication.Documents.Open(sPfadNameNewIdw, False)
       
        ' alte Referenz durch neue Referenz ersetzen
        oZeichNewDoc.File.ReferencedFileDescriptors(1).ReplaceReference (sPfadNameNew)
       
       
        ' Sichern und schließen.
        Call oZeichNewDoc.Save
        Call oZeichNewDoc.Close(False)

Das funktioniert in 99% meiner Fälle.
Nur wenn in einer Zeichnung mehrere unterschiedliche Referenzen existieren, wird jeweils nur die erste ersetzt. Um das zu umgehen, müsste man eine Schleife einbauen.

.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

EIBe 3D
Mitglied
Dipl. - Ing. (FH)


Sehen Sie sich das Profil von EIBe 3D an!   Senden Sie eine Private Message an EIBe 3D  Schreiben Sie einen Gästebucheintrag für EIBe 3D

Beiträge: 267
Registriert: 24.01.2020

HP Z4 G4 Workstation
Xeon 3,6 32GB
Nvidia P2000
WIN10
SW2015 SP5.0
SW2017
*************
Inv2018 akt.SP

erstellt am: 01. Sep. 2020 16:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Frankx 10 Unities + Antwort hilfreich

Hallo Frank,

hier der Code mit dem ich referenzierte Dateien in Zeichnungen austausche. Es kann sein das du hier und da noch etwas ergänzen musst, da ich es aus einem umfangreicheren Programm rauskopiert habe.


Code:
'Block zum Austausch der, in der Zeichnung, referenzierten Modelle
        Dim oApp As Application
        Set oApp = ThisApplication
        Dim oDrwDoc As DrawingDocument
        Set oDrwDoc = oApp.ActiveDocument 'setzt oDrwDoc auf aktiviertes Zeichnungsdokument
        Dim oFile As File
        Set oFile = oDrwDoc.File
           
        Dim oFD As FileDescriptor
        Set oFD = oFile.ReferencedFileDescriptors.Item(1) 'setzt oFD auf erstes referenziertes Modell
           
        Call oFD.ReplaceReference(Pfad & oFileName & sDatEndung) 'HIER MUSS PFAD ZUR NEUEN IPT STEHEN 'ersetzt Referenz        in der Zeichnung zu neu generierten teil
        oDrwDoc.Update
        Call oDrwDoc.SaveAs(Pfad & oFileName & ".idw", False) 'Speichert neu generierte Zeichnung
        Call oDrwDoc.Close 'Schließt Zeichnung wieder


Die Zeichnung muss geöffnet und aktiv sein.


Grüße

EIBe 3D

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Frankx
Mitglied



Sehen Sie sich das Profil von Frankx an!   Senden Sie eine Private Message an Frankx  Schreiben Sie einen Gästebucheintrag für Frankx

Beiträge: 53
Registriert: 08.01.2019

Inventor Professional

erstellt am: 01. Sep. 2020 16:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke.
Das entspricht im wesentlichen meiner obigen Lösung. Jetzt muss ich nur noch die Schleife für Zeichnungen mit mehreren unterschiedlichen Referenzen hinbekommen. Das kommt ab und zu mal vor, wenn in einer Zusammenbauzeichnung zum besseren Verständnis ein paar Unterbaugruppen oder Einzelteile mit dargestellt werden.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

EIBe 3D
Mitglied
Dipl. - Ing. (FH)


Sehen Sie sich das Profil von EIBe 3D an!   Senden Sie eine Private Message an EIBe 3D  Schreiben Sie einen Gästebucheintrag für EIBe 3D

Beiträge: 267
Registriert: 24.01.2020

HP Z4 G4 Workstation
Xeon 3,6 32GB
Nvidia P2000
WIN10
SW2015 SP5.0
SW2017
*************
Inv2018 akt.SP

erstellt am: 01. Sep. 2020 16:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Frankx 10 Unities + Antwort hilfreich

Du warst schon fertig bis ich es aus meinem Sammelsurium rausgekramt hatte 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz