Bonjour, J'ai consulté pas mal d'information sur ce forum que je trouve très intéressant au passage. Le problème que je rencontre concerne le code suivant supposé créer des cercles à intervalle régulier (qui dépend de la distance entre pt1 et pt2, qui sont des points sélectionnés préalablement par l'utilisateur): (setq DistCalc (sqrt (+ (expt (- (car pt1) (car pt2)) 2) (expt (- (cadr pt1) (cadr pt2)) 2))))
(setq NbC (- (fix (/ DistCalc 3.0)) 1))
(setq DistC (/ DistCalc (+ NbC 1)))
(setq count 1)
(while (< count NbC)
(if (eq *AxC* 1)
(progn
(command "_circle" (list (+ (car pt1) (* count DistC)) (cadr pt1) 0) 1)
(setq count (+ count 1))
)
)
(if (= *AxC* 2)
(progn
(command "_circle" (list (car pt1) (+ (cadr pt1) (* count DistC)) 0) 0.3)
(setq count (+ count 1))
)
) Je pense que le problème vient de la boucle while et/ou de la compatibilité du format des variables. Par exemple, même le code suivant ne fonctionne pas (j'obtient bien 6 cercles mais superposés 2 à 2... plus étrange, si je change le rayon des cercles à 0.3 au lieu de 1.0, alors ça fonctionne et j'obtient bien les 6 cercles ! (defun c:0CircWhile (/ Nb ii)
(setq
ii 0
Nb 6)
(while (< ii Nb)
(command "_circle" (list (+ ii 2) 0 0) 1.0)
(setq ii (1+ ii))
)
(princ)
) Merci d'avance pour vos clarifications. Au passage, si vous avez des suggestions de code pour permettre la création des cercles même si les points ne sont pas parallèles à X ou Y, je suis preneur ;).