g.pertusot Posté(e) le 16 septembre 2009 Posté(e) le 16 septembre 2009 Bonjour,Je cherche la mise en oeuvre des événements dans autocad avec vb.net.Dans le vba il y a deux types d'événements, l'événement retourné par le dessin et l'événement retourné par l'entité (objet). En grande partie les exemples connus en .net sont toujours rapportés au niveau du formulaire mais rien sur le clavier (barre d'espace, enter,...)rien sur les entités, rien sur le détournement des commandes, en bref pas grand chose.Pour l'instant je voudrais créer une fonction en .net pour récupérer la "barre d'espace", "enter",et "clik droit" pour "quiter propre" mes routines qui sont elles, écritent en LISP ou VBA. (j'ai la procedure du transfert LISP-->.net .net-->LISP).Je pens qu'il y a faire un véritable travail de fond sur le sujet car même dans le livre AutoCAD.net il y peu d'exemple (bien que sur le sujet le livre AutoCAD.net ne soit pas très éloquent je le recommande vivement pour tout débutant en .net sur autocad..En attente d'un réponse Cordialement
(gile) Posté(e) le 16 septembre 2009 Posté(e) le 16 septembre 2009 Salut, je ne suis pas sûr de comprendre ce que tu veux faire, mais s'il s'agit bien d'intercepter un clic droit, un Entrée ou Espace pour sortir d'une boucle GetPoint par exemple, il suffit d'autoriser aucune sélection (AllowNone = true) et de tester le PromptResult. Un petit exemple avec GetEntity (en C#, désolé): Editor ed = Application.DocumentManager.MdiActiveDocument.Editor; PromptPointOptions ppo = new PromptPointOptions("\nSpécifiez un point: "); ppo.AllowNone = true; bool loop = true; PromptPointResult ppr; do { ppr = ed.GetPoint(ppo); if (ppr.Status == PromptStatus.OK) ed.WriteMessage(ppr.Value.ToString()); else if (ppr.Status == PromptStatus.None) { loop = false; ed.WriteMessage("\nValidation par Entrée, Espace ou clic droit"); } else return; } while (loop); Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
g.pertusot Posté(e) le 16 septembre 2009 Auteur Posté(e) le 16 septembre 2009 Merçi pour ta réponse. Je vois tout de suite qu'il faut que j'externalise la commande en .net. De toute façon je pense que pour intercepter l'événement "clavier" il faut rester dans la couche LISP si la procédure a démarrer en LISP. Je voulais m'initier en .net avec les événements.car les exemples ne sont pas très fréquents. Les évenements en VBA sont très documentés et très façile à mettre en oeuvre. Je suis seul sur un developpement personnel tèrs lourd, voire trop surement. 65000 lignes en LISP et 15000 en VBA à transformer en .net et continuer à developper le produit pour une commercialisation 2010, c'est très compromis.Merci encore
(gile) Posté(e) le 16 septembre 2009 Posté(e) le 16 septembre 2009 À ma connaissance il n'y a pas de documentation en français concernant .NET pour AutoCAD. En anglais, il y a AutoCAD .NET Developer's Guide qui détaille assez bien les évènements accessibles avec .NET. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
rom1_am Posté(e) le 17 septembre 2009 Posté(e) le 17 septembre 2009 Bonjour, Pour récupérer une entrée clavier, tu peux également utiliser la fonction suivante: Public Function GetAsyncKeyState(ByVal vkey As Integer) As Short End Function J'ai essayé et ça marche de la même façon qu'en vba. _______________________________R.A.Développeur AutoCAD C#.netwww.danialu.fr
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