Aller au contenu

[Résolu] Petit souci de sortie d'un (while


Messages recommandés

Posté(e)

Bonjour à tous.

 

Voilà, j'ai un petit souci de sortie d'un (while dans une routine.

 

C'est un lisp qui demande à l'utilisateur l'orientation du DWG tout en gardant le SCU général.

 

Deux possibilités :

1. cliquer un point qui sert de base au futur angle et un deuxième clique pour avoir la nouvelle orientation,

2. taper "h" à l'invite de commande pour revenir à une orientation type Vue\Haut.

 

Mon problème, je commence par un (while mais je n'en sors pas. Si je répond "h" à l'invite, tout ce passe bien mais le lisp redemande le point de départ...

 

Si quelqu'un a une astuce, un conseil... Je suis preneur...

 

Voici l'extrait de code :

  (while (/= (type p1) 'LIST)
   (initget 1 "Horizontale")
   (setq p1
          (getpoint "\nPoint de départ ou [Horizontale] <Horizontale> : "
          ) ;_ Fin de getpoint
   ) ;_ Fin de setq
   (if (= p1 "Horizontale")
     (progn (initget 7)
            (command "-vue" "g" "h")
            (command "snapang" "0")
            (vlax-ldata-put "DenisH" "AngSCU" 0)
     ) ;_ Fin de progn
     (progn
       (setq vortho (getvar "orthomode"))
       (setvar "orthomode" 0)
       (setq p2 (getpoint p1 (strcat "\tDirection des X :")))
       (setvar "orthomode" vortho)
       (setvar "snapang" (angle p1 p2))
       (setq angscu (- 500 (* 200 (/ (angle p1 p2) pi))))
       (if (<= angscu 400)
         (- angscu 400)
       ) ;_ Fin:if
       (setq p3 (polar p1 (+ (angle p1 p2) (/ pi 2)) 1000))
       (vlax-ldata-put "DenisH" "AngSCU" angscu)
       (princ (strcat "\tNouvel angle de vue : " (rtos angscu 2 2) "gr")
       ) ;_ Fin de princ
       (command "_ucs" "_z" p1 p3)
       (command "_plan" "courant")
       (command "_ucs" "_w")
       (setvar "snapmode" 0)
       (setvar "cmdecho" echo)
       (command "zoom" "_w" p1 p2)
     ) ;_ Fin de progn
   ) ;_ Fin de if
 ) ;_ Fin de while

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Salut,

 

c'est normal tu as mis "tant que type p1 est différent de liste"

"Horizontale" est différent de liste (c'est un texte) donc la boucle recommence.

Aide au téléchargement du cadastre dgfip-download-helper
Insertion de photos géolocalisées exif https://www.dropbox.com/s/gkf6o9ac2hxen97/exifscr.zip?dl=0
Script correction BUG SPDC V2, propriétaire département 21 et 22 : https://greasyfork.org/scripts/442400-spdcv2/code/SPDCV2.user.js

Posté(e)

Salut vincentp010,

 

J'ai bien compris ta remarque, j'ai donc modifier mon code :

...
 (while (and (/= p1 "Horizontale") (/= p1 "H") (/= p1 "h") (/= (type p1) 'LIST))
...

 

Mille mercis à toi.

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité