Adam_x Posted January 20, 2021 Report Share Posted January 20, 2021 Witam Ostatnio stworzyłem program do obracania dowolnego bloku o 90 stopni. po uruchomieniu w ZWCAD wybieramy blok, blok jest kopiowany, następnie po wciśnięciu prawego przycisku myszy jest obracany o 90 stopni i można wkleić (razem z blokiem źródłowym po wciśnięciu esc obrót bloku źródłowego wraca do stanu pierwotnego) wstępnie wszystko działa jak należy, lecz jest jedno ale : jak wciskam prawy przycisk myszy, a wskaźnik pozostaje nieruchomo to obraz bloku jest niewidoczny. Dopiero minimalny ruch myszy pokazuje blok w miejscu wskaźnika myszy. Jeżeli ktoś ma pomysł dlaczego tak się dzieje proszę o podpowiedź, ewentualnie jak to zmodyfikować by blok był zawsze widoczny. poniżej kod programu lub w załączniku : (defun c:xxx () (setq temperr *error*) (setq *error* trap) (setq ssetBlockSource(ssget "_:S:E" '((0 . "INSERT")))) (setq punktsrod (vlax-safearray->list (vlax-variant-value (vla-get-InsertionPoint (vlax-ename->vla-object (ssname ssetBlockSource 0)))))) (setq blok(entget(ssname ssetBlockSource 0))) (setq rotacja1(/ (* 180 (cdr(assoc 50 blok))) pi)) (setq currInsertionPoint(trans punktsrod 0 1 nil)) (while (= 1 1) (setq info(getvar 'lastprompt)) (cond ((= info "Polecenie: ") (progn (command "" "_rotate" ssetBlockSource "" currInsertionPoint -90 "") (command "" "_copy" ssetBlockSource "" "w" currInsertionPoint "@" "c") ) ) ((/= info "Polecenie: ") (progn (command "" "_copy" ssetBlockSource "" "w" currInsertionPoint "@" "c" pause "") ) ) ) ) ) (defun trap (errmsg) (setq *error* temperr) (setq blok(entget(ssname ssetBlockSource 0))) (setq rotacja2(/ (* 180 (cdr(assoc 50 blok))) pi)) (setq rotacja(rtos (- rotacja1 rotacja2) 2 2)) (command "_rotate" ssetBlockSource "" currInsertionPoint rotacja "") (princ) ) LISP_1.lsp Quote Link to comment Share on other sites More sharing options...
dmatusz3 Posted January 20, 2021 Report Share Posted January 20, 2021 Wydaje mi się, że pod kursorem niczego nie ma, bo po naciśnięciu klawisza Enter wykonuje się kopiowania w innej części rysunku. Natomiast po ruchu myszką wraca podgląd. Proszę oddalić rysunek i spróbować. Quote Link to comment Share on other sites More sharing options...
kojacek Posted January 20, 2021 Report Share Posted January 20, 2021 Co to za konstrukcja ???: (while (= 1 1) Quote Link to comment Share on other sites More sharing options...
Adam_x Posted January 21, 2021 Author Report Share Posted January 21, 2021 10 godzin temu, kojacek napisał: Co to za konstrukcja ???: (while (= 1 1) hmm Program ma wykonywać pętle, a jedyny sposób na wyjście z pętli jest klawisz ESC czyli program wchodzi w *error* Quote Link to comment Share on other sites More sharing options...
Adam_x Posted January 21, 2021 Author Report Share Posted January 21, 2021 Napisano 20 godzin temu "Wydaje mi się, że pod kursorem niczego nie ma, bo po naciśnięciu klawisza Enter wykonuje się kopiowania w innej części rysunku. Natomiast po ruchu myszką wraca podgląd. Proszę oddalić rysunek i spróbować." a to dziwne ponieważ u mnie niczego nie kopiuje (dodatkowo) w innej części rysunku, klawisz enter obraca tylko blok źródłowy to wszystko. Jak coś mam wersję z 2019r. ZWCADA, może przez to, że ma Pan włączone śledzenie biegunowe, śledzenie lokalizacji lub coś innego ?. Quote Link to comment Share on other sites More sharing options...
kojacek Posted January 25, 2021 Report Share Posted January 25, 2021 Dnia 21.01.2021 o 08:38, Adam_x napisał: hmm Program ma wykonywać pętle, a jedyny sposób na wyjście z pętli jest klawisz ESC czyli program wchodzi w *error* Przyznam że nie rozumiem idei tegoż, jak też i zamysłu całości. Po co tak obrac bloki? Ale się nie znam pewnie. Quote Link to comment Share on other sites More sharing options...
kojacek Posted January 30, 2021 Report Share Posted January 30, 2021 Dnia 25.01.2021 o 09:36, kojacek napisał: Przyznam że nie rozumiem idei tegoż, jak też i zamysłu całości. Po co tak obrac bloki? Ale się nie znam pewnie. Tak nieco inaczej podchodząc do tematu: https://kojacek.wordpress.com/2021/01/30/lisp-a-klawisze/ Quote Link to comment Share on other sites More sharing options...
Adam_x Posted February 1, 2021 Author Report Share Posted February 1, 2021 Dnia 30.01.2021 o 22:11, kojacek napisał: Tak nieco inaczej podchodząc do tematu: https://kojacek.wordpress.com/2021/01/30/lisp-a-klawisze/ Witam jak mam wstawić ze 100 gniazdek elektrycznych i wystarczy tylko obrót 90 stopni to chyba wolę jednak moją wersję . nawet jakby zmienić na obrót 90 w tej wersji to pozostaje jeszcze kwestia wygody ja wolę myszką kliknąć 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.