Günaydın.
Bir lisp yazmaya çalışıyorum. Her şey tamam gibi fakat iki çözemediğim durum var.
Lispim daireyi seçtiriyor sol ve sağ mesafelerini kullanıcıdan istiyor polar ile noktaları bulup çizgi çizdiriyor.
1.Kullanıcının daha önce girdiği değeri tekrar anımsatmak.
2.Boş nesne seçiminde komuttan çıkmadan nesne seçtirmeyi devam ettirmek. (Boş seçimde
herhangi bir hata vermediği için if (= hata nil) denklemi ile boş seçimi yönlendiremedim.)
Yardımcı olursanız sevinirim.
ilk yazdığım lisp aşağıda
Kod:
(defun c:ya ()
(setvar "osmode" 0)
(setq sol (getreal "\nSol Mesafeyi Giriniz...:"))
(setq sag (getreal "\nSag Mesafeyi Giriniz...:"))
(while
(setq sec (entsel "\Daireyi Secin...:"))
(setq mer (cdr (assoc 10 (entget (car sec)))))
(setq aci0 (angtof "0" 0))
(setq aci180 (angtof "180" 0))
(setq soll (polar mer aci180 sol))
(setq sagg (polar mer aci0 sag))
(command "_line" soll sagg "")
)
(setvar "osmode" 15359)
(princ)
)
Kullanıcının daha önce girdiği değeri tekrar anımsatmak için yazdığım lisp aşağıda
Kod:
(defun c:ya ()
(setvar "osmode" 0)
(progn
(if (not sole) (setq sol 100))
(if (setq sol (getreal (strcat "\nSol Mesafeyi Giriniz...: <" (rtos sole) ">")))
(setq sole sol)(setq sol sole))
)
(progn
(if (not sage) (setq sag 100))
(if (setq sag (getreal (strcat "\nSag Mesafeyi Giriniz...: <" (rtos sage) ">")))
(setq sage sag) (setq sag sage))
)
(while
(setq sec (entsel "\Daireyi Secin...:"))
(setq mer (cdr (assoc 10 (entget (car sec)))))
(setq aci0 (angtof "0" 0))
(setq aci180 (angtof "180" 0))
(setq soll (polar mer aci180 sol))
(setq sagg (polar mer aci0 sag))
(command "_line" soll sagg "")
)
(setvar "osmode" 15359)
(princ)
)