| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: layernamen stapelweise ändern (4454 mal gelesen)
|
chicci Mitglied
Beiträge: 139 Registriert: 19.07.2006 win 10, Intel Core i7 CPU 920, 2,67GHz, 6 GB RAM, Autocad MEP 2012
|
erstellt am: 12. Feb. 2010 19:40 <-- editieren / zitieren --> Unities abgeben:
hallo ihr spezies ich habe eine fremdzeichnung mit 1 mio layer, die offenbar aufgrund von eingefügten xrefs 100stellige layernamen haben und möchte diese wie folgt umbenennen: 1. alle zahlen und sonderzeichne in den layernamen löschen 2. innerhalb der layernamen einzelne namenteile mit suchen und ersetzen ändern ich dachte es gibt vllt etwas wie das tolle lips bw_finrept, welches ich neulich emphohlen bekommen habe und nun nie wieder missen möchte; damit aber leider geht es nicht. mit _layertrans komme ich nicht klar, weil ich nicht weiss, wie ich mit wildcards oder wie die dinger heissen in autocad umgehen müsste, zudem will ich ja nicht mehrer layer auf einen neuen gemeinsamen layer setzen und auch ihre eigenschaften beibehalten. es geht mir ausschliesslich um die layernamen, die ich vereinfachen möchte, ob überhaupt erstmal zu verstehen, wie die zeichnung aufgebaut wurde, an der sich offenbar mehrere zeichner & büros versucht haben. zur verdeutlichung füge ich mal einen screenshot bei. wär´schön, wenn jmd rat weiß lg ------------------ . Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 12. Feb. 2010 20:06 <-- editieren / zitieren -->
Hi, kurz einen Schritt zurück! Was hilft es Dir, Sonderzeichen und Ziffern aus den Layernamen zu entfernen? Das erzeugt (wahrscheinlich) bei großer Anzahl von Layern mit strukturierten Namen schon mal das Problem, dass dadurch plötzlich gleichnamige Layer entstehen können, z.B. (ohne jetzt am Screenshot wirklich etwas genau erkennen zu können): Aus den Layern Ebene03$0$L_LTG_E1_6A Ebene04$0$L_LTG_E1_6A würden nach der Konvertierung entsprechend Deines Wunsches EbeneLLTGEA EbeneLLTGEA werden. Du erkennst, dass das Konvertieren der beiden unterschiedlichen Namen zum gleichen Ergebnis führen ==> und das geht nicht! Weiters verlierst Du damit (insbesondere durch vernichten von Ziffern) jeden Bezug auf die Etagennummer, das kann auch nicht der allumfassende Wunsch sein, oder? Und was gewinnst Du dadurch? Es werden nicht weniger Layer, aber die Layernamensstruktur hast Du vernichtet, das macht es nicht leichter, sondern schwieriger. Ich hätte an Deiner Stelle, gerade da die XRef-Namen ja in den Layern enthalten sind, die Zeichnung wieder genau in dieser XRef's zerlegt, dann in den Zeichnungen durchgehen, was Du davon brauchst und diese Layer dann umbenennen.
Aber da gibt's sicher auch noch viele andere Möglichkeiten, ist mal nur eine von vielen Ideen und davor ein Hinweis zur Vorsicht. - alfred - ------------------ www.hollaus.at [Diese Nachricht wurde von a.n. am 12. Feb. 2010 editiert.] |
chicci Mitglied
Beiträge: 139 Registriert: 19.07.2006 win 10, Intel Core i7 CPU 920, 2,67GHz, 6 GB RAM, Autocad MEP 2012
|
erstellt am: 12. Feb. 2010 20:17 <-- editieren / zitieren --> Unities abgeben:
vermutlich hast du recht aber aus all dem zusammengeschusternen layernamen mochte ich im grunde alle, die "_AB_" enthalten auf "abluft" setzen, alle die "_ZU_" enthalten auf "zuluft" etc.pp. die layerstruktur ist so einfach nur unübersichtlich ------------------ . Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Marita Mitglied
Beiträge: 536 Registriert: 29.12.2005
|
erstellt am: 12. Feb. 2010 20:22 <-- editieren / zitieren --> Unities abgeben: Nur für chicci
Zitat: Original erstellt von chicci:
ob überhaupt erstmal zu verstehen, wie die zeichnung aufgebaut wurde, an der sich offenbar mehrere zeichner & büros versucht haben.
Wenn es tatsächlich darum geht, würde ich mir auch erst mal die vorhandene Struktur zunutze machen und bevor ich irgendwas zerlege, erst mal verschiedene Layerfilter anlegen, um mir die Zeichnung "Stapelweise" ein und auszublenden und anzuschauen, und herauszufinden was wozu gehört, und zusammenzufassen, rauszuschreiben, oder zu löschen. Die Filter machen es Dir auch im Manager dann einfacher, die Übersicht zu behalten - einfacher als eine "selbsterfundene" Struktur, die womöglich gar nicht zur Zeichnung passt und es Dir nacher unmöglich macht Spreu vom Weizen zu trennen. Edit. Zum "stapelweise ändern" selbst, _rename funktioniert doch wunderbar? Beispiel alter Name "ZU*" zu ändern in "Zuluft*". Eventuell brauchst Du mehrere Schritte, oder such mal es gab hier auch schon Tips zu komplizierteren Namensänderungen... ------------------ Liebe Grüsse, Marita Imagination is the one weapon in the war against reality. --Jules de Gaultier -- [Diese Nachricht wurde von Marita am 12. Feb. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 12. Feb. 2010 20:24 <-- editieren / zitieren -->
Hi, probier das ev. mal mit Layerfiltern zu lösen. Leg einen Eigenschaftsfilter (im Layermanager links) an. Gib diesem den Namen 'ABLUFT' Und in Filterdefinition gibst Du '*_AB_*' an Sollten mehrere Abluftvarianten vorkommen, kannst Du in diesem Filter auch mehrere Zeilen für Filterdefinitionen verwenden. Damit erzielst Du mal relativ schnell Gruppen, die einfach schaltbar sind. [EDIT] @Marita : Super, kaum ist in Spanien die Siesta vorbei, kommt man(n) gegen Frau wieder mal nicht zurecht [/EDIT] - alfred - ------------------ www.hollaus.at [Diese Nachricht wurde von a.n. am 12. Feb. 2010 editiert.] |
chicci Mitglied
Beiträge: 139 Registriert: 19.07.2006 win 10, Intel Core i7 CPU 920, 2,67GHz, 6 GB RAM, Autocad MEP 2012
|
erstellt am: 12. Feb. 2010 20:46 <-- editieren / zitieren --> Unities abgeben:
|
cad4fun Ehrenmitglied
Beiträge: 1846 Registriert: 06.12.2004 privat ACAD 2013 und 2017 deutsch, Windows 7 64Bit HP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM ATI FirePro V (FireGL V) Graphics Adapter Treiberversion: 15.201.1151.1008
|
erstellt am: 13. Feb. 2010 11:32 <-- editieren / zitieren --> Unities abgeben: Nur für chicci
Hilft Dir das? ;;;2005-11-25 by joern bosse (CAD.de) ;; LayerNamensNeile Umbenennen, z.B. 123_AB_abc auf 123-abluft-abc (defun c:LNTU (/ alt neu neu Layer Lalist n) (setq alt (getstring "\numzubenennender Teilstring:") ; gib _AB_ ein neu (getstring "\nneuer Teilstring:")) ; gib -abluft- ein (setq Layer (cdr (assoc 2 (tblnext "LAYER" T)))) (while Layer (if (wcmatch Layer (strcat "*" alt "*")) (setq Lalist (cons Layer Lalist))) (setq Layer (cdr (assoc 2 (tblnext "LAYER"))))) (setq n 0) (mapcar '(lambda (A) (entmod (subst (cons 2 (vl-string-subst neu alt A)) (assoc 2 (entget (tblobjname "LAYER" A))) (entget (tblobjname "LAYER" A)))) (setq n (+ n 1))) Lalist) (princ (strcat "\n" (itoa n) " Layer umbenannt.")) (princ)) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
chicci Mitglied
Beiträge: 139 Registriert: 19.07.2006 win 10, Intel Core i7 CPU 920, 2,67GHz, 6 GB RAM, Autocad MEP 2012
|
erstellt am: 15. Feb. 2010 10:36 <-- editieren / zitieren --> Unities abgeben:
hallo und vielen dank ich habe mir ja dieses mal schon anders helfen können, dank der hilfe, die ich hier bekommen habe, aber für´s nächste mal wäre das in jedem fall spannnend. werde das mal ausprobieren. da ich aber mit programmierung keine erfahrung habe (nur nackiges html), würde mich schon interessieren, wie die scriptsprache aufgebaut ist, um zu verstehen, wo das script überhaupt anfängt und wo´s aufhört..ist das "normales" basic ? lg ------------------ . Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22171 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 15. Feb. 2010 10:50 <-- editieren / zitieren --> Unities abgeben: Nur für chicci
|
chicci Mitglied
Beiträge: 139 Registriert: 19.07.2006 win 10, Intel Core i7 CPU 920, 2,67GHz, 6 GB RAM, Autocad MEP 2012
|
erstellt am: 17. Feb. 2010 09:28 <-- editieren / zitieren --> Unities abgeben:
jessus, ich muss mich ja doch mal damit auseinandersetzen, damit nicht nochmal so eine peinliche frage kommt hab´ jedenfalls vielen dank, werde mir das erstmal abspeichern aber eine frage zu dem lips hätte ich doch noch: verstehe ich das richtig, dass das, was in anführungszeichen steht die jeweiligen variablen sind, die sich durch meien aufgabenstellung ergeben? dann verstehe ich die zeile -- tblnext "LAYER" T - nämlich nicht, wobei ich leider den rest auch nicht wirklich verstehe, dabei habe ich das kochbuch im schrank, aber es sind einfach böhmische dörfer gibt´es denn niemanden im berliner raum, der interesse an nachhilfe in autolisp hätte? hier wäre eine PN nett, damit der thread nicht zu offtopic wird.. habt jedenfalls vielen dank, es ist echt irre schön, hier immer so kompetente hilfe zu bekommen lg ------------------ . Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22171 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 17. Feb. 2010 09:34 <-- editieren / zitieren --> Unities abgeben: Nur für chicci
|
chicci Mitglied
Beiträge: 139 Registriert: 19.07.2006 win 10, Intel Core i7 CPU 920, 2,67GHz, 6 GB RAM, Autocad MEP 2012
|
erstellt am: 29. Mrz. 2010 13:33 <-- editieren / zitieren --> Unities abgeben:
hallo ihr also ich stehe wieder mal vor einem ähnlichen problem und würde nun doch auch gerne das autolisp von cad4fun verwenden, komme damit aber leider nicht klar. könnt ihr mir nochmal erläutern, welche die variabeln in dem script sind für name-layer-alt und name-layer-neu. ich verstehe noch immer nicht, wo das eigentliche script anfängt und was interne vermerke sind, welcher tag das script öffnet und welches ihn schliesst und ob anführungszeichen interne vermerke sind oder zu übernehmen wären. ich versuche eine logik wie z.b. bei html-programmierung zu erkenne, aber es will mir nicht gelingen sorry, ich weiss, ihr seid sicher nicht auf der welt, um blonden kleinen dummchen zu erklären, wie die welt funktioniert, aber was ich im netz gefunden habe, hat mir leider im verständnis noch nicht wirklich weitergeholfen. lg ------------------ . Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 29. Mrz. 2010 13:58 <-- editieren / zitieren --> Unities abgeben: Nur für chicci
|
chicci Mitglied
Beiträge: 139 Registriert: 19.07.2006 win 10, Intel Core i7 CPU 920, 2,67GHz, 6 GB RAM, Autocad MEP 2012
|
erstellt am: 29. Mrz. 2010 14:33 <-- editieren / zitieren --> Unities abgeben:
|
chicci Mitglied
Beiträge: 139 Registriert: 19.07.2006 win 10, Intel Core i7 CPU 920, 2,67GHz, 6 GB RAM, Autocad MEP 2012
|
erstellt am: 30. Mrz. 2010 08:31 <-- editieren / zitieren --> Unities abgeben:
sorry, ich habe so ein riesenrespekt vor lisp, dass ich mich zu wenig traue auszuprobieren, hab´s nun aber geschnallt und für ein projekt dann folgendes gesetzt: ------------------------ (defun c:LNTU (/ alt neu neu Layer Lalist n) (setq alt (getstring "\D10117SBG02A420_GR001NZZV-$0$2:") ; gib _AB_ ein neu (getstring "\420:")) (setq Layer (cdr (assoc 2 (tblnext "LAYER" T)))) (while Layer (if (wcmatch Layer (strcat "*" alt "*")) (setq Lalist (cons Layer Lalist))) (setq Layer (cdr (assoc 2 (tblnext "LAYER"))))) (setq n 0) (mapcar '(lambda (A) (entmod (subst (cons 2 (vl-string-subst neu alt A)) (assoc 2 (entget (tblobjname "LAYER" A))) (entget (tblobjname "LAYER" A)))) (setq n (+ n 1))) Lalist) (princ (strcat "\n" (itoa n) " Layer umbenannt.")) (princ)) ------------------------ in der befehlszeile erscheint dann D10117SBG02A420_GR001NZZV-$0$2: dann bestätige ich ohne eingabe, dann erscheint nur + und ich bestätige ohne eingabe dann kommt die meldung, dass 262 layer umbenannt wurden. defacto aber nichts nichts passiert.
weiss jmd rat? lg
------------------ . Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
chicci Mitglied
Beiträge: 139 Registriert: 19.07.2006 win 10, Intel Core i7 CPU 920, 2,67GHz, 6 GB RAM, Autocad MEP 2012
|
erstellt am: 30. Mrz. 2010 08:39 <-- editieren / zitieren --> Unities abgeben:
aaarg.. und nachdem ich das ein paar mal gemacht habe, habe ich nun den befehlt laymrg eingegeben, weil ich zudem noch layer 420Hxyz mit Hxyz zusammenlegen muss und dachte, es ginge vllt damit und nun heissen alle layer D10117SBG02A420_GR001NZZV-$0$2_xyz plötzlich laymrgD10117SBG02A420_GR001NZZV-$0$2_xyz.. so habe ich mir das aber nicht vorgestellt, manno.. biete karmaarbeit & benötige faltenprophylaxe.. lg ------------------ . Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8086 Registriert: 09.03.2006 Kinder, kauft Kämme! Es kommen lausige Zeiten.
|
erstellt am: 30. Mrz. 2010 08:42 <-- editieren / zitieren --> Unities abgeben: Nur für chicci
Moin, also ich hab ja auch keine Ahnung von lisp, aber cad4fun hat ja netterweise Kommentare gesetzt: (setq alt (getstring "\numzubenennender Teilstring:") ; gib _AB_ ein
neu (getstring "\nneuer Teilstring:")) ; gib -abluft- ein > in der Befehlszeile wirst Du nach dem alten Teil des layernamens gefragt, danach nach dem neuen. Es steht in der Befehlszeile umzubenennender Teilstring: neuer Teilstring: Du hast jetzt einfach den Teil geändert, der in der Befehlszeile auftaucht, hast die jeweils mit nichts belegt. Es wird also nichts mit nichts geändert. Mag sein, dass ich Dich völlig falsch verstehe, aber warum nimmst Du nicht das lisp sso, wie von cad4fun vorgegeben?
------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... System-Info | Dateianhänge | FAQ-ACAD | CAD.de-Hilfe | Sei eine Antilope Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
chicci Mitglied
Beiträge: 139 Registriert: 19.07.2006 win 10, Intel Core i7 CPU 920, 2,67GHz, 6 GB RAM, Autocad MEP 2012
|
erstellt am: 30. Mrz. 2010 09:02 <-- editieren / zitieren --> Unities abgeben:
zitat: aber warum nimmst Du nicht das lisp sso, wie von cad4fun vorgegeben --------------------- ganz ehrlich? weil ich total vernagelt war und gedacht ahbe, die aufforderung "gib ein " bedeutet, ich müsse es im script eingeben ))) ganz lieben dank nochmal cad4fun & runkelrübe ------------------ . Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cad4fun Ehrenmitglied
Beiträge: 1846 Registriert: 06.12.2004 privat ACAD 2013 und 2017 deutsch, Windows 7 64Bit HP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM ATI FirePro V (FireGL V) Graphics Adapter Treiberversion: 15.201.1151.1008
|
erstellt am: 30. Mrz. 2010 09:33 <-- editieren / zitieren --> Unities abgeben: Nur für chicci
Ich muss jetzt nochmal bemerken(siehe auch Kommentare in routine), dass die Routine von Jörn Bosse stammt und ich daher quasi nur der Briefträger bin. Ich weiß nicht mal, ob ich die Kommentare selbst gesetzt habe. Eventuelle Unities daher bitte an Jörn Bosse richten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
chicci Mitglied
Beiträge: 139 Registriert: 19.07.2006 win 10, Intel Core i7 CPU 920, 2,67GHz, 6 GB RAM, Autocad MEP 2012
|
erstellt am: 30. Mrz. 2010 09:43 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|