_

błąd lselsetp nil

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".

błąd lselsetp nil

Postprzez jb71 » lip 05, 2022 17:35

Dzień dobry
Dzięki dobrodziejstwom tego forum popełniłem taki oto kod: (lisp w załaczeniu).
Problem w tym, że ja pracuję w Bricscadzie i u mnie kod działa poprawnie, co ważne pomaga. Niestety migracja do Autocada z tym lispem nie pozwala na jego użycie, bo ACAD wyrzuca błąd "lselsetp nil". Domyślam się, na podstawie postów oczywiście, że błąd jest związany z poleceniem ssget. Czy ktoś może mi pomóc?

Pozdrawiam jb71
Załączniki
strinowanie.lsp
(2.72 KiB) Pobrane 17 razy
jb71
 
Posty: 6
Dołączył(a): cze 17, 2022 08:37

Re: błąd lselsetp nil

Postprzez andkal » lip 05, 2022 21:43

Jeżeli chodziło o usunięcie polilini którą sie narysowało to można tak:
(entdel obj1)
http://www.autolisps.blogspot.com - productivity plugins for Autocad and Gstarcad
andkal
 
Posty: 79
Dołączył(a): paź 01, 2017 22:10

Re: błąd lselsetp nil

Postprzez jb71 » lip 06, 2022 06:42

Dzień dobry

Nie do końca chodzi o usunięcie linii, wręcz przeciwnie. W Bricscadzie (BC) jest jeden krok, który powoduje usunięcie linii i dlatego powtarzam polecenie narysuj plinię pomiędzy pkt1 i pkt2. Z tym się pogodziłem.
Opiszę jak to działa u mnie.
Wstawiam pkt1 i pkt2, lisp kreśli linię. Pod tą linią znajdują się inne polilinie (zwane dalej modułami), które powinny być przez tę linię zaznaczone, a program sprytnie podaje mi ilość tych modułów. Nie udało mi się zmusić programu do automatycznego zaznaczenia tej linii tuż po narysowaniu, więc zaznaczam ją ręcznie. W BC ta linia jest usuwana, nie wiem dlaczego, ale pod koniec ponownie ją kreślę. Później program jeszcze wyznacza punkt lekko powyżej środka tej linii, aby można było wpisać etykietę podawaną z palca. Wstawia także w pkt 1 i pkt2 odpowiednie bloki.
W ACADzie program przerywa komunikatem o błędzie po ręcznym wyborze linii. Uważam, że w miarę poprawne działanie tego lispa w BC jest dziełem przypadku, niemniej cytując klasyka, "jeżeli coś wygląda głupio, ale działa to nie jest głupie"
Mam nadzieję, że udało mi się precyzyjnie opisać problem.

Gdyby ktoś, coś ... mógł pomóc...
Dziękuję
pzdr jb71
jb71
 
Posty: 6
Dołączył(a): cze 17, 2022 08:37

Re: błąd lselsetp nil

Postprzez andkal » lip 06, 2022 19:26

Żeby wybrać element i ustawić jako zmienną możesz użyć
(command "_pline" pt1 pt2 "" )(setq obj1 (entlast)).
To zapisze go pod zmienną obj1 zaraz po narysowaniu. Nie trzeba tego obiektu wybierać ręcznie.

Ale zasadniczo program nie działa bo (ssget "_CP" lst1) potrzebuje koordynatów wieloboku wewnątrz którego wybierze obiekty. A jak polilinia ma tylko jeden bok od punktu pt1 do pt2 to program żadnych obiektów nie wybierze i wywali błąd.
http://www.autolisps.blogspot.com - productivity plugins for Autocad and Gstarcad
andkal
 
Posty: 79
Dołączył(a): paź 01, 2017 22:10


Powrót do AutoCAD

Kto przegląda forum

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