[LISP] wybór tekstu na warstwie

Witam
Mam taki problem: Potrzebuję lispa który wybiera na rysunku wszystkie TEXT wstawione w poziomie na wskazanej warstwie (przykład warstwa ABC).
Napisałem coś takiego co działa, ale teraz mam problem z jego zmodyfikowaniu tak by przyjmował warstwę którą wskazuje poprzez wybór obiektu na rysunku.
Wybór warstwy robię za pomocą kodu:
wstawiają zmienną listawarstwa do ssget program nie działa
jak to zmienić, żeby wykorzystać wybraną warstwę zapisaną w zmiennej do ssget?
Mam taki problem: Potrzebuję lispa który wybiera na rysunku wszystkie TEXT wstawione w poziomie na wskazanej warstwie (przykład warstwa ABC).
Napisałem coś takiego co działa, ale teraz mam problem z jego zmodyfikowaniu tak by przyjmował warstwę którą wskazuje poprzez wybór obiektu na rysunku.
- Kod: Zaznacz cały
(defun c:WYBÓRTEXTPOZ ( / ss1 ss2)
(setq ss1 (ssget "_X" '((-4 . "<AND")(0 . "TEXT") (8 . "ABC")(-4 . "AND>"))))
(if ss1 (progn (sssetfirst nil ss1) (setq ss2 (ssget "_P" '((50 . 0.0)))) ) )
(sssetfirst nil nil)
(if ss2 (sssetfirst nil ss2)
(progn (princ "\n ...nic nie znaleziono") (princ) )
)
)
Wybór warstwy robię za pomocą kodu:
- Kod: Zaznacz cały
(and
(setq wybranyObiekt(entsel "\nWybierz obiekt na warstwie > "))
(setq listawarstwa (assoc 8(entget(car wybranyObiekt)))) ;(8 . ABC)
(setq nazwalayer (cdr listawarstwa)) ;ABC
);; end and
wstawiają zmienną listawarstwa do ssget program nie działa
- Kod: Zaznacz cały
(setq ss1 (ssget "_X" '((-4 . "<AND")(0 . "TEXT")(8 . listawarstwa)(-4 . "AND>"))))
jak to zmienić, żeby wykorzystać wybraną warstwę zapisaną w zmiennej do ssget?