| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Layerbeschreibung per Befehlszeile bearbeiten ? (840 mal gelesen)
|
Hetkala Mitglied technische Zeichnerin, Anlagenplanerin, HKS
Beiträge: 200 Registriert: 23.08.2002
|
erstellt am: 18. Jul. 2006 09:58 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich suche nach einer Möglichkeit, die Layerbeschreibung per Befehlszeile zu erstellen / zu ändern. Bisher kenne ich nur die Möglichkeit über das Layermanagerdialogfeld eine Beschreibung zu erstellen, würde die Beschreibungen für die Layer aber gerne in eine Layer-Erstell-Menüdatei einbinden. ------------------ Hetkala Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Angelika Hädrich Ehrenmitglied V.I.P. h.c. Application Engineer
Beiträge: 5123 Registriert: 12.07.2000 Der erreicht am meisten, der immer auch anders kann, als er vorhatte.
|
erstellt am: 18. Jul. 2006 10:08 <-- editieren / zitieren --> Unities abgeben: Nur für Hetkala
Hi, dann stell mal ein - vor den Layer-Befehl Also in die Befehlszeile eintippen: -Layer mit ENTER bestätigen und alle Anfragen landen in der Befehlszeile Gruß Angelika ------------------ Lieber Fehler riskieren als Initiative verhindern. (Reinhard Mohn)
Bitte Supportangaben eintragen, warum siehst du hier 'Wie sprechen Menschen mit Menschen? Aneinander vorbei!' (Kurt Tucholsky) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hetkala Mitglied technische Zeichnerin, Anlagenplanerin, HKS
Beiträge: 200 Registriert: 23.08.2002
|
erstellt am: 18. Jul. 2006 10:13 <-- editieren / zitieren --> Unities abgeben:
Erstmal danke für's Antworten, aber in der Befehlszeile von -layer gibt es doch keine Funktion zum Setzen einer Beschreibung? Ich erstell mir ja schon Layer über eine Menüdatei und kann auch alle Layereigenschaften steuern, einzig der Zugriff auf die Beschreibung fehlt mir... ------------------ Hetkala Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Angelika Hädrich Ehrenmitglied V.I.P. h.c. Application Engineer
Beiträge: 5123 Registriert: 12.07.2000 Der erreicht am meisten, der immer auch anders kann, als er vorhatte.
|
erstellt am: 18. Jul. 2006 13:17 <-- editieren / zitieren --> Unities abgeben: Nur für Hetkala
... ja sorry, hab den Befehl nicht ohne Dialog aufgerufen. Ja, da haben die lieben Adeskler da wohl wieder mal was vergessen, nämlich die passende Option auch dem Befehlszeilenbefehl einzuimpfen... Gruß Angelika ------------------ Lieber Fehler riskieren als Initiative verhindern. (Reinhard Mohn)
Bitte Supportangaben eintragen, warum siehst du hier 'Wie sprechen Menschen mit Menschen? Aneinander vorbei!' (Kurt Tucholsky) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3329 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 18. Jul. 2006 13:19 <-- editieren / zitieren --> Unities abgeben: Nur für Hetkala
Hi, aus der Abteilung "Quick and Dirty": Code:
;| --layerLayerbeschreibungen ändern via Befehlszeile Okt. 2007 www.CADmaro.de |; (defun c:--layer (/ str layobj descr) (if (and (read (setq str (getstring 'T "\nLayername: "))) (tblsearch "LAYER" str) ) (progn (setq layobj (vla-item (vlax-get-property (vlax-get-property (vlax-get-acad-object) 'ActiveDocument ) 'Layers ) str ) ) (setq descr (getstring 'T (strcat "\nLayerbeschreibung <" (vlax-get-property layobj 'Description) ">: " ) ) ) (if (read descr) (vlax-put-property layobj 'Description descr) (princ "\nBeschreibung nicht geändert.") ) ) (princ (strcat "\nLayer " str " ist nicht vorhanden!")) ) (princ) ) (princ "\nZum Starten \"--layer\" eingeben.") (princ)
[EDIT]Code ergänzt [/EDIT] Gruß CADchup ------------------ CADmaro.de
[Diese Nachricht wurde von CADchup am 05. Okt. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hetkala Mitglied technische Zeichnerin, Anlagenplanerin, HKS
Beiträge: 200 Registriert: 23.08.2002
|
erstellt am: 18. Jul. 2006 13:43 <-- editieren / zitieren --> Unities abgeben:
uiuiui, ich glaub das wird mir dann doch zuviel, bei so ca. 200 Layern, und jedesmal das lisp da einbinden... na da verzicht ich halt auf die Beschreibung, vielen Dank euch beiden. ------------------ Hetkala Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3329 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 18. Jul. 2006 13:53 <-- editieren / zitieren --> Unities abgeben: Nur für Hetkala
Hi, du brauchst die Funktion doch nur autom. zu laden (User FAQ hat dazu hier mal was geschrieben) und schon hast du einen neuen Befehl --layer, mit dem du die Layerbeschreibung in der Befehlszeile, also auch über ein Menümakro ändern kannst: ^C^C--layer;DEINLAYERNAME;BESCHREIBUNG; Gruß CADchup
------------------ CADmaro.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hetkala Mitglied technische Zeichnerin, Anlagenplanerin, HKS
Beiträge: 200 Registriert: 23.08.2002
|
erstellt am: 18. Jul. 2006 14:09 <-- editieren / zitieren --> Unities abgeben:
das Problem dabei ist, dass das Layermenü von allen Mitarbeitern in der Firma benutzt werden soll (damit nicht jeder seine eigenen Layer erfindet) und da müsst ich das lisp auf allen CAD-Stationen in die Startgruppe einbinden, wobei einige LT haben (und sich gegen den Extender wehren). Da die meisten auch das Wort LISP noch nie gehört haben und sich schon gegen ein Update auf 2006 wehren, habe ich da nicht die besten Chancen... Vielen Dank aber für das LISP, ich werd's trotzdem in meine Sammlung aufnehem, vielleicht geschehen ja noch Zeichen und Wunder... ------------------ Hetkala 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: 18. Jul. 2006 14:13 <-- editieren / zitieren --> Unities abgeben: Nur für Hetkala
funktioniert natürlich einwandfrei, die --layer.lsp, aber ist das auch sinnvoll? Jetzt muss hetkala den layermanager aufrufen, den layer ,dessen beschreibung er ändern oder erzeugen will in der Spalte 'Beschreibung' anklicken und drauflosschreiben. Mit der Routine muss er zusätzlich jetzt noch den Layernamen eintippen! Und die Buttonlösung ist doch auch nur ein Beispiel dafür, was machbar ist, die Sinnfrage stellt sich auch hier. Conclusio: Fragestellung einwandfrei gelöst, neue Zusatzarbeit eingehandelt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hetkala Mitglied technische Zeichnerin, Anlagenplanerin, HKS
Beiträge: 200 Registriert: 23.08.2002
|
erstellt am: 18. Jul. 2006 14:17 <-- editieren / zitieren --> Unities abgeben:
@cad4fun: nee nee, das funzt schon einwandfrei, könnte man auch fein in meine Textdatei einbinden, einziges Prob, wie schon gesagt, dass das LISP auf allen Workstations automatisch geladen werden müsste. EDIT: hast das LISP mal ausprobiert? Da ist nix mit Dialogfeld, alles fein in der Befehlszeile, wie gewünscht :EDIT Nochmal ne Frage: wieso sollte man automatisch zu ladende LISPs eher in die acaddoc.lsp einbinden, anstatt sie einfach zur Startgruppe hinzuzufügen? ------------------ Hetkala [Diese Nachricht wurde von Hetkala am 18. Jul. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3329 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 18. Jul. 2006 14:29 <-- editieren / zitieren --> Unities abgeben: Nur für Hetkala
@cad4fun Bloß nicht über Sinn und Unsinn diskutieren. Offensichtlich gibt's LT-User, die sich gegen den Extender wehren, du hast deine Arbeitsweise und ich mache bestimmt des Öfteren Sachen in Acad, bei denen sich andere an den Kopf greifen. Ich habe noch nie mit der Layerbeschreibung gearbeitet und werde es auf absehbare Zeit auch nicht tun. Ich habe nur die fehlende Befehlszeilenoption gesehen und zur Verdauung des Kantinenessens einen Ergänzung geschrieben, damit sie auch über Makros gesetzt werden kann. @Hetkala Meine Meinung: Lass Startgruppe, acaddoc.lsp, acad.lsp, etc links liegen, wenn du eine eigene Menüdatei hast. Pack die Lisp in eine Datei mit dem Namen deiner Menüdatei, gib ihr die Endung MNL und sie lädt autom. mit, wenn du das Menü lädst. Damit bist du weitestgehen unabhängig von der AutoCAD-Installation. Nochwas zu --layer: Das Tool wird in LT auch nicht mit dem Extender laufen. Sind VLAX-Sachen drin und damit kann der Extender nicht. Gruß CADchup
------------------ CADmaro.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tommygo Mitglied
Beiträge: 47 Registriert: 03.02.2005
|
erstellt am: 05. Okt. 2007 10:43 <-- editieren / zitieren --> Unities abgeben: Nur für Hetkala
Hallo, ich bin durch das suchen im Forum auf diesen Beitrag gestossen, nachdem ich auch nach einer Lösung für die Layerbschreibung in einer Script-Datei gesucht habe. Funktioniert auch einwandfrei und schreibt in alle meine Layer die Beschreibung hinein. NUR: Bei diesen Layer funktioniert es nicht --layer K1--DK-WS-TEXT-- Texte Wandschlitz --layer K1--DK-BD-TEXT-- Texte Bodendurchbruch --layer K1--DK-DD-TEXT-- Texte Deckendurchbruch --layer K1--DK-WD-TEXT-- Texte Wanddurchbruch Wie gesagt es gibt sonst keine Probleme z.B. funktioniert es einwandfrei bei: --layer K1--DK-BD-BEM-- Bemaßung Bodendurchbruch --layer K1--DK-BD-SYM-- Symbol Bodendurchbruch --layer K1--DK-DD-BEM-- Bemaßung Deckendurchbruch --layer K1--DK-DD-SYM-- Symbol Deckendurchbruch wenn ich die Layer z.B. umbenenne in --layer K1--DK-WS-TEX1- Texte Wandschlitz --layer K1--DK-BD-TEX1- Texte Bodendurchbruch --layer K1--DK-DD-TEX1- Texte Deckendurchbruch --layer K1--DK-WD-TEX1- Texte Wanddurchbruch geht es auch Gibt es dafür ein Erklärung ? Die Layer umbenennen ist leider keine Lösung Gruß tommygo Sorry, ich war mit Blindheit beschlagen. Ich hatte in der Script im Layernamen einen Schreibfehler. Es muß --layer K1--DK-WS-TEXT- und nicht --layer K1--DK-WS-TEXT-- heißen. Nun funktioniert es.
[Diese Nachricht wurde von tommygo am 05. Okt. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3329 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 05. Okt. 2007 11:40 <-- editieren / zitieren --> Unities abgeben: Nur für Hetkala
|
tommygo Mitglied
Beiträge: 47 Registriert: 03.02.2005
|
erstellt am: 05. Okt. 2007 11:48 <-- editieren / zitieren --> Unities abgeben: Nur für Hetkala
Hallo CADchup danke für deine Nachricht. Ich habe die Lösung gefunden (s.o.)und habe meine Anfrage zeitgleich mit deiner Antwort editiert. Trotzdem wäre ich an deinem abgeänderten Lispcode interessiert. tommygo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3329 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 05. Okt. 2007 11:59 <-- editieren / zitieren --> Unities abgeben: Nur für Hetkala
|
tommygo Mitglied
Beiträge: 47 Registriert: 03.02.2005
|
erstellt am: 05. Okt. 2007 12:19 <-- editieren / zitieren --> Unities abgeben: Nur für Hetkala
Zitat: Original erstellt von CADchup: Ist oben editiert. Gruß CADchup
funktioniert in der Befehlszeile einwandfrei, aber in einer Scriptroutine geht es nicht hier die Befehlszeilen (ein Teil davon) die Autocad bei der Scriptausführung wiedergibt: Befehl: Befehl: --layer Layername: K1--DK-WS-SYM-- Symbol Wandschlitz Layer K1--DK-WS-SYM-- Symbol Wandschlitz ist nicht vorhanden! Befehl: Befehl: --layer Layername: K1--DK-WS-TEXT- Texte Wandschlitz Layer K1--DK-WS-TEXT- Texte Wandschlitz ist nicht vorhanden! etc. hierzu die Befehlszeilen bei der alten LISP
Befehl: Befehl: --layer Layername: K1--DK-WS-SYM-- Layerbeschreibung <Symbol Wandschlitz>: Symbol Wandschlitz Befehl: Befehl: --layer Layername: K1--DK-WS-TEXT- Layerbeschreibung <Texte Wandschlitz>: Texte Wandschlitz etc. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3329 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 05. Okt. 2007 13:10 <-- editieren / zitieren --> Unities abgeben: Nur für Hetkala
Hi, ich hatte das Tool so geändert, dass auch Layernamen mit Leezeichen verwendet werden können. Das hat allerdings zur Folge, dass deine Leerzeichen im Skript nicht mehr als ENTER interpretiert werden. Zwei Möglichkeiten: Entweder du änderst (getstring 'T "\nLayername: ") in (getstring "\nLayername: ") oder du schreibst die Skripte in der eigentlich üblicheren Syntax, nämlich für jedes ENTER ein Zeilenwechsel. Gruß CADchup
------------------ CADmaro.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tommygo Mitglied
Beiträge: 47 Registriert: 03.02.2005
|
erstellt am: 05. Okt. 2007 13:31 <-- editieren / zitieren --> Unities abgeben: Nur für Hetkala
Danke, stimmt beide Möglichkeiten funktionieren. Jetzt die Qual der Wahl. Bei der einen sieht die Script schöner und übersichtlicher aus (alles geordnet in einer Zeile) aber es soll ja nicht schön aussehen sondern funktionieren. Also für jedes ENTER ein Zeilenwechsel, ist bestimmt auch besser falls doch mal ein Layer mit Leerzeichen kommt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |