l56 Posté(e) le 9 avril 2008 Posté(e) le 9 avril 2008 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
Patrick_35 Posté(e) le 9 avril 2008 Posté(e) le 9 avril 2008 Salut Oui, avec une gestion des erreurs type *error*Ou avec la fonction vl-catch-all-apply comme dans ce sujet @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
l56 Posté(e) le 9 avril 2008 Auteur Posté(e) le 9 avril 2008 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.
Patrick_35 Posté(e) le 9 avril 2008 Posté(e) le 9 avril 2008 Re Je ne comprends pas ton besoin :casstet: Si tu as besoin de gérer la touche echap, c'est dans un lisp, sinon, tu n'es plus dans le bon forum. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
l56 Posté(e) le 9 avril 2008 Auteur Posté(e) le 9 avril 2008 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
Patrick_35 Posté(e) le 9 avril 2008 Posté(e) le 9 avril 2008 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 PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
l56 Posté(e) le 9 avril 2008 Auteur Posté(e) le 9 avril 2008 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 ?
lili2006 Posté(e) le 9 avril 2008 Posté(e) le 9 avril 2008 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/
Patrick_35 Posté(e) le 9 avril 2008 Posté(e) le 9 avril 2008 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 PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
l56 Posté(e) le 10 avril 2008 Auteur Posté(e) le 10 avril 2008 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+
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant