Angelo2449
Guest
salve a tutti,
in questo codice, il comando > if < non funziona come dovrebbe, infatti, anziché selezionare il caso corrente, li passa tutti!
la variabile > tipodrone < viene valorizzata in modo esatto come "zoom ", "pro" e "manuale".
forse lo osservo troppo, evidentemente la soluzione è lì, sotto il naso!
grazie.
in questo codice, il comando > if < non funziona come dovrebbe, infatti, anziché selezionare il caso corrente, li passa tutti!
la variabile > tipodrone < viene valorizzata in modo esatto come "zoom ", "pro" e "manuale".
forse lo osservo troppo, evidentemente la soluzione è lì, sotto il naso!
grazie.
Code:
;; @quadro
(defun quadro (/ tipodrone pa pb pc pd x2 y2 beta alfa gamma x1 y1 x2 y2 xb yb xc yc xd yd)
(runapp "c:\\autocadsupporto\\libertytre\\sceltadrone.exe " "c:\\autocadsupporto\\libertytre\\sceltadrone.tkn" :vlax-true)
(setq tipodrone (getcliptext))
(if (= tipodrone "nessuno")
(progn
(runapp "c:\\autocadsupporto\\libertytre\\funzioneinterrotta.exe " "c:\\autocadsupporto\\libertytre\\funzioneinterrotta.tkn" :vlax-true)
(vl-exit-with-error "uscita dal programma")
);;progn
);;if
(princ "\n")
(princ "tipodrone >>>>>>")
(princ tipodrone)
(princ "<<<<")
(princ "\n")
if (= tipodrone "zoom")
(progn
(setq pa (getpoint "\nclicca il primo punto - zoom (vertice alto a sinistra)"))
(setq pb (getpoint "\nclicca il secondo punto - zoom (vertice alto a destra)"))
);;progn
end if
if (= tipodrone "pro")
(progn
(setq pa (getpoint "\nclicca il primo punto - pro (vertice alto a sinistra)"))
(setq pb (getpoint "\nclicca il secondo punto - pro (vertice alto a destra)"))
);;progn
end if
if (= tipodrone "manuale")
(progn
(setq pa (getpoint "\nclicca il primo punto - manuale (vertice alto a sinistra)"))
(setq pb (getpoint "\nclicca il secondo punto - manuale (vertice basso a destra)"))
);;progn
end if
(setq alfa (angle pa pb))
(setq beta (- pi alfa))
(setq x2 (* 45.00 (cos alfa)))
(setq y2 (* 45.00 (sin alfa)))
(setq y1 (* 32.00 (cos beta)))
(setq x1 (* 32.00 (sin beta)))
(setq xd (+ (car pa) x1))
(setq yd (+ (cadr pa) y1))
(setq pd (list xd yd))
(setq xc (+ (car pd) x2))
(setq yc (+ (cadr pd) y2))
(setq pc (list xc yc))
(setq xb (+ (car pa) x2))
(setq yb (+ (cadr pa) y2))
(setq pb (list xb yb))
(command "_pline" pa pb pc pd pa "")
);;defun