| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Layer umbenennen (6894 mal gelesen)
|
stefan142 Mitglied
Beiträge: 20 Registriert: 01.12.2003 AutoCAD 2000 Express Tools
|
erstellt am: 26. Apr. 2004 10:19 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, ich muß bei externen Zeichnungen die Layer umbenennen (von Ebene 4 in 4, von Ebene 50 in 50 etc.). Ich habe im Forum jedoch nur ein Lisp gefunden, mit dem man allen Layernamen etwas voranstellen kann, also die umgekehrte Funktion. Gibt es auch eine Möglichkeit, bei allen Layernamen die ersten 6 Stellen zu löschen? Gruß Stefan PS: System AutoCAD 2000, Express Tools
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 26. Apr. 2004 10:24 <-- editieren / zitieren --> Unities abgeben: Nur für stefan142
Also 1. - einfach umbenennen für die "Ebene " alter Name = Ebene * <--- "Ebene<Leerstelle>" neuer Name = * für die 6. Stelle : alter Name = ??????* neuer Name = ?????X* <-- setzt an Stelle 6 ein X ... ------------------ - Sebastian Mattis - Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 26. Apr. 2004 10:32 <-- editieren / zitieren --> Unities abgeben: Nur für stefan142
|
stefan142 Mitglied
Beiträge: 20 Registriert: 01.12.2003 AutoCAD 2000 Express Tools
|
erstellt am: 26. Apr. 2004 10:44 <-- editieren / zitieren --> Unities abgeben:
Hallo cadffm, hat super geklappt, vielen Dank! Den 2. Schritt muss man gar nicht ausführen, da AutoCAD das Leerzeichen, das dann am Anfang steht, automatisch löscht. Hallo Brischke, an einer Lisp wäre ich dennoch sehr interessiert, da ich sehr viele Zeichnungen zu ändern habe. Daher noch mal die Aufgabe: Ich möchte alle Layer, die mit "Ebene " beginnen, so umändern, dass der Layername nur noch aus der nachfolgenden Nummer besteht. Dieses Lisp-Programm würde ich dann per Script über alle Zeichnungen laufen lassen. Mit freundlichen Grüßen Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 26. Apr. 2004 11:20 <-- editieren / zitieren --> Unities abgeben: Nur für stefan142
Hallo Stefan, dann nimm dies:
Code:
(defun c:laySubAnf ( / lay muster) (setq lay (tblnext "LAYER" T) muster "Ebene ");Hier den Mustertext eintragen, ;der am Anfang eines Layernamens ;gelöscht werden soll (while lay (if (and (wcmatch (strcase (setq lay (cdr(assoc 2 lay)))) (strcase (strcat muster "*"))) (not (tblobjname "LAYER" (setq nlay (vl-string-trim " "(substr lay (1+ (strlen muster))))))) ) (progn (entmod (subst (cons 2 nlay) (cons 2 lay) (entget (tblobjname "LAYER" lay)) ) ) (princ (strcat "\nLayer: " lay " umbenannt in: " nlay)) ) (princ (strcat "\nLayer: " lay " nicht umbenannt")) ) (setq lay (tblnext "LAYER")) ) (princ) )
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 |
stefan142 Mitglied
Beiträge: 20 Registriert: 01.12.2003 AutoCAD 2000 Express Tools
|
erstellt am: 26. Apr. 2004 14:40 <-- editieren / zitieren --> Unities abgeben:
|