| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Layer automatisch erstellen und Linientyp zuweisen (2935 mal gelesen)
|
he-st Mitglied CAD Konstrukteur
Beiträge: 110 Registriert: 18.04.2005 Win10 64bit AutoCAD 2016
|
erstellt am: 11. Jan. 2008 12:13 <-- editieren / zitieren --> Unities abgeben:
Hallo cadler, ein ehemaliger Kollege hat mal ein Lisp Tool geschrieben mit dem man vordefinierte Layer generieren kann. Das ganze ist in Gruppen zusammengefast und funktioniert auch tadellos. Was mir jedoch fehlt ist die zuweisung des Linientyps. Bisher wird nur der Layer mit der gewünschten Farbe erzeugt. Ich hätte aber gerne noch den passenden Linientyp dazu. Leider gehen meine Lisp Kentnisse gegen null. Hier ein Auszug vom Programmaufruf: (defun #STAHL () (command "m" "TRAEGER-T" "fa" "16" "" "m" "TRAEGER-U" "fa" "18" "" "m" "TRAEGER-W" "fa" "45" "" );command );defun Ich habe bereits versucht das ganze mit Linientyp setzen und co versucht aber es kommt immer die Fehlermeldung: Ungültiger Optionstitel. ; Fehler: Funktion abgebrochen Kann mir bitte jemand sagen wie das aussehen muss damit das funktioniert? Sinnvollerwiese müßte natürlich vorher noch ein (command "_.linetype" "_l" "*" "STAHL" "") kommen damit alle Linietypen vorhanden sind, oder? Danke Gruß he-st Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
j-sc Ehrenmitglied
Beiträge: 1837 Registriert: 14.07.2003 W7 64Bit intel core I7 2,8GHz / 4GB ATI FIRE PRO V5800 acad2011 acad2015 acad2018 Athena Expresstools
|
erstellt am: 11. Jan. 2008 12:27 <-- editieren / zitieren --> Unities abgeben: Nur für he-st
analog dessen: Code: (command "_layer" "_n" "LAYERNAME" "_L" "LINIENTYP" "LAYERNAME" "_C" "FARBE" "LAYERNAME" "" )
Edit: Farbe ergänzt, Optimierung übrigens vorbehalten
------------------ Ciao J-SC ... geht's vielleicht doch? [Diese Nachricht wurde von j-sc am 11. Jan. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Werner-Maahs.de Mitglied CAD-Dozent + Konstrukteur + Autor
Beiträge: 626 Registriert: 04.05.2005 Win XP AC 2005/6 AC 2013
|
erstellt am: 11. Jan. 2008 13:23 <-- editieren / zitieren --> Unities abgeben: Nur für he-st
Zitat: Original erstellt von he-st: ... Leider gehen meine Lisp Kentnisse gegen null. ...
Hierzu benötigst Du auch nicht unbedingt lisp! Gebe mal den Befehlsalias -LA für Layer ein und schau Dir die Eingabeoptionen an. Jetzt weißt Du was Du schreiben musst um die Einstellungen zu machen. Probiere es erst direkt und anschließend kannst Du Dir ein Skript erstellen, das Du dann bei Bedarf ggf. über ein Schaltflächenmakro aufrufen kannst. Bevor ich Dein Beispiel mal aufschreibe, sei eine Anmerkung gestattet: Die Option M für machen ist nur sinnvoll, wenn Du nur einen Layer erzeugen und diesen gleichzeitig aktiv setzen willst. Hier nun mein Beispiel für eine Skriptdatei:
Code: -LAYER Neu TRAEGER-T FArbe 16 TRAEGER-T LTyp Continious TRAEGER-T Neu TRAEGER-U FArbe 18 TRAEGER-U LTyp Mitte TRAEGER-U Neu TRAEGER-W FArbe 45 TRAEGER-W LTyp VerdecktX2 TRAEGER-W [Hier nur eine Leerzeile, damit der Befehl Layer beendet wird]
Beachte, dass die Befehlsnamen ausgeschrieben werden müssen, die Optionen nicht. Erzeuge diese Zeilen in einer Textdaei (z.B. den Windows-Editor) und speicher die Datei z.B. unter dem Namen Träger-Layer.scr wobei die Endung .scr wichtig ist. Diese Datei kannst Du z.B. mit dem Befehlsalias SR für Skript aufrufen. Achtung! Ich habe nur so ohne zu prüfen geschrieben, denke aber, dass es laufen wird. Eventuell musst Du noch ein wenig nachbessern oder nachfragen. ------------------ strukturiertes Zeichnen mit www.Werner-Maahs.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
he-st Mitglied CAD Konstrukteur
Beiträge: 110 Registriert: 18.04.2005 Win10 64bit AutoCAD 2016
|
erstellt am: 14. Jan. 2008 09:50 <-- editieren / zitieren --> Unities abgeben:
Erstmal Danke für die Hinweise. Ich hab jetzt das ganze einmal mit der Lisp Funktion getestet und einmal als Script. Beim Lisp bin ich leider nicht weitergekommen. Nach wie vor erhalten ich Fehlermeldungen....... Beim Script funktioniert es schon mal. Auch das mit dem Laden der Linietypen bevor der Layer erstellt wird. Ich möchte aber nicht das unter der Bezeichnung "VonLayer" der Linientyp auf einen anderen Linientyp geändert wird, sondern das anstatt VonLayer ein anderer Linientyp wie z.B. "verdeckt" zugewiesen wird. VonLayer wird dabei nicht verändert. Das kann mann doch bestimmt auch über ein Script lösen, oder? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur
Beiträge: 7085 Registriert: 13.01.2004 Sie nannten ihn google.
|
erstellt am: 14. Jan. 2008 09:56 <-- editieren / zitieren --> Unities abgeben: Nur für he-st
Zitat: Original erstellt von he-st:
Ich möchte aber nicht das unter der Bezeichnung "VonLayer" der Linientyp auf einen anderen Linientyp geändert wird, sondern das anstatt VonLayer ein anderer Linientyp wie z.B. "verdeckt" zugewiesen wird. VonLayer wird dabei nicht verändert.
Bitte was?
Wenn du einem Layer einen anderen Linientyp zuweist ändert sich dieser VonLayer auf xyz - die Linientypzuweisung am Objekt bleibt dabei aber auf VonLayer obwohl xyz angezeigt wird.. ------------------ Grüsse
Thomas Korrekturen zum Kochbuch AutoLISP [Diese Nachricht wurde von tunnelbauer am 14. Jan. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
he-st Mitglied CAD Konstrukteur
Beiträge: 110 Registriert: 18.04.2005 Win10 64bit AutoCAD 2016
|
erstellt am: 14. Jan. 2008 10:12 <-- editieren / zitieren --> Unities abgeben:
Vielleicht habe ich mich falsch ausgedrückt. Wenn man einen Layer erstellt hat er ja Standardmäßig mal die Eigenschaften VonLayer für die Farbe (weiß und den Linientyp (ausgezogen). Jetzt kann man doch z.B. bei den Linientypen VonLayer die Eigenschaft von verdeckt geben oder aber den Linientyp direkt ändern, so das VonLayer immer noch weiß und ausgezogen ist. Bei der Farbe mache ich es auch so. Da hat VonLayer z.B. Farbe 12 Bei den Linientypen möchte ich aber den Typ änder und nicht die Eigenschaft von VonLayer. Jetzt verständlicher? 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: 14. Jan. 2008 10:19 <-- editieren / zitieren --> Unities abgeben: Nur für he-st
|
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur
Beiträge: 7085 Registriert: 13.01.2004 Sie nannten ihn google.
|
erstellt am: 14. Jan. 2008 10:19 <-- editieren / zitieren --> Unities abgeben: Nur für he-st
|
he-st Mitglied CAD Konstrukteur
Beiträge: 110 Registriert: 18.04.2005 Win10 64bit AutoCAD 2016
|
erstellt am: 14. Jan. 2008 10:21 <-- editieren / zitieren --> Unities abgeben:
Wenn das mit dem Ändern des Linientypes funktionieren würde dann müßte ich nur noch wissen mit welchem Aufruf man am einfachsten ein Script aus einer Lisp Datei heraus läd. Ich würde dann nämlich anstatt der Befehle für das Erstellen der Layer einen Befehl verwenden um ein Script zu laden. Der Vorteil dabei wäre, das der Befehl zentral bleibt und ich weiterhin meine Auswahlbox für die einzelnen Gewerke habe. 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: 14. Jan. 2008 10:21 <-- editieren / zitieren --> Unities abgeben: Nur für he-st
Autocad-Zeichnungsobjekte haben einige Grundeigenschaften. Dazu gehören u.a. LAYER,FARBE,LINIENTYP, LININESTÄRKE. Dies Eigenschaften können einen konkreten Wert annehmen , wie z.B. Farbe=ROT oder "VONLAYER" oder "VONBLOCK" sein. Hat ein Zeichnungsobjekt nun bei einer Eigenschaft FARBE,LINIENTYP, LININESTÄRKE nun "VONLAYER" zugewiesen, wird in der Eigenschaft LAYER des Zeichnungsobjektes nachgesehen, was dem Table-Objekt Layer nun für konkrete Eigenschaften hinsichtlich FARBE,LINIENTYP, LININESTÄRKE hat (einem Layer kann keine Farbe "VonLayer" zugewiesen werden) und das Zeichnungsobjket entsprechend dargestellt. Alles Klar?! Ach ja .. und ein Script lädt man in Lispt z.B: mit (command "_script" SCRIPTNAME) ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
he-st Mitglied CAD Konstrukteur
Beiträge: 110 Registriert: 18.04.2005 Win10 64bit AutoCAD 2016
|
erstellt am: 14. Jan. 2008 10:32 <-- editieren / zitieren --> Unities abgeben:
Ja danke. Soweit ist mir das klar. Natürlich kann man keinem Layer den Wert VonLayer geben. Das bezieht sich immer auf die Objekte. Worum es mir aber geht ist, wie ich es anstelle das ich entweder die bestehende Lisp Datei dementsprechend erweitern kann oder aber das in ein Script zu packen. Im Script funktioniert es ja. (Layer --> Linientyp-->....) Ich will jetzt aber nicht die Grundeigenschaften von VonLayer ändern, sondern einfach sagen: Dieser Layer hat jetzt den Linientyp "verdeckt". Sonst nix. Also neuen Linientyp setzen. Mit dem andreren Befehl wird ja dem Linientyp VonLayer die Eigenschaften vom Linientyp "verdeckt" übergeben und das möchte ich nicht. Natürlich könnte ich jedem Objekt einfach den gewünschen Linientyp geben aber wenn dieser schon vorher ausgewählt wird brauche ich das Objekt nur noch auf den Layer legen. Trotzdem muss ich teilweise vom eigentlichen Linientyp abweichen und wieder VonLayer verwenden. Sorry, aber anders kann ich es nicht erklären.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
he-st Mitglied CAD Konstrukteur
Beiträge: 110 Registriert: 18.04.2005 Win10 64bit AutoCAD 2016
|
erstellt am: 14. Jan. 2008 10:33 <-- editieren / zitieren --> Unities abgeben:
|
he-st Mitglied CAD Konstrukteur
Beiträge: 110 Registriert: 18.04.2005 Win10 64bit AutoCAD 2016
|
erstellt am: 14. Jan. 2008 10:35 <-- editieren / zitieren --> Unities abgeben:
|
Dig15 Ehrenmitglied V.I.P. h.c. Dipl.-Ing. für Markscheidewesen und Geodäsie
Beiträge: 5833 Registriert: 27.02.2003 DWG TrueView 2014
|
erstellt am: 14. Jan. 2008 10:37 <-- editieren / zitieren --> Unities abgeben: Nur für he-st
Hallo he-st, ich kann zwar nicht bei Deinem Lisp Problem helfen, aber evtl. einen Denkanstoß in eine andere Richtung geben. Ich erstelle mir meine Layer (mit Linientyp) über selbsterstellte Menüs. Das sieht dann so aus:
Code: [--] ID_IB_B [Zaun]^C^C-stil;lintyp;txt;;;;;;;^C^C-layer;neu;2164_Zaun_Symb;se;2164_Zaun_Symb;fa;7;;lt;ZAUN;;ls;0.18;;; ID_IB_B [Mauer]^C^C-layer;neu;2174_Mau_Symb;se;2174_Mau_Symb;fa;7;;lt;Continuous;;ls;0.18;;; ID_IB_B [Geländer]^C^C-layer;neu;2394_Gela_Symb;se;2394_Gela_Symb;fa;7;;lt;GRENZE1;;ls;0.18;;; ID_IB_B [Treppen]^C^C-layer;neu;2404_Trep_Symb;se;2404_Trep_Symb;fa;7;;lt;Continuous;;ls;0.18;;; [--]
Erweitert mit laden des Linientyps so: Code: ^C^Cfiledia;0;_-linetype;_l;Leitung-Elektro;ibgm.lin;;filedia;1;^C^C-layer;neu;2604_StromLei_Symb;se;2604_StromLei_Symb;fa;7;;lt;Leitung-Elektro;;ls;0.18;;;
Das geht gut zu bearbeiten und ist auch unter LT nutzbar. Das waren damals für mich die Vorzüge. Bei Bedarf erkläre ich es auch ausführlicher. ------------------ Viele Grüße Lutz Glück Auf! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
he-st Mitglied CAD Konstrukteur
Beiträge: 110 Registriert: 18.04.2005 Win10 64bit AutoCAD 2016
|
erstellt am: 14. Jan. 2008 11:41 <-- editieren / zitieren --> Unities abgeben:
|
Werner-Maahs.de Mitglied CAD-Dozent + Konstrukteur + Autor
Beiträge: 626 Registriert: 04.05.2005 Win XP AC 2005/6 AC 2013
|
erstellt am: 14. Jan. 2008 13:12 <-- editieren / zitieren --> Unities abgeben: Nur für he-st
@Dig15 Zitat: Original erstellt von Dig15: ... ^C^C-layer;neu;2164_Zaun_Symb;se;2164_Zaun_Symb;fa;7;; ...
Nur mal so am Rande gefragt: Warum verwendest Du die Option neu, wenn Du anschließend gleich den Layer aktiv setzt? Verwende die Option Machen, dann hast Du alles auf einen Streich:
Code: ^C^C-layer;machen;2164_Zaun_Symb;fa;7;; ...
@he-st: Du fragst nach der Definition wo die Skripte liegen ... Definiere es doch selbst, indem Du einen Ordner für Deine Skripte anlegst und dann als Suchverzeichnis definierst. Im Zweifelsfall reicht es auch, wenn der Ordner gewählt wird, in dem sich die aktuelle Zeichnung befindet. ------------------ strukturiertes Zeichnen mit www.Werner-Maahs.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dig15 Ehrenmitglied V.I.P. h.c. Dipl.-Ing. für Markscheidewesen und Geodäsie
Beiträge: 5833 Registriert: 27.02.2003 DWG TrueView 2014
|
erstellt am: 14. Jan. 2008 13:19 <-- editieren / zitieren --> Unities abgeben: Nur für he-st
@Werner: Danke für den Hinweis. Einiges würde man (ich) heute auch anders lösen. Von cadffm wurde ich auch schon auf die sinnlose ID im Menü hingewiesen. Das ganze Menü war meine erste Arbeit in dieser Richtung. Sicherlich gibt es da viel zu verbessern oder zu straffen. Aber mir fehlt dazu irgendwie die Zeit und die Lust - es geht ja. In diesem Sinne... ------------------ Viele Grüße Lutz Glück Auf! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
captainfritz Mitglied Bauingenieur/Wasserbau
Beiträge: 270 Registriert: 07.05.2004 AutoCAD 2005/2006/2007 Map, AutoTerrain, bbsoft, Geotools, Windows XP
|
erstellt am: 14. Jan. 2008 20:15 <-- editieren / zitieren --> Unities abgeben: Nur für he-st
Hmm, als Denkanstoß verweise ich da gern auf die Nutzung der Werkzeugpaletten. Da habe ich mir all das komfortabel eingerichtet,...ohne lsp, scr, etc. Layer, egal welche Farbdef, Ltypes,.. werden einfach erzeugt, wenn ich auf das entspr. Symbol klicke. Gruppierungen, Klassen, alle ist denkbar. ------------------ mit CADzerischen Grüßen Matthias Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Konstrukteur (m/w/d) | Menschen und Technologien verbinden. Den Perfect Match für unsere Kunden gestalten. Immer die richtigen Expert:innen für die jeweilige Herausforderung finden - das ist unser Anspruch bei FERCHAU und dafür suchen wir Sie: als ambitionierte:n Kolleg:in, der:die wie wir Technologien auf die nächste Stufe bringen möchte. Wir realisieren spannende Projekte für namhafte Kunden in allen Technologien und für alle Branchen und übernehmen Verantwortung für komplexe Entwicklungsprojekte.... | Anzeige ansehen | Konstruktion, Visualisierung |
|
Werner-Maahs.de Mitglied CAD-Dozent + Konstrukteur + Autor
Beiträge: 626 Registriert: 04.05.2005 Win XP AC 2005/6 AC 2013
|
erstellt am: 15. Jan. 2008 12:30 <-- editieren / zitieren --> Unities abgeben: Nur für he-st
Nutzung der Werkzeugpaletten, Schaltflächenmakros, Menüs sind alles prima Einrichtungen, nur wenn man an mehreren Rechnern arbeitet (Firma, Schule, Zuhause, ...) ist die Mitnahme immer etwas komplizierter. Ich habe mir meine Tools alle (auch die Skripte) so gebastelt, dass ich sie mit Kurztasten (defun c:Kurzbezeichner () ( ... )) aufrufen kann.Und dies mache ich schon seit AutoCAD Version 2.1, sprich den Ende 80er Jahren. ------------------ strukturiertes Zeichnen mit www.Werner-Maahs.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |