Aller au contenu

[résolu] Choisir sans interrompre


Messages recommandés

Bonjour,

Un petit problème que je n'arrive pas à résoudre.

(while (not (vl-catch-all-error-p (vl-catch-all-apply '(lambda ()
        (setq pt1 (getpoint "\n -> Premier Point: "))
		
        (setq pt2 (getpoint "\n -> Deuxième Point: "))
		
        (traitement_point pt1 pt2)
		
)))))

Je suis donc dans une boucle qui s'interrompt quand on Echap, dans laquelle je choisis 2 points.

Mon problème est que parfois, je suis incapable de prendre le 2ém point car je doit m'accrocher perpendiculairement à une projection.

Si la plupart son dessinées en pointillé, il est difficile de les anticiper toutes.

Je dois donc quitter la boucle pour dessiner le pointillé manquant.

Penser vous qu'il existe un moyen de tracer une polyligne optionnellement entre les deux setq sans quitter la boucle?  

Car cela me gène énormément dans mon traitement de devoir le faire en plusieurs fois.

Merci

 

 

Lien vers le commentaire
Partager sur d’autres sites

Salut Fraid

 

Moi je partirais sur un truc du genre :

 

(while 
  (not 
    (vl-catch-all-error-p 
      (vl-catch-all-apply 
        '(lambda () 
           (setq pt1 (getpoint "\n -> Premier Point: "))

           (initget "Poly")
           (setq pt2 (getpoint "\n -> Deuxième Point [Poly]: "))
           (cond 
             ((= pt2 "Poly")
              ;;dessine la polylign
              (setq pt2 (getpoint "\n -> Deuxième Point :"))
             )
           )
           
           (traitement_point pt1 pt2)
         )
      )
    )
  )
)

 

Comme ça Getpoint accepte de prendre un texte plutôt qu'un point, et dans le (cond) tu dessine ta polyligne, et redemande le pt2 (ou u te débouille pour déduire le pt2 de la poly que tu a dessiné)

nonconditionnelement
Vincent P.

Lispeur éternel débutant!
Autocad Map3D 2023
Covadis-Autopist 18.2

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Je ne comprends pas bien ce que tu cherches à faire, mais un (while (and ...)) permet de boucler simplement tant qu'aucune des expressions dans le (and ...) ne renvoie pas nil.

(while 
  (and
    (setq pt1 (getpoint "\n -> Premier Point: "))
    (if	(condition pt1)
	  (dessiner_polyligne pt1)
	  T
    )
    (setq pt2 (getpoint pt1 "\n -> Deuxième Point: "))
    (traitement_point pt1 pt2)
  )
)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Si le but est de prolonger une poly existante pour trouver une intersection, tu tape PROJ (comme tu ferais avec PER ou TAN) pour avoir l'intersection projetée.

 

Lispeur éternel débutant!
Autocad Map3D 2023
Covadis-Autopist 18.2

Lien vers le commentaire
Partager sur d’autres sites

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é