gruzin Opublikowano 20 Stycznia 2011 Zgłoś Udostępnij Opublikowano 20 Stycznia 2011 mam taki kod: (defun c:rzut2prof ( / Punkt0 Punkt1 PunktT0 PunktT1 RzednaT0 RzednaT1 OpisT1 ZmianaSkalipoz ZmianaSkalipio) ;=========================================================================== ; wybieramy Styl tekstu IS_SIMPLEX jako aktualny lub gdy go nie ma tworzymy go i ustawiamy jako aktualny (if (tblsearch "Style" "IS_SIMPLEX") (command "_textstyle" "IS_SIMPLEX") (progn (command "_-style" "TEMP-STYLE" "simplex.shx" "" "0.7" "" "" "" "") (command "_rename" "_S" "TEMP-STYLE" "IS_SIMPLEX") (command "_textstyle" "IS_SIMPLEX") );progn );if ;=========================================================================== ;=========================================================================== ; wybieramy warstwe IS_tabela jako aktualną lub gdy jej nie ma tworzymy ją (if (tblsearch "Layer" "IS_tabela") (command "_clayer" "IS_tabela") (progn (command "_layer" "_N" "TEMP-LAYER" "_C" "11" "TEMP-LAYER" "_L" "Continuous" "TEMP-LAYER" "_LW" "0.13" "TEMP-LAYER" "") (command "_rename" "_LA" "TEMP-LAYER" "IS_tabela") );progn );if ; wybieramy warstwe IS_tabela jako aktualną lub gdy jej nie ma tworzymy ją (if (tblsearch "Layer" "IS_teren") (command "_clayer" "IS_teren") (progn (command "_layer" "_N" "TEMP-LAYER" "_C" "61" "TEMP-LAYER" "_L" "Continuous" "TEMP-LAYER" "_LW" "0.13" "TEMP-LAYER" "") (command "_rename" "_LA" "TEMP-LAYER" "IS_teren") );progn );if ; wybieramy warstwe IS_opisy jako aktualną lub gdy jej nie ma tworzymy ją (if (tblsearch "Layer" "IS_opisy") (command "_clayer" "IS_opisy") (progn (command "_layer" "_N" "TEMP-LAYER" "_C" "41" "TEMP-LAYER" "_L" "Continuous" "TEMP-LAYER" "_LW" "0.13" "TEMP-LAYER" "") (command "_rename" "_LA" "TEMP-LAYER" "IS_opisy") (command "_clayer" "IS_opisy") );progn );if ;========================================================================= ;=========================================================== (setvar "dimzin" 0) ;ustawienie dokładności cyfr "pełnychg" na dokładność z przecinkami - bez tego poziom 0,0 bedzie bez przecinków podawany (setvar "osnapcoord" 1) ;zmienia sposób przyciągania do punktów, aby nie dociągało wstawianych skryptem elementów do elementów istniejących ;============================================================= ;=========================================================================== (if (null RzednaT1) (setq RzednaT1 112)) (if (null ZmianaSkalipoz) (setq ZmianaSkalipoz 1)) (if (null ZmianaSkalipio) (setq ZmianaSkalipio 1)) ;=========================================================================== (setq Punkt1 (getpoint "\nKliknij pierwszy punkt \"terenu\" od którego rysowany będzie profil (na profilu): ") ZmianaSkalipoz (UIGetDist "\nWpisz o ile razy zmienić skalę POZIOMĄ profilu w stosunku do rzutu (1 - brak zmiany, 0.2 - zmniejszenie 5x długości profilu): " ZmianaSkalipoz) ZmianaSkalipio (UIGetDist "\nWpisz o ile razy zmienić skalę PIONOWĄ profilu w stosunku do skali 1:100 (1 - brak zmiany, 2 - skala 1:50, itp): " ZmianaSkalipio) PunktT1 (getpoint "\nKliknij pierwszy punkt na rzucie.") RzednaT1 (UIGetDist "\nWpisz wartość poziomu terenu w tym punkcje: " RzednaT1) OpisT1 (getstring T "\nWpisz opis na profilu do tego punktu: ") );setq (setvar "clayer" "IS_opisy") (command "_.text" (polar (polar Punkt1 pi 5) (/ pi 2) 30) "18" "90" OpisT1) (setvar "clayer" "IS_tabela") (command "_line" Punkt1 (polar Punkt1 (/ pi 2) 500) "") (setvar "clayer" "IS_opisy") (command "_.text" (polar (polar Punkt1 (* 1.5 pi) (- (* (+ (rem RzednaT1 5) 5) 100) 5)) 0 10) "18" "0" (rtos (- RzednaT1 (/ (+ (rem RzednaT1 5) 5) ZmianaSkalipio)) 2 2)) (command "_circle" (polar Punkt1 (* 1.5 pi) (* (+ (rem RzednaT1 5) 5) 100)) "_d" "10") (setq PunktT0 PunktT1 PunktT1 (getpoint PunktT0 "\nKliknij kolejny punkt na rzucie.") );setq -------------------------------------------- (while PunktT1 (setq Punkt0 Punkt1 RzednaT0 RzednaT1 RzednaT1 (UIGetDist "\nWpisz wartość poziomu terenu w tym punkcje: " RzednaT1) OpisT1 (getstring T "\nWpisz opis na profilu do tego punktu: ") Punkt1 (polar (polar Punkt0 0 (* ZmianaSkalipoz (distance PunktT0 PunktT1))) (/ pi 2) (* ZmianaSkalipio (* (- RzednaT1 RzednaT0) 100))) );setq (setvar "clayer" "IS_opisy") (command "_.text" (polar (polar Punkt1 pi 5) (/ pi 2) 50) "18" "90" OpisT1) (setvar "clayer" "IS_tabela") (command "_line" Punkt1 (polar Punkt1 (/ pi 2) 500) "") (setvar "clayer" "IS_teren") (command "_line" Punkt0 Punkt1 "") (setq PunktT0 PunktT1) (setq PunktT1 (getpoint PunktT0 "\nKliknij kolejny punkt na rzucie.")) );while );defun rzut2prof Pętla while zachowuje się jakoś dziwnie pod zwcadem 2011. Polecenie getpoint nie pozwala na wciśnięcie Prawego Przycisku Myszy i wyjście z pętli. Wyświetla się komunikat: "A numeric value is needed. Please try again:" i jedynym wyjściem jest wciśnięcie ESC co niestety całkowicie przerywa funkcję. Może ktoś wie czemu getpoint nie chce przyjąć ENTERA, czy to błąd w ZWCAD2011 czy coś nie tak jest w moim lispie? Pod Academ działa prawidłowo. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 20 Stycznia 2011 Zgłoś Udostępnij Opublikowano 20 Stycznia 2011 Jak na mój pierwszy rzut oka, to wygląda, jakby jakieś śmieci zostały z poprzedniego użycia initget. Proszę spróbować przed getpoit, użyć initget. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gruzin Opublikowano 20 Stycznia 2011 Autor Zgłoś Udostępnij Opublikowano 20 Stycznia 2011 (initget 128) pomogło, wstawiłem je dwukrotnie. (defun c:rzut2prof ( / Punkt0 Punkt1 PunktT0 PunktT1 RzednaT0 RzednaT1 OpisT1 ZmianaSkalipoz ZmianaSkalipio) ;=========================================================================== ; wybieramy Styl tekstu IS_SIMPLEX jako aktualny lub gdy go nie ma tworzymy go i ustawiamy jako aktualny (if (tblsearch "Style" "IS_SIMPLEX") (command "_textstyle" "IS_SIMPLEX") (progn (command "_-style" "TEMP-STYLE" "simplex.shx" "" "0.7" "" "" "" "") (command "_rename" "_S" "TEMP-STYLE" "IS_SIMPLEX") (command "_textstyle" "IS_SIMPLEX") );progn );if ;=========================================================================== ;=========================================================================== ; wybieramy warstwe IS_tabela jako aktualną lub gdy jej nie ma tworzymy ją (if (tblsearch "Layer" "IS_tabela") (command "_clayer" "IS_tabela") (progn (command "_layer" "_N" "TEMP-LAYER" "_C" "11" "TEMP-LAYER" "_L" "Continuous" "TEMP-LAYER" "_LW" "0.13" "TEMP-LAYER" "") (command "_rename" "_LA" "TEMP-LAYER" "IS_tabela") );progn );if ; wybieramy warstwe IS_tabela jako aktualną lub gdy jej nie ma tworzymy ją (if (tblsearch "Layer" "IS_teren") (command "_clayer" "IS_teren") (progn (command "_layer" "_N" "TEMP-LAYER" "_C" "61" "TEMP-LAYER" "_L" "Continuous" "TEMP-LAYER" "_LW" "0.13" "TEMP-LAYER" "") (command "_rename" "_LA" "TEMP-LAYER" "IS_teren") );progn );if ; wybieramy warstwe IS_opisy jako aktualną lub gdy jej nie ma tworzymy ją (if (tblsearch "Layer" "IS_opisy") (command "_clayer" "IS_opisy") (progn (command "_layer" "_N" "TEMP-LAYER" "_C" "41" "TEMP-LAYER" "_L" "Continuous" "TEMP-LAYER" "_LW" "0.13" "TEMP-LAYER" "") (command "_rename" "_LA" "TEMP-LAYER" "IS_opisy") (command "_clayer" "IS_opisy") );progn );if ;========================================================================= ;=========================================================== (setvar "dimzin" 0) ;ustawienie dokładności cyfr "pełnychg" na dokładność z przecinkami - bez tego poziom 0,0 bedzie bez przecinków podawany (setvar "osnapcoord" 1) ;zmienia sposób przyciągania do punktów, aby nie dociągało wstawianych skryptem elementów do elementów istniejących ;============================================================= ;=========================================================================== (if (null RzednaT1) (setq RzednaT1 112)) (if (null ZmianaSkalipoz) (setq ZmianaSkalipoz 1)) (if (null ZmianaSkalipio) (setq ZmianaSkalipio 1)) ;=========================================================================== (setq Punkt1 (getpoint "\nKliknij pierwszy punkt \"terenu\" od którego rysowany będzie profil (na profilu): ") ZmianaSkalipoz (UIGetDist "\nWpisz o ile razy zmienić skalę POZIOMĄ profilu w stosunku do rzutu (1 - brak zmiany, 0.2 - zmniejszenie 5x długości profilu): " ZmianaSkalipoz) ZmianaSkalipio (UIGetDist "\nWpisz o ile razy zmienić skalę PIONOWĄ profilu w stosunku do skali 1:100 (1 - brak zmiany, 2 - skala 1:50, itp): " ZmianaSkalipio) PunktT1 (getpoint "\nKliknij pierwszy punkt na rzucie.") RzednaT1 (UIGetDist "\nWpisz wartość poziomu terenu w tym punkcje: " RzednaT1) OpisT1 (getstring T "\nWpisz opis na profilu do tego punktu: ") );setq (setvar "clayer" "IS_opisy") (command "_.text" (polar (polar Punkt1 pi 5) (/ pi 2) 30) "18" "90" OpisT1) (setvar "clayer" "IS_tabela") (command "_line" Punkt1 (polar Punkt1 (/ pi 2) 500) "") (setvar "clayer" "IS_opisy") (command "_.text" (polar (polar Punkt1 (* 1.5 pi) (- (* (+ (rem RzednaT1 5) 5) 100) 5)) 0 10) "18" "0" (rtos (- RzednaT1 (/ (+ (rem RzednaT1 5) 5) ZmianaSkalipio)) 2 2)) (command "_circle" (polar Punkt1 (* 1.5 pi) (* (+ (rem RzednaT1 5) 5) 100)) "_d" "10") (initget 128) (setq PunktT0 PunktT1 PunktT1 (getpoint PunktT0 "\nKliknij kolejny punkt na rzucie.") );setq -------------------------------------------- (while PunktT1 (setq Punkt0 Punkt1 RzednaT0 RzednaT1 RzednaT1 (UIGetDist "\nWpisz wartość poziomu terenu w tym punkcje: " RzednaT1) OpisT1 (getstring T "\nWpisz opis na profilu do tego punktu: ") Punkt1 (polar (polar Punkt0 0 (* ZmianaSkalipoz (distance PunktT0 PunktT1))) (/ pi 2) (* ZmianaSkalipio (* (- RzednaT1 RzednaT0) 100))) );setq (setvar "clayer" "IS_opisy") (command "_.text" (polar (polar Punkt1 pi 5) (/ pi 2) 50) "18" "90" OpisT1) (setvar "clayer" "IS_tabela") (command "_line" Punkt1 (polar Punkt1 (/ pi 2) 500) "") (setvar "clayer" "IS_teren") (command "_line" Punkt0 Punkt1 "") (initget 128) (setq PunktT0 PunktT1) (setq PunktT1 (getpoint PunktT0 "\nKliknij kolejny punkt na rzucie.")) );while );defun rzut2prof Dziwi mnie tylko trochę fakt, że w ZwCadzie 2010 (oraz AutoCadzie 2010) działa bez problemu a w najnowszym ZwCad2011 nie chce działać bez (initget 128). Może to jakiś błąd w ZwCadzie? Cały plik lisp (jeszcze nie poprawiony) można sobie ściągnąć tutaj: http://instalacjesanitarne.com/download/PROFILEK.zip[/code] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gruzin Opublikowano 20 Stycznia 2011 Autor Zgłoś Udostępnij Opublikowano 20 Stycznia 2011 Załączam plik do testu. Są w nim dwie funkcje TKS (działa OK) oraz RRR, która nie działa bo getpoint nie chce przyjąć entera. W Zwcadzie 2010 działa OK, w 2011 nie działa. Obie funkcje mają pętlę while którą można (teoretycznie) zakończyć poprzez "niekliknięcie" punktu w funkcji getpoint, ale w RRR nie chce to działać i nie wiem czemu tak jest. pozdrawiam ; funkcja: RRR nie działa ; getpoint nie przyjmuje entera lub prawego przycisku myszy więc nie chce lisp wyjść z pętli while ;========================================================================= ; autor funkcji "kruszynski" z forum.projektuje.net (defun UIGetDist (msg DefVal / SelDist) (setq SelDist (vl-catch-all-apply 'getdist (list (strcat msg "<" (rtos DefVal ) ">:")))) (if (not (vl-catch-all-error-p SelDist)) (progn (if SelDist (setq OutVal SelDist ) (setq OutVal DefVal ) ) )) OutVal );defun ;========================================================================= ;========================================================================= (defun kreski (P1 P2 odsuniecie dlugosckreski / katalfa punkttemp punkttemp1 punkttemp2 styllinii grubosc) ;kreski- polecenie rysuje prostopadłe kreseczki na linii od P1 do P2 (setq styllinii (getvar "celtype") grubosc (getvar "celweight") );setq ; styl linii ustawic jako continuous (command "_celtype" "Continuous") ; grubość ustawić jako 0,15 (command "_celweight" 015) (if (> (distance P1 P2) (* 2 odsuniecie)) (progn (setq katalfa (angle P1 P2) punkttemp (polar P1 katalfa odsuniecie) punkttemp1 (polar punkttemp (- katalfa (/ pi 2)) (/ dlugosckreski 2)) punkttemp2 (polar punkttemp (+ katalfa (/ pi 2)) (/ dlugosckreski 2)) );setq (command "_line" punkttemp1 punkttemp2 "") (setq katalfa (angle P2 P1) punkttemp (polar P2 katalfa odsuniecie) punkttemp1 (polar punkttemp (- katalfa (/ pi 2)) (/ dlugosckreski 2)) punkttemp2 (polar punkttemp (+ katalfa (/ pi 2)) (/ dlugosckreski 2)) );setq (command "_line" punkttemp1 punkttemp2 "") );progn do długich kresek (progn (setq katalfa (angle P1 P2) punkttemp (polar P1 katalfa (/ (distance P1 P2) 2)) punkttemp1 (polar punkttemp (- katalfa (/ pi 2)) (/ dlugosckreski 2)) punkttemp2 (polar punkttemp (+ katalfa (/ pi 2)) (/ dlugosckreski 2)) );setq (command "_line" punkttemp1 punkttemp2 "") );progn do krótkich kresek );if (command "_celtype" styllinii "_celweight" grubosc );command );defun kreski ;========================================================================= ;========================================================================= (defun c:RRR ( / Punkt0 Punkt1 PunktT0 PunktT1 RzednaT0 RzednaT1 OpisT1 ZmianaSkalipoz ZmianaSkalipio) ;=========================================================================== ; wybieramy Styl tekstu IS_SIMPLEX jako aktualny lub gdy go nie ma tworzymy go i ustawiamy jako aktualny (if (tblsearch "Style" "IS_SIMPLEX") (command "_textstyle" "IS_SIMPLEX") (progn (command "_-style" "TEMP-STYLE" "simplex.shx" "" "0.7" "" "" "" "") (command "_rename" "_S" "TEMP-STYLE" "IS_SIMPLEX") (command "_textstyle" "IS_SIMPLEX") );progn );if ;=========================================================================== ;=========================================================================== ; wybieramy warstwe IS_tabela jako aktualną lub gdy jej nie ma tworzymy ją (if (tblsearch "Layer" "IS_tabela") (command "_clayer" "IS_tabela") (progn (command "_layer" "_N" "TEMP-LAYER" "_C" "11" "TEMP-LAYER" "_L" "Continuous" "TEMP-LAYER" "_LW" "0.13" "TEMP-LAYER" "") (command "_rename" "_LA" "TEMP-LAYER" "IS_tabela") );progn );if ; wybieramy warstwe IS_tabela jako aktualną lub gdy jej nie ma tworzymy ją (if (tblsearch "Layer" "IS_teren") (command "_clayer" "IS_teren") (progn (command "_layer" "_N" "TEMP-LAYER" "_C" "61" "TEMP-LAYER" "_L" "Continuous" "TEMP-LAYER" "_LW" "0.13" "TEMP-LAYER" "") (command "_rename" "_LA" "TEMP-LAYER" "IS_teren") );progn );if ; wybieramy warstwe IS_opisy jako aktualną lub gdy jej nie ma tworzymy ją (if (tblsearch "Layer" "IS_opisy") (command "_clayer" "IS_opisy") (progn (command "_layer" "_N" "TEMP-LAYER" "_C" "41" "TEMP-LAYER" "_L" "Continuous" "TEMP-LAYER" "_LW" "0.13" "TEMP-LAYER" "") (command "_rename" "_LA" "TEMP-LAYER" "IS_opisy") (command "_clayer" "IS_opisy") );progn );if ;========================================================================= ;=========================================================== (setvar "dimzin" 0) ;ustawienie dokładności cyfr "pełnychg" na dokładność z przecinkami - bez tego poziom 0,0 bedzie bez przecinków podawany (setvar "osnapcoord" 1) ;zmienia sposób przyciągania do punktów, aby nie dociągało wstawianych skryptem elementów do elementów istniejących ;============================================================= ;=========================================================================== (if (null RzednaT1) (setq RzednaT1 112)) (if (null ZmianaSkalipoz) (setq ZmianaSkalipoz 1)) (if (null ZmianaSkalipio) (setq ZmianaSkalipio 1)) ;=========================================================================== (setq Punkt1 (getpoint "\nKliknij pierwszy punkt \"terenu\" od którego rysowany będzie profil (na profilu): ") ZmianaSkalipoz (UIGetDist "\nWpisz o ile razy zmienić skalę POZIOMĄ profilu w stosunku do rzutu (1 - brak zmiany, 0.2 - zmniejszenie 5x długości profilu): " ZmianaSkalipoz) ZmianaSkalipio (UIGetDist "\nWpisz o ile razy zmienić skalę PIONOWĄ profilu w stosunku do skali 1:100 (1 - brak zmiany, 2 - skala 1:50, itp): " ZmianaSkalipio) PunktT1 (getpoint "\nKliknij pierwszy punkt na rzucie.") RzednaT1 (UIGetDist "\nWpisz wartość poziomu terenu w tym punkcje: " RzednaT1) OpisT1 (getstring T "\nWpisz opis na profilu do tego punktu: ") );setq (setvar "clayer" "IS_opisy") (command "_.text" (polar (polar Punkt1 pi 5) (/ pi 2) 30) "18" "90" OpisT1) (setvar "clayer" "IS_tabela") (command "_line" Punkt1 (polar Punkt1 (/ pi 2) 500) "") (setvar "clayer" "IS_opisy") (command "_.text" (polar (polar Punkt1 (* 1.5 pi) (- (* (+ (rem RzednaT1 5) 5) 100) 5)) 0 10) "18" "0" (rtos (- RzednaT1 (/ (+ (rem RzednaT1 5) 5) ZmianaSkalipio)) 2 2)) (command "_circle" (polar Punkt1 (* 1.5 pi) (* (+ (rem RzednaT1 5) 5) 100)) "_d" "10") (setq PunktT0 PunktT1 PunktT1 (getpoint PunktT0 "\nKliknij kolejny punkt na rzucie.") );setq -------------------------------------------- (while PunktT1 (setq Punkt0 Punkt1 RzednaT0 RzednaT1 RzednaT1 (UIGetDist "\nWpisz wartość poziomu terenu w tym punkcje: " RzednaT1) OpisT1 (getstring T "\nWpisz opis na profilu do tego punktu: ") Punkt1 (polar (polar Punkt0 0 (* ZmianaSkalipoz (distance PunktT0 PunktT1))) (/ pi 2) (* ZmianaSkalipio (* (- RzednaT1 RzednaT0) 100))) );setq (setvar "clayer" "IS_opisy") (command "_.text" (polar (polar Punkt1 pi 5) (/ pi 2) 50) "18" "90" OpisT1) (setvar "clayer" "IS_tabela") (command "_line" Punkt1 (polar Punkt1 (/ pi 2) 500) "") (setvar "clayer" "IS_teren") (command "_line" Punkt0 Punkt1 "") (setq PunktT0 PunktT1 PunktT1 (getpoint PunktT0 "\nKliknij kolejny punkt na rzucie.") );setq );while );defun RRR ;========================================================================= ;========================================================================= (defun c:TKS (/ P1 P12 P2 P3 CzyKonczyc) ;========================================================================= (command "_dimzin" "0") ;ustawienie dokładności cyfr "pełnychg" na dokładność z przecinkami - bez tego poziom 0,0 bedzie bez przecinków podawany (command "_osnapcoord" "1") ;zmienia sposób przyciągania do punktów, aby nie dociągało wstawianych skryptem elementów do elementów istniejących ;========================================================================= ;========================================================================= (if (null odsuniecie) (setq odsuniecie 14.143)) (if (null dlugosckreski) (setq dlugosckreski 12.00)) ;========================================================================= ;========================================================================= (setq odsuniecie (UIGetDist "\nPodaj odsunięcie od końca: " odsuniecie) dlugosckreski (UIGetDist "\nWpisz długość kreseczki: " dlugosckreski) );setq ;========================================================================= (setq P1 (getpoint "\nKliknij pierwszy punkt trasy kanalizacji.") P2 (getpoint P1 "\nKliknij drugi punkt trasy kanalizacji.") P3 (getpoint P2 "\nKliknij kolejny punkt trasy kanalizacji.") );setq ;========================================================================= (while P3 (if (and (> (distance P1 P2) 35) (> (distance P2 P3) 35) (or (< (abs (rem (- (angle P2 P1) (angle P2 P3)) (/ pi 2))) 0.017) (> (abs (rem (- (angle P2 P1) (angle P2 P3)) (/ pi 2))) 1.553))) (progn (setq P12 (polar P2 (angle P2 P1) 20) P2 (polar P2 (angle P2 P3) 20)) (command "_line" P1 P12 P2 "") (kreski P1 P12 odsuniecie dlugosckreski) (kreski P12 P2 odsuniecie dlugosckreski) );progn na tak (progn (command "_line" P1 P2 "") (kreski P1 P2 odsuniecie dlugosckreski) );progn na nie );if (setq P1 P2 P2 P3 P3 (getpoint P2 "\nKliknij kolejny punkt trasy kanalizacji.") );setq );while ;========================================================================= (initget 7 "Tak Nie") (setq CzyKonczyc (getkword "\nDorysować kanał do końca? :") ) (if (= CzyKonczyc "Tak") (progn (command "_line" P1 P2 "") (kreski P1 P2 odsuniecie dlugosckreski) );progn );if );defun TKS ;========================================================================= Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 24 Stycznia 2011 Zgłoś Udostępnij Opublikowano 24 Stycznia 2011 Proszę spróbować wstawić initget w tym kodzie w liniach 155 i 175, w taki sposób: (setq PunktT0 PunktT1 ) (initget 0) (setq PunktT1 (getpoint PunktT0 "\nKliknij kolejny punkt na rzucie.") U mnie zadziałało na 2011 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gruzin Opublikowano 25 Stycznia 2011 Autor Zgłoś Udostępnij Opublikowano 25 Stycznia 2011 Maksymalnie uproszczony plik lisp (defun c:rzut3prof () (setq PunktT1 (getpoint "\nKliknij pierwszy punkt: ") PunktT0 PunktT1 );setq (while PunktT1 (setq OpisT1 (getstring "\nWpisz opis do tego punktu: ")) (setq PunktT1 (getpoint PunktT0 "\nKliknij kolejny punkt na rzucie.") ) );while );defun rzut3prof U mnie nie da się wyjść z takiej pętli prawym przyciskiem myszy. Skasowanie linijki: (setq OpisT1 (getstring "\nWpisz opis do tego punktu: ")) naprawia błąd w Zwcadzie 2011 i pętla działa poprawnie. Czy tak powinno być? Autocad 2010 oraz Zwcad 2010 nie sprawiają takiego problemu. Oczywiście ostatnia porada z (initget 0) rozwiązuje problem, ale wydaje mi się, że powinno działać bez tego. Getstring chyba coś psuje w ustawieniach. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 25 Stycznia 2011 Zgłoś Udostępnij Opublikowano 25 Stycznia 2011 OK, rzeczywiście nie powinno tak być. Zgłoszę to do supportu Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gruzin Opublikowano 25 Stycznia 2011 Autor Zgłoś Udostępnij Opublikowano 25 Stycznia 2011 Wielkie dzięki. pozdrawiam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gruzin Opublikowano 14 Marca 2011 Autor Zgłoś Udostępnij Opublikowano 14 Marca 2011 W wersji ZwCad 2011 z dnia 2011 02 28 błąd został naprawiony. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi