Witam,
Czy jest ktoś w stanie pomóc przy dokończeniu programu, który wypisuje nazwy elementów rysunkowych (linii, polilinii, okręgów) pod podaną warstwą? Na tą chwilę mam tak, że po podaniu nazwy warstwy wypisuje mi:
1 LWPOLYLINE
2 LWPOLYLINE
3 CIRCLE
4 INSERT
itd.
Potrzebuję, aby za "INSERT" wypisać jeszcze nazwę bloku, a dla pozostałych obiektów współrzędne punktów, np. dla polilinii współrzędne pkt początkowego i końcowego, dla okręgu współrzędne środka itp.
Dodam, że jestem całkowicie początkujący. Oto co mam do tej pory:
(defun C:raport ()
(setq nazwa_warstwy (getstring "Podaj nazwe warstwy: "))
(setq zb1 (ssget "X" (list (cons 8 nazwa_warstwy))))
(if(= zb1 nil)
(progn
(princ "\nZbior wyboru nie zawiera elementow.\n")
)
)
(if (> (sslength zb1) 0)
(progn
(textscr)
(princ "\n")
(princ "Liczba elementow w zbiorze wyboru: ")
(princ (sslength zb1))
(princ "\n")
(setq nazwa (sslength zb1) i 0)
(repeat nazwa
(progn
(setq wsk (ssname zb1 i) lista_dxf (entget wsk))
(setq num (cdr(car lista_dxf)))
(setq w2 (cdr (assoc 0 (entget num))))
(setq wl (cons w2 wl))
(setq i (1+ i))
)
)
(setq i 0)
(repeat nazwa
(progn
(princ i)
(princ (nth i wl))
(princ "\n")
(setq i (1+ i))
)
)
(graphscr)
)
)
(princ)
)