jfcantin197733 Posté(e) le 29 avril 2010 Posté(e) le 29 avril 2010 Bonjour J'ai chercher et chercher mais j'ai rien trouvé pour faire un truc en VBA du style que s'il est inscrit dans la fenêtre de commande Command: *Cancel* alors...... Donc je me demande si en LISP c'est possible de détecter la touche ESC pour ensuite créer une condition en VBA. J'ai trouvé la fonction "grread" mais avec la touche ESC cela cancel la fonction. J'aimerais que lorsque je démarre mon code VBA je démarre un code LISP qui fonctione en même temps que mon code VBA et vérifie chaque touche de l'utilisteur. Si l'utilisateur appuis sur ESC alors cela retourne une valeur à mon code VBA et donc....... merci de votre aide
bseb67 Posté(e) le 30 avril 2010 Posté(e) le 30 avril 2010 Salut, VBA /= LISP, donc faut pas trop mélanger les choses (ou c'est moi qui mélange tes propos) Il existe deux fonctions vla à utiliser:(vl-catch-all-error-p (setq pti (vl-catch-all-apply 'getpoint (list "\nPoint d'insertion du texte :")))) Cet exemple demande un point à l'utilisateur,Si pendant cet appel, l'utilisateur fait "échap", vl-catch-all-error-p renvoie t.Sinon, pti contiendra les coordonnées du point cliqué. Autre point, il existe une variable autocad : "cmdactive" qui vaut 1 si une commandeest attente et donc 0 sinon. a+ Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
(gile) Posté(e) le 30 avril 2010 Posté(e) le 30 avril 2010 J'aimerais que lorsque je démarre mon code VBA je démarre un code LISP qui fonctione en même temps que mon code VBA À ma connaissance, ce n'est pas possible, d'autant qu'il me semble comprendre que tu utilises un SendCommand. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
jfcantin197733 Posté(e) le 3 mai 2010 Auteur Posté(e) le 3 mai 2010 merci à vous... Gile existe-t-il un autre moyen que d'utiliser un SendCommand ??? merci
(gile) Posté(e) le 3 mai 2010 Posté(e) le 3 mai 2010 Gile existe-t-il un autre moyen que d'utiliser un SendCommand ??? Je ne peux pas te répondre précisément, vu que tu n'as jamais dit ce que faisait ta routine. Mais en général, en programmation AutoCAD, à de rares exceptions où l'usage des méthodes qui appellent les commandes natives (SendCommand en VBA, command LISP, SendStingToExecute en dotNET, acedCmd ou acedCommand en C++/ARX) peut s'avérer judicieux, on évite ces procédés. Reconstituer ce que fait la commande avec les méthodes ou fonctions fournies par le langage de programmation permet une exécution plus rapide et surtout de contrôler toutes les étapes notamment les entrées utilisateur (ce qui semble être ton souci). Si tu programmes en VBA regarde l'aide pour les méthodes ThisDrawing.Utility.Getstring, Getpoint, GetEntity etc. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
jfcantin197733 Posté(e) le 5 mai 2010 Auteur Posté(e) le 5 mai 2010 Merci J'utilise la commande SendCommand mais c'est entre deux commande que si l'utilisateur appuis sur ESC alors le prog. ne se ferm epas completement. Merci quand même de ton aide [Edité le 5/5/2010 par jfcantin197733]
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