_

[LISP] wybór tekstu na warstwie

Forum poświęcone flagowemu produktowi oraz aplikacjom pochodnym Autodesku. To jedyne forum mające w tytule nazwę programu, a to ze względu na jego olbrzymią popularność w Polsce. Można tutaj umieszczać również posty z ogólnie pojętej tematyki "Kreślarskie 2D".

[LISP] wybór tekstu na warstwie

Postprzez wilda » sty 14, 2022 20:41

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.
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?
wilda
 
Posty: 274
Dołączył(a): gru 18, 2007 21:41

Re: [LISP] wybór tekstu na warstwie

Postprzez andkal » sty 14, 2022 21:16

żeby móc użyć w liscie ssget chociaz jedną zmienną trzeba użyć CONS zamiast kropek

(setq ss1 (ssget "_X" (list(cons -4 "<AND")(cons 0 "TEXT")(cons 8 nazwalayer)(cons -4 "AND>"))))
http://www.autolisps.blogspot.com - handy plugins for autocad
andkal
 
Posty: 75
Dołączył(a): paź 01, 2017 22:10

Re: [LISP] wybór tekstu na warstwie

Postprzez wilda » sty 14, 2022 22:19

Próbowałem z cons ale tylko (cons 8 nazwalayer).
Teraz działa, dzięki.
wilda
 
Posty: 274
Dołączył(a): gru 18, 2007 21:41

Re: [LISP] wybór tekstu na warstwie

Postprzez ziele_o2k » sty 15, 2022 10:11

wilda napisał(a):Próbowałem z cons ale tylko (cons 8 nazwalayer).
Teraz działa, dzięki.

Dla zrozumienia o co biega polecam:
http://www.lee-mac.com/quote.html
Ziele
Avatar użytkownika
ziele_o2k
 
Posty: 809
Dołączył(a): mar 18, 2014 11:33
Lokalizacja: Poznań

Re: [LISP] wybór tekstu na warstwie

Postprzez andkal » sty 15, 2022 11:15

Nie działało ponieważ w (cons listawarstwa) zmienna "listawarstwa" mialo by wasrtosc (8 . "ABC") a powinno miec forme STRINGu czyli samo "ABC" czyli to co jest pod zmienna "nazwalayer".
Jeśli chcesz mieć wiecej warstw musialbys utworzyc STRING np "ABC,DEF,GHI"
http://www.autolisps.blogspot.com - handy plugins for autocad
andkal
 
Posty: 75
Dołączył(a): paź 01, 2017 22:10

Re: [LISP] wybór tekstu na warstwie

Postprzez wilda » sty 19, 2022 22:50

Dzięki za informacje.
Sam tego nie znalazłem i bym nie znalazł, bo nie wiedziałem za bardzo czego szukać.
wilda
 
Posty: 274
Dołączył(a): gru 18, 2007 21:41


Powrót do AutoCAD

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników