| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Layermanager (1132 / mal gelesen)
|
nebuCADnezzar Mitglied
Beiträge: 292 Registriert: 17.10.2007 AutoCAD 2023 Inventor 2023 64 bit Win 10 Intel I7 10610U 1.8 GHz Quadro P520 32 GB Ram
|
erstellt am: 04. Jan. 2022 16:24 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen Neues Jahr neues Glück wieder mal versuch ich meine sehr eingerosteten LISP "Fähigkeiten" zu nutzen mir das Leben leichter zu machen. Für exporte die sehr häufig sind müssen die "orginalen" Layer alle weiss werden, bekommen andere Strichstärken und einer sogar nen Andern Linientyp. Ich hab mir im Layerstaus-Manager dass auch schon zusammengebaut und exportiert. Nun weiss ich aber nicht wie weiter, hab auch nix gefunden, möchte gerne: (defun Lade "exportlayer.las" von C:wassweisichirgendwo/AutoCADvorlagen Setze diesen Layersatus aktuell ) Wenn wer was weiss wo ich bisschen abgucken könnte... Und ne andere Frage da ich öfters auf so Probleme Stosse mit welchem Befehl dass auf irgendwas zugreifen kann, gibts irgendwo ne Liste mit allen AutoCAD-Lisp spezifischen Befehlen/Variablen?
Gruss Nebu ------------------ Es ist kein Zeichen geistiger Gesundheit, gut angepasst an eine zutiefst kranke Gesellschaft zu sein.
Jiddu Krishnamurti [Diese Nachricht wurde von nebuCADnezzar am 05. Jan. 2022 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22171 Registriert: 03.06.2002 Alles
|
erstellt am: 04. Jan. 2022 17:20 <-- editieren / zitieren --> Unities abgeben: Nur für nebuCADnezzar
Hi, passende API Information, oder einfach nur passende Suchbegriffe: layerstate-import layerstate-restore http://help.autodesk.com/view/ACD/2022/DEU/?guid=GUID-84C7195D-12C1-4282-B5EE-8B9D6DDB705A oder wenn man sich der AutoCAD-Befehle bedienen will, Befehl: LAYER bzw. -LAYER [F1]-Hilfe Zitat: Original erstellt von nebuCADnezzar: Für exporte die sehr häufig sind müssen die "orginalen" Layer alle weiss werden, bekommen andere Strichstärken und einer sogar nen Andern Linientyp. Warum nicht einfach die (offenbar bekannten) Layer direkt ändern vor dem Export?>>"da ich öfters auf so Probleme Stosse mit welchem Befehl dass auf irgendwas zugreifen kann," >>"gibts irgendwo ne Liste mit allen AutoCAD-Lisp spezifischen Befehlen/Variablen?" ?? --> [F1]-Hilfe, schon direkt von der Hauptseite könnte man zu Befehle und Variablen springen - im Bereich "Schnellreferenzen", oder zu den Lispfunktionen, dann im Bereich "Ressourcen". Enthält praktisch alle Befehle, Variablen und Lispfunktionen "AutoCAD-Lisp spezifischen Befehlen/Variablen" gibt es nur 1-2 Hände voll, daher vermute ich du meinst wohl eher Lispfunktionen? Oder doch ganz allgemein Befehle und Variablen, aber da ist es ja wie folgt: Praktisch KEINE haben etwas mit Lisp zutun, oder auch fast ALLE aber etwas mit Lisp zutun, nämlich genau ab dann wenn du diese nutzen (lesen/schreiben/steuern) möchtest. Für Layer gibt es den Befehl LAYER/-LAYER, dort wie auch im Dialog geht es zu den Layerstatus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22171 Registriert: 03.06.2002 Alles
|
erstellt am: 04. Jan. 2022 17:27 <-- editieren / zitieren --> Unities abgeben: Nur für nebuCADnezzar
"Warum nicht einfach die (offenbar bekannten) Layer direkt ändern vor dem Export?"Ich meinte damit: Die gewünschten Änderungen in dem Lispprogramm hinterlegen und dann ausführen, ohne den Umweg eines Layerstatus. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nebuCADnezzar Mitglied
Beiträge: 292 Registriert: 17.10.2007 AutoCAD 2023 Inventor 2023 64 bit Win 10 Intel I7 10610U 1.8 GHz Quadro P520 32 GB Ram
|
erstellt am: 05. Jan. 2022 09:23 <-- editieren / zitieren --> Unities abgeben:
Moimoin "Warum nicht einfach die (offenbar bekannten) Layer direkt ändern vor dem Export?" Ja der Gedanke ist mir durchaus auch gekommen... aber hatte grad mit dem Layerstaus-Manager bisschen getestet und im Manger geht dass halt schön grafisch darum kurzer Weg... Da ich leider nur alle paar Jahre was Lisple muss ich immer fast bei 0 anfangen. Ich bekomms auf die Reihe wenn ich nen code sehe was der tut so plus-minus und ich kann die meist auch auf meine Bedürfnisse anpassen, und mit ein wenig Hilfestellung hier ausm Forum und Recherche bei mapcar oder so bekomm ich das meist zusammengeschustert. Wenn ich irgendwo die code Schnipsel gefunden hätte für (oder nur eins davon): wähle alle layer - mach weiss wähle alle layer strichstärke 0.18 - mach 0.13 wähle layer 12 - mach linientyp gestrichelt dann sehe und verstehe ich dass und kann dass anpassen, dann hätt ich mir dass zusammengebaut, aber um dass selbst zu schreiben müsst ich erstmal wieder 4h in meinem Lispkurs Ordner Grundschulung machen. Können nich alle so Vollprofis sein wie Du ------------------ Es ist kein Zeichen geistiger Gesundheit, gut angepasst an eine zutiefst kranke Gesellschaft zu sein. Jiddu Krishnamurti Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22171 Registriert: 03.06.2002 Alles
|
erstellt am: 05. Jan. 2022 09:47 <-- editieren / zitieren --> Unities abgeben: Nur für nebuCADnezzar
Zitat: Original erstellt von nebuCADnezzar: wähle alle layer - mach weiss wähle alle layer strichstärke 0.18 - mach 0.13 wähle layer 12 - mach linientyp gestricheltDas machst du alles mit dem Befehl LAYER/-LAYER, selbst wenn du es im Layereigenschaften-Manager machst wird der Befehl verwendet, ein einfaches Menümakro, Script oder eine (send)command Anweisung die den Befehls steuert reicht also aus. Gebe ein: -LAYER<enter> lese was ACAD dir anbietet, gebe ein was du möchtest usw. ;als Script: -LAYER<enter> Farbe<enter> 7<enter> *<enter> LStärke<enter> usw. ;als Menümakro -LAYER;Farbe;7;*;LStärke;usw. ;als command-Ausdruck (command "-LAYER" "Farbe" "7" "*" "LStärke" usw.) Alles der AutoCAD-Befehl -LAYER
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Manuel486 Mitglied Technischer Zeichner Elektro
Beiträge: 210 Registriert: 31.01.2020
|
erstellt am: 05. Jan. 2022 10:00 <-- editieren / zitieren --> Unities abgeben: Nur für nebuCADnezzar
Hallo. Habe mal schnell was zusammengestellt. Code:
_.-LAYER _Color 7 * _.-LAYER _LWeight _Default * _.-LAYER _LType Continuous Layer-XYZ ;2x Eingabe zum Layer-Befehl Beenden ; ;andere Schreibweise _.-LAYER _Color 7 * _LWeight _Default * _LType Continuous Layer-XYZ
;2x Eingabe zum Layer-Befehl Beenden ; ;Deutsche Schreibweise -LAYER FArbe 7 * -LAYER LStärke Vorgabe *;Vorgabe funktioniert nicht?!? Kann das jemand erklären? -LAYER Ltyp Continuous Layer-XYZ
;2x Eingabe zum Layer-Befehl Beenden ; ;andere Deutsche Schreibweise -LAYER FArbe 7 * LStärke Vorgabe *;Vorgabe funktioniert nicht?!? Kann das jemand erklären? Ltyp Continuous Layer-XYZ
;hier reicht 1x Eingabe zum Layer-Befehl Beenden ; ;Exportiert automatisch in ACAD2013 / Speichert mit ACAD- davor im selben Verzeichnis ab / schliesst die Zeichnung OHNE speichern / ; _.FILEDIA 0 _.AECEXPORTTOAUTOCAD2013 _.FILEDIA 1 (progn(command "_.close")(while (/= 0 (getvar "CMDACTIVE"))(command "_Y")))
Jetzt könntest du noch ein "_.QSAVE" davor packen dann speichert er das Original vorher noch. So würde mein fertiger Befehl aussehen: exportlayer.scr
Code: ;Speichert die Zeichnung _.QSAVE ; ;Alle Layer auf Farbe weis, Alle Linienstärken auf Vorgabe, Linientyp von Layer-XYZ auf Continuous _.-LAYER _Color 7 * _LWeight _Default * _LType Continuous Layer-XYZ; ;Exportiert automatisch in ACAD2013 / Speichert mit ACAD- davor im selben Verzeichnis ab / schliesst die Zeichnung OHNE speichern / ; _.FILEDIA 0 _.AECEXPORTTOAUTOCAD2013 _.FILEDIA 1 (progn(command "_.close")(while (/= 0 (getvar "CMDACTIVE"))(command "_Y")))
Diesen Code in eine Textdatei packen mit .scr anstatt .txt am Ende. Dann ein Befehlsmakro erstellen und auf das Script verweisen. Siehe Bild. ^C^C_.SCRIPT;"C:/Temp/exportlayer.scr" Jetzt ist natürlich die frage: Wie genau wäre dein Ablauf? Automatisch speichern, Layer ändern, dann Export, dann autom. schliessen. Layer ändern, Export dann autom. schliessen. Layer ändern, Export, fertig.
Habe mal ne PDF mit Befehlen in Deutsch sowie der Englischen Übersetzung angehangen. Ich würde es in Englisch aufbauen. Also "_." vor dem Befehl und "_" vor die Optionen. MFG Manuel486 ------------------
Gruß Manuel [Diese Nachricht wurde von Manuel486 am 05. Jan. 2022 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22171 Registriert: 03.06.2002 Alles
|
erstellt am: 05. Jan. 2022 10:43 <-- editieren / zitieren --> Unities abgeben: Nur für nebuCADnezzar
Offtopic / Diese Antwort geht nur an Manuel486Frohes Neues! ";hinter dem Layer-XYZ muss ein Leerzeichen sein damit der Befehl beendet wird"auch wenn es dir bekannt ist, so möchte ich es hier nicht stehen lassen: Nein, muss nicht. Es kann, ist unschön, muss auch nicht. EIGENTLICH gehört also ganz normal ein Enter hinter den Layernamen um den Layernamen zu bestätigen und da man dann noch im LAYER-Befehl ist bedarf es einer weiteren LeerEingabe(Enter) um den Befehl zu verlassen. (deswegen sind deine ersten zwei Zeilen des Beispieles auch falsch, da fehlt der zusätzliche Zeilenumbruch bzw. dieses Leerzeichen)Und auch wenn das Leerzeichen an dieser Stelle als Enter interpretiert wird: Ein Zeilenumbruch ist viel besser zu lesen/erkennen im Script und muss dann auch nicht weiter kommentiert werden. (wer die ganzen Befehle auswendig kennt - setzt auch mal ein Leerzeichen an der Stelle ein, klar. Aber der muss es sich nicht kommentieren ) EDIT: ";Vorgabe funktioniert nicht?!? Kann das jemand erklären?" 1. Es ist nicht vorgesehen/dokumentiert dass man diesen Wert setzen kann. 2. Man kann, es ist nur undokumentiert _DEFAULT 3. Im deutschen hat Adesk leider vergessen ein (undokumentiertes) VORGABE zuzulassen. Also, VORGABE ist nur durch _DEFAULT zu erreichen.. (zudem ist die Linienstärke "Vorgabe" ohnehin zu 99% die schlechteste Wahl, denn für gewöhnlich möchte man ja eine bestimmte Linienstärke)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadwomen Ehrenmitglied V.I.P. h.c. Mädchen für fast alles
Beiträge: 3042 Registriert: 26.08.2002 ACAD R11 - 2018.1.2 (Plant3D) AVIS ACAD LT 2013- 2020 ZWCAD 2015 Versuch "nun ja" [s]History P3D 2012/(13) SP und Hotfix([/s]<P> Windows 10 / 64 Bit Xeon CPU 3.5GHz 16GB Ram NVIDIA Quadro P2000 3x Dell TV100 88P Monitore
|
erstellt am: 05. Jan. 2022 10:52 <-- editieren / zitieren --> Unities abgeben: Nur für nebuCADnezzar
Hy hast du den Befehl standards schon mal probiert ? grad wenn das für den Export ist zb verschiedene Firmen kann man sich da für jeden eine eigene einrichten und gut cu cw PS ja hat natürlich nichts mit Lisp zu tun ------------------ Also ich finde Unities gut ... und andere sicher auch ------------------------------------------------ cadwomen™ Plant ist nur die Spitze des Berges der da treibt ? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nebuCADnezzar Mitglied
Beiträge: 292 Registriert: 17.10.2007 AutoCAD 2023 Inventor 2023 64 bit Win 10 Intel I7 10610U 1.8 GHz Quadro P520 32 GB Ram
|
erstellt am: 05. Jan. 2022 10:54 <-- editieren / zitieren --> Unities abgeben:
Hallo Erstmal nochmal riesen Dankeschön! Hier is mir schon sooooo viel geholfen worden, manchmal auf umwegen manchmal direkt, manchmal einfach nur ne sch..ss verflixte Klammer die ich übersehen hab... Ich bin nu beim Layerstaus-Manager geblieben und hol mir die (oder leg den Status direkt in die Vorlagedatei) funktioniert in zwei Zeilen (oder mit der Vorlage in einer) Mein Teil wird nun alle Schraffuren, Bemassungen und Blöcke auflösen, die Layer anpassen und das ganze netterweise im Austauschordner mit nem spezifischen Dateipräfix ablegen! Meine Kollegen wirds freuen und s Marketing noch viel mehr dass nu alles Automatisiert is Schöne Grüsse ausm Schnee ------------------ Es ist kein Zeichen geistiger Gesundheit, gut angepasst an eine zutiefst kranke Gesellschaft zu sein. Jiddu Krishnamurti Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadwomen Ehrenmitglied V.I.P. h.c. Mädchen für fast alles
Beiträge: 3042 Registriert: 26.08.2002 ACAD R11 - 2018.1.2 (Plant3D) AVIS ACAD LT 2013- 2020 ZWCAD 2015 Versuch "nun ja" [s]History P3D 2012/(13) SP und Hotfix([/s]<P> Windows 10 / 64 Bit Xeon CPU 3.5GHz 16GB Ram NVIDIA Quadro P2000 3x Dell TV100 88P Monitore
|
erstellt am: 05. Jan. 2022 10:57 <-- editieren / zitieren --> Unities abgeben: Nur für nebuCADnezzar
|
nebuCADnezzar Mitglied
Beiträge: 292 Registriert: 17.10.2007 AutoCAD 2023 Inventor 2023 64 bit Win 10 Intel I7 10610U 1.8 GHz Quadro P520 32 GB Ram
|
erstellt am: 05. Jan. 2022 11:05 <-- editieren / zitieren --> Unities abgeben:
hast du den Befehl standards schon mal probiert ?Ja habi au kurz angeschaut, aber da ich mit m Marketing erstmal Strichstärken etc. ausfummeln musste bin ich beim Layerstaus-Manager hängengeblieben, is halt auch gut, Varianten Testen, wieder zurückschalten und die Zeichnung ist wieder wie gewohnt und kannst weiterfurwerken... Homeoffice im Estrich vom 100 Jahre alten Haus mit Einscheiben Fenster, ja es zieht recht fies und Schneit im 45° Winkel
------------------ Es ist kein Zeichen geistiger Gesundheit, gut angepasst an eine zutiefst kranke Gesellschaft zu sein. Jiddu Krishnamurti Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Manuel486 Mitglied Technischer Zeichner Elektro
Beiträge: 210 Registriert: 31.01.2020
|
erstellt am: 05. Jan. 2022 11:12 <-- editieren / zitieren --> Unities abgeben: Nur für nebuCADnezzar
Frohes neues. Ok, das mit dem Leerzeichen stimmt nicht so ganz. Habe mir das so angewöhnt... Habe den Ursprungpost angepasst. Jetzt ist noch die Frage Warum _Default im Englischen funktioniert und Vorgabe im Deutschen nicht?! und nochwas "wähle alle layer strichstärke 0.18 - mach 0.13" Also über die Linienstärke (Strichstärke) würde ich nur über die Objekteigenschaften wissen wie ich dran komme. Aber wie und wo man Filtert welche Linienstärke im Layermanager einsteht wäre ich raus.
------------------
Gruß Manuel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22171 Registriert: 03.06.2002 Alles
|
erstellt am: 05. Jan. 2022 11:21 <-- editieren / zitieren --> Unities abgeben: Nur für nebuCADnezzar
>>"Jetzt ist noch die Frage Warum _Default im Englischen funktioniert und Vorgabe im Deutschen nicht?!" Habe ich oben beantwortet (ich traue mir zu dass zu beantworten ) >>"und nochwas "wähle alle layer strichstärke 0.18 - mach 0.13" Ooups DAS hatte ich so nicht gelesen, danke. @nebuCADnezzar für das "wähle alle layer strichstärke 0.18 - mach 0.13" müßte man entweder die Layernamen kennen um die es geht (wie in deinem Fall) oder wirklich mit programmieren anfangen, denn für "ändere alle deren aktueller LStärke nnn ist" gibt es keinen Befehl. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nebuCADnezzar Mitglied
Beiträge: 292 Registriert: 17.10.2007 AutoCAD 2023 Inventor 2023 64 bit Win 10 Intel I7 10610U 1.8 GHz Quadro P520 32 GB Ram
|
erstellt am: 05. Jan. 2022 12:17 <-- editieren / zitieren --> Unities abgeben:
Wie gesagt es funktioniert Tiptop über den Layerstaus-Manager. Und man kann halt auch grad grafisch gucken, habi alle Layer angepasst, sind noch irgendwo komische Linientypen, Strichstärken was auch immer da... Sonst wohl: mache liste mit allen layerndaten arbeite die liste durch wenn strichstärke 018 - dann 013 arbeite die liste durch wenn layer irgendnefarbe - dann weiss arbeite die liste durch wenn layername AA - dann linintyp xy Die reine Theorie wie das Programm ablaufen könnte hätt ich schon, nur keine Ahnung wie ich dass coden soll
------------------ Es ist kein Zeichen geistiger Gesundheit, gut angepasst an eine zutiefst kranke Gesellschaft zu sein. Jiddu Krishnamurti Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
spider_dd Mitglied
Beiträge: 1137 Registriert: 27.11.2003 Win 10Pro Intel(R) Core(TM) i7-7700 NVIDIA Quadro P1000 ACAD, Civil-3D 2018
|
erstellt am: 05. Jan. 2022 14:54 <-- editieren / zitieren --> Unities abgeben: Nur für nebuCADnezzar
Mal ein Anfang: Code:
; ; modi_layer : ;---------------------------------------------- ;(defun C:modi_layer (/) (princ "\nLayer aendern") (setq mod_layer (tblnext "layer" T)) (setq x 0) (while mod_layer (setq mod_layer_name (cdr (assoc 2 mod_layer))) (setq cl_obj (entget (tblobjname "layer" mod_layer_name))) (setq cl_obj (subst (cons 62 7) (assoc 62 cl_obj) cl_obj)) ; setzt farbe auf 7 (weiss) ; Strichstaerke aendern (geht (noch) nicht) (if (= (cdr (assoc 370 cl_obj)) 15) ; Linienstärke alt (hier 0.15) (setq cl_obj (subst (cons 370 35) (assoc 370 cl_obj) cl_obj)) ; Strichstaerke neu (hier 0.35) ) ; Linientyp_aendern, hier Deinen Layer mit zu aendernden Linientypen einsetzen (if (= mod_layer_name "hq20") ; Layername (setq cl_obj (subst (cons 6 "RAND") (assoc 6 cl_obj) cl_obj)) ; Linientyp neu ) (entmod cl_obj) (setq x (1+ x)) (setq mod_layer (tblnext "layer")) ) ; ende while (prompt (strcat "\n" (itoa x) " Layer geaendert")) (command "regenall") )
Das mit der Linienstärke klappt noch nicht. Laut Hilfe ist CG 370 Zähler-Wert für Linienstärke. Wie und wo da was genau zu setzen ist, habe ich noch nicht rausbekommen. Aber vielleicht weis da ja jemand anderes noch weiter. Gefunden! Muss vorhin irgendwie noch verrutscht sein. Habe es oben im Code angepasst. HTH Gruß Thomas [Diese Nachricht wurde von spider_dd am 05. Jan. 2022 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 05. Jan. 2022 16:43 <-- editieren / zitieren --> Unities abgeben: Nur für nebuCADnezzar
|