Boucle dans visual lisp

Fermé
Fabien - 17 sept. 2004 à 11:30
 Fabien - 20 sept. 2004 à 08:47
Bonjour tout le monde,

Voila je suis utilisateur Autocad et je voudrait utilisé visual lisp, donc j'ai cherche bidouillé, je suis arrivé a faire en gros ce que je voulait mais reste un petit détail ou il me faudrait vraiment de l'aide.

Voila dans mon prog je demande a l'utilisateur de rentrer une valeur dans la variable que j'ai nommer "nbrf"
Puis cette variable me sert dans une autre formule.

je v vous donner le code pour mieux comprendre.
[code]
(setq nbrf (getreal "\nentrez le nombre de folio:"))
(setq dist 470)
(setq p1 (list (+ 0(* dist (- nbrf 1))) 0))
[/code]
voila juste une partie du code
ET voila ce que je voudrait faire.

il faut que la troisième ligne ce repete le nombre de fois que l'utilisateur a dit dans la variable nbrf
Donc si nbrf=3 donc la ligne est répéte 3fois

et il faut aussi que a chaque fois qu'il la répéte il augmente le chiffre de 1, je m'esplique:
1er fois répété: nbrf =1
2èmé fois répété: nbrf=2
3éme fois répété: nbrf=3
jusqu'au nombre de fois donner par l'utilisateur.

donc comment cette boucle en lisp et es qui faut que j'utilise une autre variable?

desolé je suis pas tres clair mais comme je vous est dit je connait rein en programmation, donc je connait pas les therme exact.

merci pour vos réponse
A voir également:

2 réponses

Maximilien DESMESTAIRE Messages postés 94 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 1 juin 2005 118
18 sept. 2004 à 19:59
Salut

la réponse est OUI tu dois faire appel à une autre variable et faire une boucle Tant que (<= [Nouvelle Variable] nbfr) décrite par la fonction "While" je te conseille d'utiliser la fonction d'aide AutoCAD
Toute la documentation avec ce mots clés

A laisser votre OS en Administrateur
vous en perdez vos cheveux :p
0
Salut,

Merci pour ta reponse et ca marche en plus voici le code :

;Début de la boucle
  (while (<= i nbrf)
 
    ;Attribution de la variables P1
    (setq p1 (list (+ (car p0)(* dist (- i 1))) (cadr p0)))
   
    ;Attribution des variables P2, P3, P4, P5 et P6 depuis P1
    (setq p2 (list (+ (car p1) 420)(+ (cadr p1) 297)))
    (setq p3 (list (+ (car p1) 10)(+ (cadr p1) 10)))
    (setq p4 (list (+ (car p1) 410)(+ (cadr p1) 40)))
    (setq p5 (list (+ (car p1) 10)(+ (cadr p1) 45)))
    (setq p6 (list (+ (car p1) 410)(+ (cadr p1) 287)))
 
    ;Dessin du cadre folio
    (command "rectang" p1 p2"")
    (command "rectang" p3 p4"")
    (command "rectang" p5 p6"")

    ;Rajoute +1 à i
    (setq i (1+ i))

  ;Fin de la boucle
  ) 


bon c qu'une petite partie du prog mais ca montre la boucle.

Merci encor une fois a toi Maximilien
0