Aller au contenu

Gérer la touche ECHAP


Messages recommandés

Posté(e)

Bonjour,

 

Est-il possible de rendre inactive la touche ECHAP à un endroit précis d'un programme lisp et de la rendre à nouveau active à un autre moment

 

merci

Posté(e)

Je pensais à quelque chose de plus radical: l'appuis sur la touche ECHAP serait sans conséquence, comme ci elle n'existait pas.

Un petit programme qui agirait plutot sur Windows que dans AutoCAD.

 

 

Posté(e)

oui, dans un lisp.

Mais si tu passes par *error", cela veut dire que la touche ECHAP à été enfoncé or moi je voudrais que la touche ECHAP sois ignoré, comme si elle n'avait jamais été touché, que l'utilisateur ne puisse pas interrompre le lisp

Posté(e)

Oui, donc avec ce que je t'ai donné comme première réponse.

 

exemple

(defun ferr(msg)
 (ma_fonction)
)

(setq err *error* *error* ferr)
(ma_fonction)
(setq *error* err)

ou

(while (not (vl-catch-all-error-p (vl-catch-all-apply (quote ma_fonction) (list arguments_ma_fonction)))))

 

Perso, je préfère vl-catch-all-apply

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Je ne comprends pas.

Imagine un morceaux de code du genre:

 

 (command "_line" "0,0" "1,1" pause "")

 

Bon, passons sur la qualité du code, je pourrais faire un getpoint avant et remplacer ma pause .....

 

Quand l'utilisateur du code en sera à "pause", il devra donc cliquer un dernier point et la commande ligne se terminera. Mais il pourra aussi appuyer sur la touche ECHAP, et c'est bien cela que je souhaite éviter pour que l'utilisateur n'est pas d'autre choix que de cliquer un point (ou valider.)

donc avant cette ligne de code, j'aimerai déactiver la touche ECHAP.

Est-ce possible ?

Posté(e)

Bonsoir à toutes et tous,

 

Bonuscad m'avait proposé cette commande pour un script diaporama : ( Pour la pause [surligneur] (grread)[/surligneur])

 

  ;Commencer le diaporama, charger :
Affclich
PARKING-A1-1-200
[surligneur] (grread)[/surligneur]
Affclich
courbes-de-niveau
(grread)
Affclich
DETAIL1
(grread)
Affclich
DETAIL2
(grread)
Affclich
DETAIL3
(grread)
Rscript 

 

(Gile), en lisp avait proposé ça => (Pour info ou donner des idées,...!)

 

 (defun c:diaporama (/ lst)
(setq lst '("PARKING-A1-1-200.sld"
"courbes-de-niveau.sld"
"DETAIL1.sld"
"DETAIL2.sld"
"DETAIL3.sld"	    
)
)
(command "_.vslide" (car lst))
(while (progn (initget "p") (setq p (getpoint)))
(if (= "p" p)
(setq lst (cons (last lst) (reverse (cdr (reverse lst)))))
(setq lst (append (cdr lst) (list (car lst))))
)
(command "_.vslide" (car lst))
)
(redraw)
(princ)
) 

Civil 3D 2025 - COVADIS_18.3b

https://www.linkedin...3%ABt-95313341/

Posté(e)

Toute utilisation d'un command est particulier à traiter (un vl-cmdf est plus facile en vlisp).

Voici un exemple qui pose une question, et impossible de sortir avec echap, sauf en répondant quelque chose.

 

(while (or (vl-catch-all-error-p (setq rep (vl-catch-all-apply 'getstring (list "Une question : "))))(= rep "")))

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Merci lili2006 pour ta contribution.

Mais c'est la boucle de Patrick_35 qui est la réponse idéale à mon probleme.

 

Merci encore Patrick

 

a+

 

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é