Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Layer isoliern per Eingabe des Layernamens

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 isoliern per Eingabe des Layernamens (465 mal gelesen)
gelegenheitslispler
Mitglied



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

Beiträge: 44
Registriert: 02.12.2004

erstellt am: 01. Mrz. 2005 08:23    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 !
Möchte gern folgendes lisp (einstmals vom cadwiesel verschönert) dahin umbiegen, daß ich den zu isolierenden layer nicht per anpicken, sondern per Eingabe des Layernamens wähle. Geht das ?

(Defun C:LAYISO (/ SS CNT LAY LAYLST VAL VPMODE)

  (init_bonus_error
    (list
      (list "cmdecho" 0
            "expert"  0
      )
      T    ;flag. True means use undo for error clean up.
    );list
  );init_bonus_error


  (if (and (= 0 (getvar "tilemode"))                          ; if in a paper space
          (/= 1 (getvar "cvport"))                          ; viewport
      )
    (setq VPMODE T)                                          ; set flag for viewport behavior
  )

  (if (not (setq SS (ssget "_i")))
    (progn
      (prompt "\nObjekt(e) auf zu isolierenden Layern wählen: ")
      (setq SS (ssget))
    )
  )


  (if SS
    (progn

      (setq CNT 0)

      (while (and ss
                  (> (sslength ss) 0)
                  (setq LAY (ssname SS CNT))
            );and
        (setq LAY (cdr (assoc 8 (entget LAY))))
        (if (not (member LAY LAYLST))
          (setq LAYLST (cons LAY LAYLST))
        )
        (setq CNT (1+ CNT))
      )

      (cond
        (VPMODE
          (command "_.vplayer" "_freeze" "*" "_Current")
          (foreach VAL LAYLST (command "_Thaw" VAL "_Current"))
          (command "")
          (if (= (length LAYLST) 1)
            (prompt (acet-str-format "\nLayer %1 wurde in diesem Ansichtsfenster isoliert." (car LAYLST)))
            (prompt (acet-str-format "\n%1 Layer wurden in diesem Ansichtsfenster isoliert." (itoa (length LAYLST))))
          )
        )
        (T
          (if (member (getvar "CLAYER") LAYLST)
            (setq LAY (getvar "CLAYER"))
            (setvar "CLAYER" (setq LAY (last LAYLST)))
          )

          (command "_.-LAYER" "_OFF" "*" "_Y")
          (foreach VAL LAYLST (command "_ON" VAL))
          (command "")

          (if (= (length LAYLST) 1)
            (prompt (acet-str-format "\nLayer %1 wurde isoliert." (car LAYLST)))
            (prompt (acet-str-format "\n%1 Layer wurden isoliert. %2 ist der aktuelle Layer."
                                      (itoa (length LAYLST)) LAY)
            )
          )
        )
      )
    )
  )

  (restore_old_error)

  (princ)
)

Danke im Voraus ;-)
Frank

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

CADwiesel
Moderator
CAD4FM UG




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

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 01. Mrz. 2005 08:36    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 gelegenheitslispler 10 Unities + Antwort hilfreich

(Defun C:LAYISO (/ SS CNT LAY LAYLST VAL VPMODE)

  (init_bonus_error
    (list
      (list "cmdecho" 0
            "expert"  0
      )
      T    ;flag. True means use undo for error clean up.
    );list
  );init_bonus_error
  (if (and (= 0 (getvar "tilemode"))                          ; if in a paper space
          (/= 1 (getvar "cvport"))                          ; viewport
      )
    (setq VPMODE T)                                          ; set flag for viewport behavior
  )
  (if (not (setq SS (ssget "_i")))
    (progn
      (prompt "\nObjekt(e) auf zu isolierenden Layern wählen: ")
      (if(null(setq SS (ssget)))
          (setq ss(ssget "_X"(list(cons 8(getstring"\nLayernamen eingeben [mehrere durch Komma trennen]: ")))))
        )
    )
  )
  (if SS
    (progn
      (setq CNT 0)
      (while (and ss
                  (> (sslength ss) 0)
                  (setq LAY (ssname SS CNT))
            );and
        (setq LAY (cdr (assoc 8 (entget LAY))))
        (if (not (member LAY LAYLST))
          (setq LAYLST (cons LAY LAYLST))
        )
        (setq CNT (1+ CNT))
      )
      (cond
        (VPMODE
          (command "_.vplayer" "_freeze" "*" "_Current")
          (foreach VAL LAYLST (command "_Thaw" VAL "_Current"))
          (command "")
          (if (= (length LAYLST) 1)
            (prompt (acet-str-format "\nLayer %1 wurde in diesem Ansichtsfenster isoliert." (car LAYLST)))
            (prompt (acet-str-format "\n%1 Layer wurden in diesem Ansichtsfenster isoliert." (itoa (length LAYLST))))
          )
        )
        (T
          (if (member (getvar "CLAYER") LAYLST)
            (setq LAY (getvar "CLAYER"))
            (setvar "CLAYER" (setq LAY (last LAYLST)))
          )
          (command "_.-LAYER" "_OFF" "*" "_Y")
          (foreach VAL LAYLST (command "_ON" VAL))
          (command "")
          (if (= (length LAYLST) 1)
            (prompt (acet-str-format "\nLayer %1 wurde isoliert." (car LAYLST)))
            (prompt (acet-str-format "\n%1 Layer wurden isoliert. %2 ist der aktuelle Layer."
                                      (itoa (length LAYLST)) LAY)
            )
          )
        )
      )
    )
  )
  (restore_old_error)
  (princ)
)

------------------
Gruß
CADwiesel
Besucht uns im CHAT

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

gelegenheitslispler
Mitglied



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

Beiträge: 44
Registriert: 02.12.2004

erstellt am: 01. Mrz. 2005 08:46    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

Hammer.
Problemlösung in < 15 min.
DANKESCHÖN !!
Frank

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