Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  repeat (command layer - schleife

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:  repeat (command layer - schleife (1144 mal gelesen)
cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 21. Mrz. 2012 12:12    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!

Mir ist neu, dass ich den Befehl _layer nicht herkömmlich, wie das bspw bei _insert möglich ist, mit repeat wiederholen kann.
Kopiere ich aber die Zeile (command "layer" "off" (nth (setq i (1+ i)) llist))
x-mal in die Befehlszeile macht command genau das, nämlich die Layerliste auf off/aus stellen


Code:

(defun c:-- ()
  (setq llist
(list  "M-BEF-EL"               
          "M-BEF-EL-INFO"     
          "M-BEF-EL-TEXT"     
          "M-BEF-FV"           
                "M-BEF-FV-INFO"     
          "M-BEF-FV-TEXT"     
          "M-BEF-GAS"         
          "M-BEF-GAS-INFO"     
          "M-BEF-GAS-TEXT"     
          "M-BEF-OPTO"         
          "M-BEF-OPTO-INFO"   
          "M-BEF-OPTO-TEXT"   
          "M-BEF-TELE"         
          "M-BEF-TELE-INFO"   
          "M-BEF-TELE-TEXT"   
          "M-BEF-VA-D"         
          "M-BEF-VA-INFO"     
          "M-BEF-VA-S"         
          "M-BEF-VA-ST"       
          "M-BEF-VA-TEXT"     
          "M-BEF-VA-V")
)
  (setq i 0)
  (repeat (length llist)
    (command "layer" "off" (nth (setq i (1+ i)) llist))
    )
  )
 



------------------
Gruss Dirk

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: 21. Mrz. 2012 12: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 cadplayer 10 Unities + Antwort hilfreich

du beendest den Command aufruf auch nicht richtig

Besser ist ( wenn schon command und kein Errorhandling)

(defun c:LAYOF ()
  (mapcar
      '(lambda(X)(command "_layer" "_off" X "")) 
      '( "M-BEF-EL"               
        "M-BEF-EL-INFO"     
        "M-BEF-EL-TEXT"     
        "M-BEF-FV"           
        "M-BEF-FV-INFO"     
        "M-BEF-FV-TEXT"     
        "M-BEF-GAS"         
        "M-BEF-GAS-INFO"     
        "M-BEF-GAS-TEXT"     
        "M-BEF-OPTO"         
        "M-BEF-OPTO-INFO"   
        "M-BEF-OPTO-TEXT"   
        "M-BEF-TELE"         
        "M-BEF-TELE-INFO"   
        "M-BEF-TELE-TEXT"   
        "M-BEF-VA-D"         
        "M-BEF-VA-INFO"     
        "M-BEF-VA-S"         
        "M-BEF-VA-ST"       
        "M-BEF-VA-TEXT"     
        "M-BEF-VA-V"
        )
  )
)


beachte das abschließende "" im command aufruf

------------------
  - 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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 21. Mrz. 2012 12:32    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 cadplayer 10 Unities + Antwort hilfreich

@Dirk, CADmium hat es zwar im Grunde schon gesagt, aber teste das bitte unbedingt mal selbst (Lerneffekt größer  )

tippe mal ein:
-layer<enter>
off<enter>
"M-BEF-VA-V"
-layer<enter>
off<enter>
"M-BEF-VA-TEXT"
-layer<enter>
off<enter>
"M-BEF-VA-ST"

Genau das macht dein Programm..
PS: Nehme doch bitte die internationalen Befehle, also den Unterstrich gefolgt vom englischen Befehl.
_Layer
_off

oder auch _-LAYER

oder _LINE

usw.

------------------
CAD.de System-Angaben  -  CAD on demand  -  User:FAQ(Acad)

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 21. Mrz. 2012 12:53    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 cadplayer 10 Unities + Antwort hilfreich

Du könntest es auch so machen, dass in der repeat-Schleife nur die Optionen des Layerbefehls abgearbeitet werden:
Code:
(command "_layer")
(repeat (length llist)
  (command "_off" (nth (setq i (1+ i)) llist))
)
(command "")

Das hat den Vorteil, dass die Layeraktionen in EINEM Befehl durchgeführt werden.
Und vergiß nicht, EXPERT auf 1 zu stellen.

Grüsse, Henning

------------------
Henning Jesse
VoxelManufaktur
Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 21. Mrz. 2012 13:03    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

@cadmium:
immer wieder eine fixe Antwort, die mir u.a. neue Methoden beibringt

@cadffm:
Ja ich habe das "" vergessen - verflixt

------------------
Gruss Dirk

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