LISP programme pour calculer une aire "help"

Fermé
jp - 24 avril 2012 à 19:07
 jp - 26 avril 2012 à 13:33
Bonjour,
Je cherche à créer un programme me permettant de calculer une surface
mais j'ai un bug
j'ai une boucle sans fin
je ne fais que renseigné le point pt0
j'aimerai que lorsque j'ai fini de renseigné les points taper "Fin" ou " F"
pour ensuite passe à

(command "-contour" ptext "")
(command "aire" "o" "@")
(setq index (strcat "S="(rtod (getvar "aera") 2 2) "m²"))
(command "texte" ptext 0.5 "" index "")



(defun c:ZoneStock()
(setvar "osmode" 0)
(Prompt "\nCliquer le contour de l'aire de stockage")
(setq pt0(getpoint "\nDonner le 1er point:"))
(command "polylign" pt0 "la" 0 0)
(terpri)(setq rep "F"); on saute une ligne
(while (or ( = rep "F") ( = rep "FIN"))
(setq pt (getpoint "\nCliquer le contour de la zone(Return pour FIN): "))
(command pt)
)
(setq ptext (getpoint "\nSpécifier un point intérieur:"))
(command "-contour" ptext "")
(command "aire" "o" "@")
(setq index (strcat "S="(rtod (getvar "aera") 2 2) "m²"))
(command "texte" ptext 0.5 "" index "")


)



1 réponse

Bonjour,

Corrections avec quelques modifs

(defun c:ZoneStock() 
(setvar "osmode" 0) 
(Prompt "\nCliquer le contour de l'aire de stockage") 
(setq pt0(getpoint "\nDonner le 1er point:")) 
(command "polylign" pt0 "la" 0 0) 
(terpri)(setq rep "F"); on saute une ligne 
(while (= rep "F")
   (setq pt (getpoint pt0 "\nCliquer le contour de la zone(Return pour FIN): ")) 
   (command pt)
   (setq pt0 pt)
   (if (= pt nil) (setq rep "X")) 
)
(command "pedit" "@" "c" "") 
(setq ptext (getpoint "\nSpécifier un point intérieur:")) 
;(command "-contour" ptext "") 
(command "aire" "o" "@") 
(setq index (strcat "S="(rtos (getvar "area") 2 2) "m²")) 
(command "texte" ptext 0.5 "" index) 
)


A+ ;)
0
Merci impec
0