Rekomendowane odpowiedzi

Opublikowano

Dobry wieczór,

Mam takie szybkie pytanko. Myślę, że sprawa jest banalna, ale nie mogę tego nigdzie znaleźć.

No więc:  jaką komendą da się zmienić widoczność danej warstwy w tablicy?

    (setq LAY (tblsearch "layer" "zbrojenie_linie" ))
    (setq LAY (subst (cons 62 -8 )(assoc 62 LAY) LAY))
    (entmod LAY )

Chciałem w ten sposób, ale program [ZW-Cad 2020] nie współpracuje. Pozdrawiam 😉

 

 

Opublikowano (edytowane)
6 godzin temu, swazy napisał:

Dobry wieczór,

Mam takie szybkie pytanko. Myślę, że sprawa jest banalna, ale nie mogę tego nigdzie znaleźć.

No więc:  jaką komendą da się zmienić widoczność danej warstwy w tablicy?

    (setq LAY (tblsearch "layer" "zbrojenie_linie" ))
    (setq LAY (subst (cons 62 -8 )(assoc 62 LAY) LAY))
    (entmod LAY )

Chciałem w ten sposób, ale program [ZW-Cad 2020] nie współpracuje. Pozdrawiam 😉

 

 

Byłoby dziwne gdyby wpółpracował. Lista z tblsearch nie jest poprawną listą dla entmod. Użyj tu formy entget + tblobjname. Zobacz:

(setq e (tblobjname "layer" "zbrojenie_linie" ))
(setq d (entget e))
(entmod (subst (cons 62 -8)(assoc 62 d) d))

a to prowadzić może do bardziej ogólnej funkcji:

(defun LayOnOff (Lay / e d)
  (if
    (setq e (tblobjname "LAYER" Lay))
    (progn
      (setq d (entget e))
      (setq d
        (subst
          (cons 62
            (* -1 (cdr (assoc 62 d)))
          )
          (assoc 62 d)
        d)
      )
      (entmod d)
    )
  )
)

Funkcja steruje widocznością warstwy podanej jako jej argument tak jak przełącznik, wywołaj kolejno:

(LayOnOff "zbrojenie_linie")

 

Edytowane przez kojacek
  • 2 lata później...

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się