swazy Posted January 27, 2018 Report Share Posted January 27, 2018 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 Quote Link to comment Share on other sites More sharing options...
kruszynski Posted January 29, 2018 Report Share Posted January 29, 2018 Proszę spróbować tak: (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 (setq ileelementow ( sslength SS ) ) (setq i 0 ) (repeat ileelementow ( vlax-invoke-method ( vlax-ename->vla-object ( ssname SS i ) ) 'Move ( vlax-3d-point ( list 0 0 0 ) ) ( vlax-3d-point ( list 0 -5000 0 ) ) ) ( setq i ( 1+ i ) ) ) Quote Link to comment Share on other sites More sharing options...
swazy Posted February 22, 2018 Author Report Share Posted February 22, 2018 Nie rozumiem "vlax'ów". Jadę póki co na "AutoLISP. Praktyczny kurs" Marka Dudka a tam vlax'y nie występują Poradziłem sobie rozbijając polilinie i robiąc ponownie zbiór. W każdym razie dziękuję bardzo za pomoc! P.S. A jakie jest najbardziej ortodoksyjnie łopatologiczne opracowanie, żeby ogarnąć Visual Auto Lips? Quote Link to comment Share on other sites More sharing options...
kruszynski Posted February 23, 2018 Report Share Posted February 23, 2018 Nie znam takiego opracowania. Ale w Internecie znajduje się całe mnóstwo przykładów. W mojej ocenie najlepsze "biblioteki" widzy lispowej to: Lee-mac Sporo nauczyłem się też tutaj: afralisp Quote Link to comment Share on other sites More sharing options...
Pawcyk Posted February 25, 2018 Report Share Posted February 25, 2018 A czy te kreskowania, które się nie odklejają, nie są zespolone z poliliniami? Quote Link to comment Share on other sites More sharing options...
kruszynski Posted February 26, 2018 Report Share Posted February 26, 2018 Chyba jeszcze kawa nie zaczęła krążyć, bo nie rozumiem pytania. Quote Link to comment Share on other sites More sharing options...
Pawcyk Posted February 26, 2018 Report Share Posted February 26, 2018 Kreskowanie ma możliwość zespolenia z polilinią tworzącą obwiednie. Jeżeli przesunę jeden wierzchołek takiej polilini to kreskowanie automatycznie dostosuje się do nowej obwiedni. Skojarzyło mi się to z opisywanym problemem. Quote Link to comment Share on other sites More sharing options...
kruszynski Posted February 26, 2018 Report Share Posted February 26, 2018 No tak, czyli te kreskowania, które się przesuwają to są zespolone. a manipulowanie nimi przez Vlisp jest w pewnym stopniu "głębiej" Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.