Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  externe Referenzen prüfen

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

Anzeige:

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

Dieser Beitrag ist erfolgreich in das Forum AutoCAD VBA verschoben worden.

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:  externe Referenzen prüfen (1099 mal gelesen)
PeterF
Mitglied



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

Beiträge: 30
Registriert: 11.08.2008

erstellt am: 06. Nov. 2008 19:52    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 möchte Pläne per VB Code auf das Vorhandensein von exteren Referenzen prüfen.

Auf dem ersten Blick bietet sich dafür ja die AcadFileDependencies Collection an.
Das funktioniert aber nur, wenn alle Dateien auch existieren.

Ansonsten kommt beim Durchlaufen der Collection

Dim myFD As AcadFileDependency

For Each myFD In ActiveDocument.FileDependencies
....
Next

direkt ein Fehler ("Das aufgerufene Object wurde von den Clients getrennt").
Die Count-Eigenschaft der Collection zeigt die zu erwartende Anzahl der Dateien an.
Wenn ich aber das Element 0 (z.b. ActiveDocument.FileDependencies(0).Feature) aufrufe, kommt auch sofort eine Fehlermeldung ("Schlüssel nicht gefunden"). Alle vorhandenen Dateiabhängigkeiten kann ich mir über den Index aufrufen.


Der zweite Weg wäre ja über die Blocks Collection mit der Prüfung auf die ISXref-Eigenschaft. Das kann aber unter Umständen recht lange dauern. Dann habe ich aber immer noch den Aufwand zu testen, ob die externe Referenz überhaupt existiert, Dann weiß ich immer noch nicht, ob diese geladen wurde (wenn nämlich ein Fehler beim Laden aufgetreten ist).

Nun endlich mein Fragen:

1. gibt es eine DXF-Code für die Selection von Xrefs
2. wie kann ich das ACAD Object AcadExternalReference für bereits vorhandene Xrefs benutzen (in der ACAD-Hilfe habe ich nur gefunden, dass man neue Referenzen erzeugen kann)
3. gibt es ein anderes Objekt was mir, wie der Xref-Manager sagen kann, welche Xrefs überhaupt in der Zeichnung vorhanden sein müssten, ob diese geladen wurden usw.
4. oder gibt es eine komplett anderen Weg?

Danke schon mal für Eure Antworten!

------------------
Viele Grüße aus dem Münsterland!

PeterF
--------------------------------------------
Der Horizont vieler Menschen ist ein Kreis mit dem Radius Null. Das nennen sie dann ihren Standpunkt.

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


Ex-Mitglied

erstellt am: 06. Nov. 2008 20:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

lade Dir mal mein Beispiel von http://ww3.cad.de/foren/ubb/Forum54/HTML/020951.shtml#000009
da ist Code vorhanden, der gleichzeitig auch prüft, ob ein XRef geladen ist oder nicht.

Die FileDependencies beinhalten mehr als nur XRef's, da gehören CTB-Files, Fonts, ... sprich alles, was auch bei 'etransmit' mitübertragen werden müsste (damit bin ich aber nicht wirklich vertraut).

Hoffe es hilft Dir (zumindest in den meisten Punkten) weiter, wenn noch etwas offen ist, (fast) jederzeit und gerne.


- alfred -

PeterF
Mitglied



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

Beiträge: 30
Registriert: 11.08.2008

erstellt am: 06. Nov. 2008 20:28    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

Hi alfred,

danke für die rasche Antwort.
Dein Code ist ja schon mal prima und hilft mir auch weiter. Die Eigenschaft XRefDatabase war das fehlende Rädchen im Getriebe, was aber immer noch schwer läuft. Ich sehe ein Problem auf mich zukommen, wenn es keinen dxf-Code gibt, der direkt externe Referenzen anspricht. "Insert" selektiert ja alle Blockreferenzen. In meinen Zeichnungen sind möglicherweise tausende davon drin. Da ist eine for each Schleife besser als nichts, aber auch nicht der schnellste Weg.

Also noch mal vielen Dank mit der Hoffnung, daß jemand einen Weg kennt, Xrefs direkt zu selektieren.

------------------
Viele Grüße aus dem Münsterland!

PeterF
--------------------------------------------
Der Horizont vieler Menschen ist ein Kreis mit dem Radius Null. Das nennen sie dann ihren Standpunkt.

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


Ex-Mitglied

erstellt am: 06. Nov. 2008 20:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

Du kannst natürlich statt der Selektion auf alle BlockReferences auch die Liste der Blocks (BlockDefinitionen) durchgehen, solange Du nicht wissen willst, ob diese überhaupt verwendet sind.

Dim tBl as AcadBlock
for each tBl in ThisDrawing.Blocks
  'und da hast jetzt die Blockdefinition
  'jetzt kann geprüft werden ob es sich um ein XRef handelt
next


- alfred -

PeterF
Mitglied



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

Beiträge: 30
Registriert: 11.08.2008

erstellt am: 07. Nov. 2008 08:06    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

Hi alfred,

Danke für die Antwort.
Das habe uch auch schon so gemacht. Aber, wie du schon bemerkt hast, habe ich dann keine Kontrolle, ob die Referenz überhaupt verwendet wird.
Was mir gerade dabei einfällt. Man kann ja die Block-Collection durchlaufen. Wenn ein Block.IsXref=true dann ein Selectionset bilden mit dem Blocknamen.
So weiß ich, ob die Xref überhaupt verwendet wird. Mal testen, wie das mit den Laufzeitzeiten aussieht.

Aber dennoch bleibt die Frage, warum es einen Laufzeitfehler gibt, wenn man die FileDependencies-Collection durchlaufen will und eine Referenz nicht gefunden wurde? Sieht nach nicht abgefangenen Programmfehler aus.


Kommunikation erweitert immer wieder den Horizont! Danke!


ps: wiese steht der Topic auf einmal im Forum "Rund um AutoCad". Mir war so, als hätte ich ihn im VBA Forum verfasst. Wennn nicht, wie kann man ihn verschieben?

------------------
Viele Grüße aus dem Münsterland!

PeterF
--------------------------------------------
Der Horizont vieler Menschen ist ein Kreis mit dem Radius Null. Das nennen sie dann ihren Standpunkt.

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



Technischer Zeichner / Systemplaner (m/w/d) für Technische Gebäudeausrüstung

GOLDBECK?realisiert zukunftsweisende Immobilien in Europa. Wir verstehen Gebäude als Produkte und bieten alle Leistungen aus einer Hand: vom Design über den Bau bis zu Services im Betrieb. Aktuell beschäftigt unser Familienunternehmen mehr als 12.000 Mitarbeitende an über 100 Standorten bei einer?Gesamtleistung von über 6 Mrd. Euro. Unser Anspruch ?building?excellence? steht dabei für Spitzenleistungen ...

Anzeige ansehenTechnischer Zeichner, Bauzeichner
cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 07. Nov. 2008 08:13    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 PeterF 10 Unities + Antwort hilfreich

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


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

Administrative Optionen: Beitrag öffnen | Archivieren/Bewegen | Beitrag melden!

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

(c)2023 CAD.de | Impressum | Datenschutz