| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Layer über Datei erzeugen (1643 mal gelesen)
|
R.Bless Mitglied Bauzeichner, CAD Administrator
Beiträge: 288 Registriert: 27.03.2003
|
erstellt am: 07. Jul. 2004 08:16 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, wir möchten in unserem Büro die Layer neu bezeichnen, da die Vorgabe unseres alten Konstruktionsprogramms ausläuft. Die bestehenden Zeichnungen wollen wir mit konvlay konvertieren. Nun meine Frage: gibt es eine Möglichkeit, die für konvlay erzeugte cnv-Datei dazu zu benutzen, in einer leeren Zeichnung die Layer zu erzeugen? Aus so einer Datei wäre es dann möglich, die neuen Layer per DC oder Werkzeugpaletten in eine neue Zeichnung zu übernehmen. Vielleicht hat ja jemand eine Idee. ------------------ Bis demnächst Rainer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 07. Jul. 2004 08:22 <-- editieren / zitieren --> Unities abgeben: Nur für R.Bless
mal einen anderen Ansatz : Siehe Hierund speziell für Layer : (defun LAYER-export(DATEINAME / LAYER LAYDATA LISTE DATEI) (While (setq LAYER (tblnext "LAYER" (null LAYER))) (setq LAYDATA (vl-remove-if '(lambda (L)(member(car L) '(-1 330 -2 5 390))) (entget(tblobjname "LAYER" (cdr(assoc 2 LAYER))) '("*")) ) ) (setq LISTE (cons LAYDATA LISTE)) ) (if(setq DATEI(open DATEINAME "w")) (progn (foreach LAYER LISTE (princ "(entmake '" DATEI) (prin1 LAYER DATEI) (princ ")\n" DATEI) ) (close DATEI) ) ) ) (defun c:LAYER-EXPORT ( / DATEINAME ) (if (setq DATEINAME (getfiled "LAYER-EXPORT" (getvar "SAVEFILEPATH") "LAY" 1)) (LAYER-EXPORT DATEINAME) (princ "\nAbgebrochen ..............\n") ) (princ) ) (defun c:LAYER-IMPORT ( / DATEINAME ) (if (setq DATEINAME (getfiled "LAYER-IMPORT" (getvar "SAVEFILEPATH") "LAY" 8)) (load DATEINAME) (princ "\nAbgebrochen ..............\n") ) (princ) ) Aber warum kann man nur aus einer leeren Datei die Layer per DC übernehmen? Geht doch auch mit deiner Konvertierten... Das Lisp würd ich nur bei Scriptverwendung nehmen. ------------------ - Thomas - [Diese Nachricht wurde von CADmium am 07. Jul. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
R.Bless Mitglied Bauzeichner, CAD Administrator
Beiträge: 288 Registriert: 27.03.2003
|
erstellt am: 07. Jul. 2004 13:34 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, ich komme erst jetzt dazu dir zu antworten. Wir wechseln in den nächsten Tagen von unserem Augustus Visio (von Hochtief,wers kennt) zum ADT 2005. Bei dieser Gelegenheit möchten wir eine neue Layerbenennung büroweit einführen (z.B.HTSV_BT_WAND_STBT_G070=alt,Bau_Bauteil_Stahlbn_G070 =neu). Zum einen müssen ja die alten Zeichnungen konvertiert werden (hierzu konvlay) und dann soll es eine Liste/DWG-Datei geben, wo alle Layermöglichkeiten existieren. Um die Erstellung der Layernahmen zu vereinfachen, erzeuge ich die Kombinationen mit Farbe, Linienart und Wichte in Excel und daraus z.B. die cnv-Datei für konvlay. Ich denke mal, dass konvlay nur vorhandene Layer umbenennt und es sind ja nicht alle Varianten in einer Datei drin. Deshalb bräuchte ich eine Hilfe, alle Layermöglichkeiten automatisch erzeugen zu lassen. Ich habe vor, den Aufruf der Layer mit Werkzeugpaletten zu machen, dazu brauche (?) ich die Layer in der Zeichnung. War vielleicht ein wenig lang, aber es ist vielleicht klar worauf ich hinaus möchte. ------------------ Bis demnächst Rainer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Proxy Ehrenmitglied Stateless-DHCP v6-Paketfragmentierer
Beiträge: 1629 Registriert: 13.11.2003 Tastaturen, Mäuse, Pladden, Monitore, ...
|
erstellt am: 07. Jul. 2004 17:07 <-- editieren / zitieren --> Unities abgeben: Nur für R.Bless
So wie ich das Problem verstanden habe willst du vor dem eigentlichen LayConv sicherstellen, dass die entsprechenden Layer in JEDER dwg existieren. Somit wäre IMHO der einfachster Weg z.b. mit vba beim Öffnen in die Methode _Open innerhalb von ThisDrawing ein sendcommand auf ein Lisp, diese ssollte dann deine Layer erstellen. Im Notfall einfach mit ("command" "._-layer" "_make" "blablub" .... ) und das so oft wie deine Layer halt haben willst. Somit dürfte beim Stappel Standardprüfung in jeder geöffneten Datei deine neue Layerstruktur vor dem eigentlichem Konvertieren existieren. my 0.02 € ------------------ "Lisp?!?! Why the Hell did you pick the most arcane, obscure, and hopelessly-rooted-in-the-computer-science-department language in the world for an AutoCAD programming language?" Read the whole story: The Autodesk File ca. 890 Seiten | 7500 KB PDF Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
R.Bless Mitglied Bauzeichner, CAD Administrator
Beiträge: 288 Registriert: 27.03.2003
|
erstellt am: 13. Jul. 2004 10:51 <-- editieren / zitieren --> Unities abgeben:
Hallo, komme erst jetzt dazu zu antworten. Ich hatte mir eine Möglichkeit vorgestellt, in der ich mittels einer Tabelle (Excel oder Textdatei) die schon oben beschriebenen Layer für eine Muster-DWG erstellen kann. Die scheint es wohl nicht zu geben. Als Alternative muss ich dann alle Layer über den mach-Befehl erzeugen. Vielen Dank für die Antworten. ------------------ Bis demnächst Rainer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1968 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 13. Jul. 2004 11:14 <-- editieren / zitieren --> Unities abgeben: Nur für R.Bless
Konvlay ist ursprünglich nur zum umsetzen von Layernamen, Farben ind Linientypen gedacht. Das Programm ist auch schon etwas älter. Wenn du damit auch nicht vorhandene Layer anlegen möchtest, muss das Programm etwas umgebaut werden.
------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
R.Bless Mitglied Bauzeichner, CAD Administrator
Beiträge: 288 Registriert: 27.03.2003
|
erstellt am: 13. Jul. 2004 11:35 <-- editieren / zitieren --> Unities abgeben:
|
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 13. Jul. 2004 12:38 <-- editieren / zitieren --> Unities abgeben: Nur für R.Bless
Hallo Rainer, schau mal auf meiner Seite unter Hilfe->Download->Prog[3]. Da findest du ein Tool im Quellcode, aus diesem kannst du (meinetwegen über Nacht) ;-) dir die einzelnen Sub's rauslösen und zur Erzeugung der Layer verwenden. Bei Fragen ... Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD Da weiß man, wann man's hat! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Alpschorsch Mitglied Dipl.-Ing.(FH) Architektur
Beiträge: 735 Registriert: 18.11.2003 Grafikkarte: Rage128 Fury ProII 32MB Prozzesor ~1,5MHz Arbeitsspeicher~1,3GB Windows 2000 Professional ACAD 2004 Express Tools(deutsch) Photoshop 7.0 Quark Express 5.5 Acrobat 5.0
|
erstellt am: 13. Jul. 2004 13:28 <-- editieren / zitieren --> Unities abgeben: Nur für R.Bless
Hallo, wie wäre es wenn Du Dir eine Basis.dwt erstellst in der Du alle neuen Layer voreinstellst. Dann diese .dwt mit konvlay laden und schwups! Geht schnell und müßte sowie ich das verstanden habe reichen! Ansonsten layer.mnu schreiben! Mfg Alpschorsch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
R.Bless Mitglied Bauzeichner, CAD Administrator
Beiträge: 288 Registriert: 27.03.2003
|
erstellt am: 13. Jul. 2004 14:02 <-- editieren / zitieren --> Unities abgeben:
Hallo, @ Alpschorsch, genau da ist das Problem. Ich habe eine Layerstruktur, aus der ca. 500 Layerkombinationen entstehen. Ich möchte aber nicht jeden Layer manuell eingeben. Dieses soll eine Excel-Datei (die schon existiert) mit kopieren und Verketten erledigen. Daher wäre auch der Ansatz mit -layer - mach möglich aber aufwendig. @ Holger vielen Dank für den Hinweis, aber soweit reichen meine Lisp Kentnisse nicht. Ich melde mich noch mal. ------------------ Bis demnächst Rainer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 13. Jul. 2004 14:27 <-- editieren / zitieren -->
Zitat: Original erstellt von R.Bless: Ich hatte mir eine Möglichkeit vorgestellt, in der ich mittels einer Tabelle (Excel oder Textdatei) die schon oben beschriebenen Layer für eine Muster-DWG erstellen kann. Die scheint es wohl nicht zu geben. Als Alternative muss ich dann alle Layer über den mach-Befehl erzeugen.
Um Gottes Willen, nein. Das Umbenennen von Layern und gleichzeitige Erzeugen noch nicht vorhandener Layer nach Vorgaben einer Datei ist absolut trivial, und sowas kann natürlich völlig unbeaufsichtigt im Batch-Betrieb über beliebig viele Zeichnungsdateien laufen. Wenn Du willst, bastle ich Dir gegen eine Spende von 50 Euro an Amnesty sowas nach Deinen speziellen Vorgaben. Schick' mir einfach eine Email an berger@archtools.de, falls Du interessiert bist. Gruß Tom Berger
------------------
|