Hallo Leute,
ich schreibe für meine Firma ein VBA-Makro für AutoCAD 2016.
Wir planen die Baupläne für Elektroinstallationen, daher soll das Makro aus Grundrissen z.B.
Brandmelder als Blöcke erkennen und die Schema DWG dazu selbst zeichnen.
Damit soll der Aufwand für die Mitarbeiter minimiert werden.
Aktuell befinde ich mich in der Testphase und stoße hier auf ein Problem zu dem ich auf Anhieb keine
Lösung fand und ich somit Hilfe benötige (Weil es hier keine Ansprechpartner dafür gibt).
Das Makro funktioniert auf meinem lokalen Rechner einwandfrei, aber auch auf Netzwerkrechnern mit wenigen
Einschränkungen die hier aber nicht abgehandelt werden sollen.
Das Problem besteht sowohl auf dem lokalen Rechner als auch bei den anderen Netzwerkrechnern, dass das Makro nur bei Testdateien so funktioniert wie es soll.
Bei größeren realistischen Alltags-Dateien mit Grundriss und allen möglichen Objekten
funktioniert das Makro nicht mehr.
Ich habe das Makro als .txt beigefügt.
Erläuterung zum Makro:
Als Erstes werden aus der aktuellen Zeichnung alle Blöcke in eine Excel-Datei geschrieben.
Des weiteren wird überprüft ob schon eine Datei geschrieben wurde und falls dies der Fall ist
weiter geschrieben wird.(Da ein Schema mehrere Stockwerke beinhaltet und eine Zeichnung nur ein Stockwerk hat)
Im zweiten Teil werden alle Informationen in Arrays gespeichert.
Im dritten und größten Teil wird dann eine neue Zeichnung erstellt und das Schema gezeichnet.
Genaueres zum Problem:
Ich stellte fest, dass bei größeren DWG's die Excel-Tabelle leer bleibt und nur noch die Überschriften (Name, XScale, YScale, usw. ...) geschrieben werden.
Somit wäre mein erster Ansatz die "for Each - Schleife" mit der die Blöcke aus der Zeichnung ausgelesen werden. Ich weiß leider nicht wie ich das anders lösen kann z.B. mit einer for-Schleife.
Ich weiß, dass das Makro nicht optimal geschrieben ist ( viele Variablen ), ich mache das nicht hauptberuflich.
Wenn einer Zeit hat sich dem anzunehmen wäre ich sehr dankbar und offen für Anregungen und Verbesserungsvorschläge. Vielleicht ist es auch nur eine Kleinigkeit und ich komme einfach nicht darauf..
Vielen Dank im Voraus!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP