Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Layer erstellen mit Lisp

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Layer erstellen mit Lisp (2626 mal gelesen)
Dober Heinz
Mitglied
Technischer Zeichner


Sehen Sie sich das Profil von Dober Heinz an!   Senden Sie eine Private Message an Dober Heinz  Schreiben Sie einen Gästebucheintrag für Dober Heinz

Beiträge: 1143
Registriert: 20.12.2002

erstellt am: 23. Jan. 2007 08:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo wer kann mir Helfen

Habe ein Var. "BMA" wenn die wahr spring zu BMA und Erstell Layer BMA.
wo ist da mein Denkfehler, funkt nicht so


(setq test "BMA");;'("BMA" "SWS" "STS" "NOTB"))
(if(= test)
  (SWS (command "_-layer" "_m" test "fa" 3 "" "")
  (BMA (command "_-layer" "_m" test "fa" 1 "" "")
)))
Danke

------------------
Heinz 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 23. Jan. 2007 09:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dober Heinz 10 Unities + Antwort hilfreich

(if(= test "BMA")
(command "_-layer" "_m" test "fa" 3 "" "")
(command "_-layer" "_m" test "fa" 1 "" "")
)

da du aber scheinbar mehrere Sachen testen willst, nimm doch cond

(cond
  ((= test "BMA")(command "_-layer" "_m" "BMA" "fa" 1 "" ""))
  ((= test "SWS")(command "_-layer" "_m" "SWS" "fa" 2 "" ""))
  ((= test "STS")(command "_-layer" "_m" "STS" "fa" 3 "" ""))
  ('T (command "_-layer" "_m" "0" "fa" 1 "" ""))
)
------------------
      - 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

Dober Heinz
Mitglied
Technischer Zeichner


Sehen Sie sich das Profil von Dober Heinz an!   Senden Sie eine Private Message an Dober Heinz  Schreiben Sie einen Gästebucheintrag für Dober Heinz

Beiträge: 1143
Registriert: 20.12.2002

erstellt am: 23. Jan. 2007 09:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo CADmium

Danke dir funkt super
Ja cond heist das Zauberwort.

------------------
Heinz 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dober Heinz
Mitglied
Technischer Zeichner


Sehen Sie sich das Profil von Dober Heinz an!   Senden Sie eine Private Message an Dober Heinz  Schreiben Sie einen Gästebucheintrag für Dober Heinz

Beiträge: 1143
Registriert: 20.12.2002

Autocad 2021/64B
Win10
WORKSTATION Intel(R) CPU E5-1620 3.60GHz
32 GB Ram
64 Bit-Betriebssystem
HP Designjet T7200
Grafik NVIDIA Quadro P4000
ZWCAD2021

erstellt am: 23. Jan. 2007 09:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Thomas

Will mal zeigen was daraus werden soll.

Doslib17.arx muss Installiert sein

(defun c:mlayer ()
  (setq la (dos_listbox "Setze Layer aktuell" "Wähle Layer" '("Starkstrom" "Beleuchtung" "Schwachstrom" 
        "Notbeleuchtung" "Lichtruf" "EIB" "Branmeldeanlage" "Erdung")))


(cond
  ((= la "Starkstrom")(command "_-layer" "_m" "---E_Starkstrom" "fa" 5 "" ""))
  ((= la "Beleuchtung")(command "_-layer" "_m" "---E_Beleuchtung" "fa" 22 "" ""))
  ((= la "Schwachstrom")(command "_-layer" "_m" "---E_Schwachstrom" "fa" 3 "" ""))
  ((= la "Notbeleuchtung")(command "_-layer" "_m" "---E_Notbeleuchtung" "fa" 94 "" ""))
  ((= la "Lichtruf")(command "_-layer" "_m" "---E_Lichtruf" "fa" 6 "" ""))
  ((= la "EIB")(command "_-layer" "_m" "---E_EIB" "fa" 162 "" ""))
  ((= la "Brandmeldeanlage")(command "_-layer" "_m" "---E_Brandmeldeanlage" "fa" 1 "" ""))
  ((= la "Erdung")(command "_-layer" "_m" "---E_Erdung" "fa" 200 "" ""))
  ('T (command "_-layer" "_m" "0" "fa" 7 "" ""))
)
  )

------------------
Heinz 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 23. Jan. 2007 10:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dober Heinz 10 Unities + Antwort hilfreich

Hallo Heinz,
ich habe da noch einen Verbeserungsvorschlag. Ich habe den Teilstring des Layernames und die Farbe in eine Liste geschrieben. Auf diese Liste greift dann die Funktion "dos_listbox" zu. Über die Rückgabe kannst Du dann unter der Verwendung von "assoc" wieder auf dieselbe Liste zugreifen.
Der Vorteil: Wenn Du die Liste erweitern willst mußt Du das nur an einer Stelle tun. Ob der Code läuft weiß ich nicht, da mir die Funktion "dos_listbox" nicht zur Verfügung steht, aber eigentlich sollte es funktionieren.
Code:

(defun c:mlayer ( / liste la)
  (setq liste
'(("Starkstrom" 5)
  ("Beleuchtung" 22)
  ("Schwachstrom" 3)
  ("Notbeleuchtung" 94)
  ("Lichtruf" 6)
  ("EIB" 162)
  ("Branmeldeanlage" 1)
  ("Erdung" 200)
  ))
  (setq la (dos_listbox
            "Setze Layer aktuell"
    "Wähle Layer"
    (mapcar 'car liste)))


  (cond
    ((assoc la liste)
    (command "_-layer"
      "_m"
      (strcat "---E_" (car (assoc la liste)))
      "fa"
      (cadr (assoc la liste))
      ""
      ""))
    ('T (command "_-layer" "_m" "0" "fa" 7 "" ""))))


------------------
viele Grüße

Jörn

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dober Heinz
Mitglied
Technischer Zeichner


Sehen Sie sich das Profil von Dober Heinz an!   Senden Sie eine Private Message an Dober Heinz  Schreiben Sie einen Gästebucheintrag für Dober Heinz

Beiträge: 1143
Registriert: 20.12.2002

erstellt am: 23. Jan. 2007 10:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Jörn

Danke getestet funkt super
Danke viel Tipparbeit erspart.

------------------
Heinz 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Ex-Mitglied
Dober Heinz
Mitglied
Technischer Zeichner


Sehen Sie sich das Profil von Dober Heinz an!   Senden Sie eine Private Message an Dober Heinz  Schreiben Sie einen Gästebucheintrag für Dober Heinz

Beiträge: 1143
Registriert: 20.12.2002

erstellt am: 26. Jan. 2007 07:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Morgen Rabbit


Habe deinen Vorschlag eingearbeitet, Funkt.

Aber der Befehl dos_checklist geht nicht

------------------
Heinz 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Ex-Mitglied
Dober Heinz
Mitglied
Technischer Zeichner


Sehen Sie sich das Profil von Dober Heinz an!   Senden Sie eine Private Message an Dober Heinz  Schreiben Sie einen Gästebucheintrag für Dober Heinz

Beiträge: 1143
Registriert: 20.12.2002

erstellt am: 26. Jan. 2007 09:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Rabbit


Ja danke habe schon gesehn, ("Layer" .0), das punkt 0 oder 1 ist das wichtig.

Danke für Anregung

------------------
Heinz 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Ex-Mitglied
Ex-Mitglied
Dober Heinz
Mitglied
Technischer Zeichner


Sehen Sie sich das Profil von Dober Heinz an!   Senden Sie eine Private Message an Dober Heinz  Schreiben Sie einen Gästebucheintrag für Dober Heinz

Beiträge: 1143
Registriert: 20.12.2002

erstellt am: 26. Jan. 2007 10:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Rabbit


Danke für Antwort

Das muss ich mir anschaun, ist mir noch zu hoch das alles einzubaun.
Komme so gerade über die runden. gggggg
danke dir

------------------
Heinz 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Andreas Kraus
Mitglied
Elektrotechniker


Sehen Sie sich das Profil von Andreas Kraus an!   Senden Sie eine Private Message an Andreas Kraus  Schreiben Sie einen Gästebucheintrag für Andreas Kraus

Beiträge: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 26. Jan. 2007 11:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dober Heinz 10 Unities + Antwort hilfreich

Hallo Heinz,
wenn du jetzt noch die Liste mit den Parametern der Layer in eine Textdatei wurschtelst die du einliest, kannst du dir ganz bequem alle Layer die du brauchst anlegen ohne das Programm ändern zu müssen.
Un wenn die Textdatei etwa wie folgt aussieht, kannst du die mit "load" auf einen Schlag in eine Variable pcken ohne jede Zeile einzeln einlesen zu müssen.

(quote (
("Layername1" "Farbe1" "Linientyp1")
("Layername2" "Farbe2" "Linientyp2")
("Layername3" "Farbe3" "Linientyp3")
("Layername4" "Farbe4" "Linientyp4")
))

und im Programm dann einfach z.B. :
(setq pfad "c:\layerliste.txt")
(setq layerliste (load pfad))

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 27. Jan. 2007 08:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dober Heinz 10 Unities + Antwort hilfreich

@Rabbit,
Zitat:

@Jörn zu deinem Beitrag hier möchte ich mal den Finger heben !!!
Ich dachte cond ist eine Bedingungsfunktion wo sich mir die
Frage stellt was macht das cond da ich kann doch nur einen (so wie
hier) einen Layernamen zurückerhalten oder nil und bei nil soll
wie in deiner funktion der layer "0" neu erstellt werden
und sogar die farbe wird gesetzt. Damit ich das verstehe also :
wenn Erg=Layername erstell Layer , wenn nil dann änderst du einfach
mal ne layerfarbe , WENN , WENN , WENN <---Hier müßten Antworten von
dir kommen um die cond funktion mal für mich zu begründen.
Für mich schreit das einfach mur nach einem If wenn dann ansonten nix.

ich kann dafür keine Begründung geben, außer, das ich mal eben auf die Schnelle den Code von Heinz mit einer neuen Idee versehen habe. Also, es müßte ein IF genommen werden, es kann aber auch weiterhin das COND genommen werden, das tut der Funktionalität, und bei diesen geringen Datenmengen der Performance keinen Abbruch. =>Rubrik "nicht schön aber selten" 

------------------
viele Grüße

Jörn

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz