Cześć! Wiem, że tytuł nie jest zbyt profesjonalny, ale nie mam pomysłu na lepsze zsyntezowanie mojego problemu, wszelkie googlowania i kombinacje własne też mi nie pomogły. Zacząłem się bawić w pisanie LISPów do AutoCADa (robię to od bardzo niedawna na bardzo niewysokim poziomie). Mam taki fragment kodu:
(setq SS (ssget "x"
'(
(-4 . "<OR")
(-4 . "<AND")
(8 . "K_*ciany *elbetowe")
(-4 . "<OR")
(0 . "POLYLINE")
(0 . "LWPOLYLINE")
(0 . "LINE")
(-4 . "OR>")
(-4 . "AND>")
(-4 . "<AND")
(8 . "K_tarcze")
(-4 . "<OR")
(0 . "POLYLINE")
(0 . "LWPOLYLINE")
(0 . "LINE")
(-4 . "OR>")
(-4 . "AND>")
(-4 . "OR>")
)
));setq
(command
"move" SS "" (list 0 0 0) (list 0 -5000 0)
);command
Idea jest taka, żeby wybrać elementy z wyżej opisanego warunku i przesunąć to o 50m w dół (5 000 jednostek). W praktyce oprócz tych elementów KOPIUJE (nawet nie przesuwa a kopiuje) się hatch znajdujacy się pomiedzy tymi liniami (chociaż nie znajduje się na ww. warstwach). Najśmieszniejsze jest to, że kopiuje się tylko część HATCH'ów a reszta zachowuje się tak, jak moim zdaniem powinna.
Dlaczego tak się dzieje? Czy da się "rozłączyć" granice kreskowania i te elementy?
Pozdrawiam Mateusz