| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: Zeichnungskopf-Attribute auslesen (2840 mal gelesen)
|
gepiu Mitglied Konstrukteur
Beiträge: 29 Registriert: 10.07.2004
|
erstellt am: 10. Jul. 2004 00:31 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen mein Problem ist ich sollte von ca. über 3'000 Zeichnungen die Zeichnungsnamen usw. auslesen, und in eine Access Zeichverwaltung übertragen. Der Zeichnungskopf ist eine einfacher Block mit Attributen. Wir arbeiten mit AutoCAD 2002 pur Gibt es eine lösung diese Daten in eine txt Datei auszulesen ? Bin für jeden Tip echt dankbar Pius [Diese Nachricht wurde von gepiu am 10. Jul. 2004 editiert.]
[Diese Nachricht wurde von gepiu am 10. Jul. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 10. Jul. 2004 01:06 <-- editieren / zitieren --> Unities abgeben: Nur für gepiu
|
WALTJENS Mitglied Malen nach Zahlen auf hochtechnisch
Beiträge: 633 Registriert: 06.07.2004
|
erstellt am: 12. Jul. 2004 17:15 <-- editieren / zitieren --> Unities abgeben: Nur für gepiu
Bin mit einer ähnlichen Belastungsprobe konfrontiert. Muss bei einem Zeichnungsarchiv (ca. 4000 dwg's) einen als Bllock eingefügten Text austauschen und eventuelle Veralterungen an Rahmen und Schriftkopf aktualisieren. Das bedeutet zu 99% die selben 20 Handgriffe. Sollte sich doch automatisieren lassen. Ich hoffe ich muss nicht (wie oben angeschnitten) programmieren auch noch lernen. Hat irgenwer noch Lösungsansätze? danke im Vorraus.. WALTJENS Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 12. Jul. 2004 18:09 <-- editieren / zitieren --> Unities abgeben: Nur für gepiu
|
gepiu Mitglied Konstrukteur
Beiträge: 29 Registriert: 10.07.2004
|
erstellt am: 12. Jul. 2004 21:05 <-- editieren / zitieren --> Unities abgeben:
Hi Axel Zuerst vielen Dank für Deine promte Antwort, ich bin da leider nicht gleich so schnell. Zu meinen Angaben, mein Dateiname ist eine fortlaufende Nummer welche dann in der Zeichnung aus einer Vornummer die Zeich.Nr. ergibt. (81.42589) Eine Liste der Dateien, die ausgelesen werden müssen, kann ich aus meiner Access Dateiverwaltung filtern lassen, das sollte kein Problem sein. DOS ist gut und beherrsche ich auch ein bisschen, kleinere Batch-Files habe ich schon des öfteren gebraucht. Nix komplexes. Aber wie starte ich auf der DOS Ebene ein Script das dann eine Zeichnung öffnet, den Block "Plankopf" öffnet und mir die Attribute "Zeich-Nr. Zeich-Name + Zeich-Gruppe" in eine txt Datei auslist. Gruss Pius Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 12. Jul. 2004 21:57 <-- editieren / zitieren --> Unities abgeben: Nur für gepiu
Genau andersrum: Aus der Batchdatei AutoCAD starten, mit Angabe der Zeichnung und des Sktipts: c:\programme\..\acad.exe irgendeine.dwg /b mein-script.scr (nagel mich jetzt nicht fest, aber ich glaube, es ist "/b" für das Skript) Don't panic, wenn sich AutoCAD erstmal im Cache eingenistet hat, dauert der Start nur noch eine Sekunde. Funktioniert wunderbar, und man kann aus dem Skript heraus auch noch problemlos Lisp aufrufen. Mein Rekord liegt bei ca. 10000 Zeichnungen, lief ca. 4 Tage durch (war allerdings ein sehr kompliziertes Programm, was lief). Und der Kommentar von der GL: "Wir wollen nicht, dass Angestellte Kaffee trinkend vor ihren Rechnern sitzen und alles wie von Geisterhand erledigt wird. Wir wollen den Fleiß der Angestellten von ihrem Schweiß ablesen können!" Gruß, Axel ------------------ Meine AutoLisp-Seiten Meine private Homepage Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gepiu Mitglied Konstrukteur
Beiträge: 29 Registriert: 10.07.2004
|
erstellt am: 12. Jul. 2004 22:17 <-- editieren / zitieren --> Unities abgeben:
|
gepiu Mitglied Konstrukteur
Beiträge: 29 Registriert: 10.07.2004 CPU: Core i7 Ram: 32 GB OS: Win10 pro 64bit Prog: Adesk Design Suite 2014
|
erstellt am: 13. Jul. 2004 12:30 <-- editieren / zitieren --> Unities abgeben:
Hi Axel ich komme da einfach nicht weiter, ich habe in der eingabe aufforderung mit diesen befehlen geprobt. ich kam aber nur mit dem "-eattext" ein bisschen weiter. als anhang habe ich eine bsp.datei als txt benannt, wenn du evtl. ein wenig mitleid hast und diese datei checken möchtest .... später muss ich noch herausfinden wie ich die einzelnen dateien zusammenfüge, aber eins nach dem anderen. Gruss Pius Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gepiu Mitglied Konstrukteur
Beiträge: 29 Registriert: 10.07.2004
|
erstellt am: 13. Jul. 2004 13:23 <-- editieren / zitieren --> Unities abgeben:
Nochmal ich ich habe ein script geschrieben ******** -eattext n n c:/_Work/script/eattext.blk t c:/_Work/script/'dwgname'.txt ******** wie übergebe ich in einem script die sysvariable 'dwgname' als ausgabedateiname ??? weis jemand hilfe Pius Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 13. Jul. 2004 14:25 <-- editieren / zitieren --> Unities abgeben: Nur für gepiu
Das Skript muss eine Lisp-Funktion aufrufen, da du nur in Lisp a) den Zeichnungskopf wählen kannst und b) einen Dateinamen für die Ausgabe zusammenbasteln kannst (genau das, was du angesprochen hast, das geht nicht im Script) Datei "auslesen.scr":
Code:
(load"auslesen") (auslesen) (command"_quit""_yes")
Die Lisp-Funktion ist auch sehr einfach: Datei "auslesen.lsp":
Code:
(defun auslesen( / ) (command"-eattext""_o" (ssget"X"'((0 . "INSERT")(2 . "_me-Plankopf"))) "" "_n" "_n" "_n" "_csv" (strcat (getvar"dwgprefix") (substr(getvar"dwgname")1(-(strlen(getvar"dwgname"))4)) ".csv" ) ) )
Zum Schluss brauchst du eine Batchdatei: Datei "auslesen.cmd":
Code:
c:\programme\autocad\acad.exe 11111.dwg /b auslesen.scr c:\programme\autocad\acad.exe 11112.dwg /b auslesen.scr c:\programme\autocad\acad.exe 11113.dwg /b auslesen.scr .... c:\programme\autocad\acad.exe 99999.dwg /b auslesen.scr
Das ist erstmal der primitivste Ansatz. Hat den Nachteil, dass er jede Zeichnung in eine einzelne CSV-datei schreibt. Das Lässt sich bei Eattext wohl auch nicht vermeiden:-( Ich würde die Lisp-Routine dahingehend erweitern, dass sie die rausgeschriebene CSV wieder einliest, löscht und den Inhalt (nur die zweite Zeile) mit (open filename "a") und (write-line) in eine zentrale Datei schreibt. Ich würde, auch wenn's nach Access soll, nicht '.mdb' als Ausgabe wählen. Damit nimmst du dir genau diese Möglichkeit, alles in eine Datei zu schreiben. CSV kannst du problemlos importieren. Ach so, Vorsicht! Alles nicht getestet! Gruß, Axel Strube-Zettler ------------------ Meine AutoLisp-Seiten Meine private Homepage Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze [Diese Nachricht wurde von mapcar am 13. Jul. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gepiu Mitglied Konstrukteur
Beiträge: 29 Registriert: 10.07.2004
|
erstellt am: 14. Jul. 2004 10:14 <-- editieren / zitieren --> Unities abgeben:
Hi Axel muchas gracias, ist echt toll deine hilfe mit dem -eattext funktioniert es nicht so ganz aber mit -attext ein bisschen besser. werde weiter testen. im moment am bearbeiten meiner dateiliste (es sind 8623 DWG Dateien und 4946 leereinträge in meiner DB diese muss ich nun abgleichen. dazu brauche ich meine zeit, ich melde mich später wieder wie die ganze sache läuft. mit meiner GL ist es übrigens gleich, das heisst alles während der freizeit oder am rande Gruss Pius Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gepiu Mitglied Konstrukteur
Beiträge: 29 Registriert: 10.07.2004 CPU: Core i7 Ram: 32 GB OS: Win10 pro 64bit Prog: Adesk Design Suite 2014
|
erstellt am: 17. Jul. 2004 12:51 <-- editieren / zitieren --> Unities abgeben:
Hi Axel nachdem ich die ganzen listen durchgearbeitet habe, hatte ich noch 3100 Dateien zum auslesen. nach einigen anpassungen an deinen vorgaben konnte ich von 1800 den Plankopf auslesen, (die anderen hatten noch keinen Plankopf mit Attributen). diese dann der DB hinzufügen war das leichteste. der compi arbeitet ca. 12Std. programme erstellen fällt mir unheimlich schwer aber änderung oder anpassungen anbringen ist eher mein ding. muchas gracias für deine tolle und echt kompetente hilfe Pius Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |