Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  XREF-Pfad über VBA?

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:  XREF-Pfad über VBA? (1419 mal gelesen)
idraH
Mitglied



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

Beiträge: 64
Registriert: 22.04.2002

ACAD 2006
Win XP

erstellt am: 20. Nov. 2003 11:11    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

Ich hätte da mal eine Frage zu Referenzen und VBA.
Gibt es eine Möglichkeit in VBA die Pfade der eingelesenen Referenzdateien zu ermitteln und zu ändern (Image und DWG). (möglichst ohne irgendwelche Zusatztools)
Bei verschachtelten Referenzen wäre es gut dabei auch zu ermitteln woher die verschachtelten Referenzdaten kommen und möglichst auch diese gleich anzupassen.
Wählen kann ich die Referenzen bereits indem ich sie aus der Blocktabelle filtere (If blockeintrag.isXref then...) aber dan fehlt mir der Anschluss, blockeintrag.path bringt leider nur eien Fehler.

Hat jemand einen Denkansatz für mich (habe die Foren bis jetzt ergebnislos durchsucht... Binden, einfügen, neuladen ... ist zu finden aber leider nichts um den Pfad zu ermitteln - zumindest nicht ohne ein neues Zusatztool einzubinden und das möchte ich möglichst vermeiden, weil ich dann jeden Rechner prüfen muss ob es denn auch dort dieses Tool gibt - und die VBA-Routine soll übers Netz laufen (habe schon viele Probleme gehabt, weil ich einen EXEL-Verweis in VBA eingebunden hatte... es gab jedesmal eine Fehlermeldung, weil auf verschiedenen Rechner unterschiedliche Exelversionen vorhanden waren))


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

idraH
Mitglied



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

Beiträge: 64
Registriert: 22.04.2002

ACAD 2006
Win XP

erstellt am: 25. Nov. 2003 15:59    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

Weil sich anscheinend niemand dazu äußern möchte, hier ein kurzer Extrakt aus meinen eigenen Bemühungen.
Da mir das aber ein ziemlicher Umweg scheint um zum Ziel zu kommen bitte ich immer noch um bessere Lösungen

Sub REF_()
For Each tempBlock In ThisDrawing.Blocks
If tempBlock.IsXRef Then
ThisDrawing.SendCommand "(setvar " + Chr(34) + "USERS1" + Chr(34) + " (cdr (assoc 1 (tblsearch " + Chr(34) + "block" + Chr(34) + " " + Chr(34) + tempBlock.Name + Chr(34) + ")))) "
MsgBox ThisDrawing.GetVariable("users1")
End If
Next
End Sub

viele Grüße aus Chemnitz, Hartmut

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

m99ds
Mitglied
Elektroplaner


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

Beiträge: 18
Registriert: 29.10.2003

AutoCAD 2000I

erstellt am: 11. Dez. 2003 08:41    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 idraH 10 Unities + Antwort hilfreich

Probiers mal mit diesem Code
Public Sub ChangeXrefpath()
    Dim D As AcadDocument
    Set D = ThisDrawing
    Dim O As AcadObject
    For Each O In ThisDrawing.ModelSpace
        If O.ObjectName = "AcDbBlockReference" Then
            Dim BLR As AcadBlockReference
            Set BLR = O
            If D.Blocks(BLR.Name).IsXRef Then
                Dim XR As AcadExternalReference
                Set XR = BLR
                XR.Path = "Hier noch neuen Pfad eintragen"
                D.Blocks(XR.Name).Reload
                MsgBox XR.Path
            End If
        End If
    Next
End Sub

------------------
Marco

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