azop Posté(e) le 6 octobre 2013 Posté(e) le 6 octobre 2013 bonjour,je recontre un problème en utilisant la méthode GetBoundingBox uniquement sur UN bloc.Est ce que quelqu'un aurait une idée ? _$ (vla-GetBoundingBox (vlax-ename->vla-object (car (entsel))) 'mx 'mi) mx ; erreur: Erreur Automation Entrée incorrecte
Goldorak44 Posté(e) le 7 octobre 2013 Posté(e) le 7 octobre 2013 Salut, le problème c'est le mx à la fin. si tu écris : (vla-GetBoundingBox (vlax-ename->vla-object (car (entsel))) 'mx 'mi) Cela fonctionne. Pour vérifier, tu peux écrire cela : (setq pntBG (vlax-Safearray->list mx)) (setq pntHD (vlax-Safearray->list mi)) (command "rectang" mx mi) Cela te permettra de vérifier tes points "mx" et "mi". @+ PIRO CharlesDeveloppeur Revit, RV/RA - Formateur RevitPIRO CIE
azop Posté(e) le 7 octobre 2013 Auteur Posté(e) le 7 octobre 2013 petite erreur dans les lignes suivantes :(setq pntBG (vlax-Safearray->list mx)) (setq pntHD (vlax-Safearray->list mi)) (command "rectang" mx mi) mais j'ai toujours le même probleme avec ce code la_$ (vla-GetBoundingBox (vlax-ename->vla-object (car (entsel))) 'mx 'mi) (setq mx (vlax-Safearray->list mx)) (setq mi (vlax-Safearray->list mi)) (command "rectang" mx mi) ; erreur: Erreur Automation Entrée incorrecte
Goldorak44 Posté(e) le 7 octobre 2013 Posté(e) le 7 octobre 2013 Pourquoi met tu "_$" devant ta ligne de départ ? C'est en expression diesel qu'il faut mettre des $, pas en lisp/vlisp. Exact pour mes lignes, j'ai été trop vite ! :unsure: (vla-GetBoundingBox (vlax-ename->vla-object (car (entsel))) 'mx 'mi) (setq pntBG (vlax-Safearray->list mx)) (setq pntHD (vlax-Safearray->list mi)) (command "rectang" pntBG pntHD) 1 PIRO CharlesDeveloppeur Revit, RV/RA - Formateur RevitPIRO CIE
(gile) Posté(e) le 7 octobre 2013 Posté(e) le 7 octobre 2013 Pourquoi met tu "_$" devant ta ligne de départ ?Goldorak44,Tu n'utilises jamais la console de l'éditeur Visual LISP ? Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Goldorak44 Posté(e) le 7 octobre 2013 Posté(e) le 7 octobre 2013 Goldorak44,Tu n'utilises jamais la console de l'éditeur Visual LISP ? Euh non dsl. :unsure: J'ai toujours utilisé Notepad++ et je teste mes lignes manuellement dans autocad.Mon formateur m'a appris comme ça !! ;) Sinon pour "azop", est-ce le manque du (vl-load-com) ? PIRO CharlesDeveloppeur Revit, RV/RA - Formateur RevitPIRO CIE
(gile) Posté(e) le 7 octobre 2013 Posté(e) le 7 octobre 2013 Goldorak44, Ça n'était pas vraiment une question. Si tu l'utilisais, tu aurais tout de suite compris le pourquoi du : _$.Entre parenthèses, en n'utilisant pas l'éditeur Visual LISP, tu te prives d'un puissant outil de développement : il s'agit d'un véritable IDE (Environnement de Développement Intégré) auquel, certes, il manque des fonctions d'édition de texte qu'on trouve dans Notepad++, mais qui permet l'évaluation immédiate d'expression (dans la console) et fournit des fonctions de débogage. (on trouve un succinct mode d'emploi de l'éditeur Visual LISP dans : Intoduction à AutoLISP aussi disponible sur Autodesk Exchange Apps)Sur la copie d'écran ci-dessus, on voit bien la présence du _$ qui marque le début de l'expression à évaluer, puis, en dessous, les résultats des évaluations de chaque expression (nil pour (vla-GetBoundingBox ...), les coordonnées des deux points pntBG et pntHD, et enfin nil pour (command ...)). azop, On voit bien, sur l'image jointe, que la console retourne les résultats de chaque expression copiée dans la console.Ton erreur est donc provoquée par la première expression : (vla-GetBoundingBox ...) et cette expression ne contenant pas d'erreur de syntaxe, je dirais comme Goldorak44 que les fonctions Visual LISP n'ont pas été préalablement chargées avec l'expression : (vl-load-com). Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Goldorak44 Posté(e) le 7 octobre 2013 Posté(e) le 7 octobre 2013 Entre parenthèses, en n'utilisant pas l'éditeur Visual LISP, tu te prives d'un puissant outil de développement : il s'agit d'un véritable IDE (Environnement de Développement Intégré) auquel, certes, il manque des fonctions d'édition de texte qu'on trouve dans Notepad++, mais qui permet l'évaluation immédiate d'expression (dans la console) et fournit des fonctions de débogage. (on trouve un succinct mode d'emploi de l'éditeur Visual LISP dans : Intoduction à AutoLISP aussi disponible sur Autodesk Exchange Apps)Sur la copie d'écran ci-dessus, on voit bien la présence du _$ qui marque le début de l'expression à évaluer, puis, en dessous, les résultats des évaluations de chaque expression (nil pour (vla-GetBoundingBox ...), les coordonnées des deux points pntBG et pntHD, et enfin nil pour (command ...)). J'avais déjà lu ton tutoriel qui est vraiment super bien fait mais j'avais sauté la partie sur l'éditeur Visual Lisp !!Je suis formé depuis quelques mois par le responsable développement de ma société et comme il ne l'utilise pas, je n'ai pas eu ce réflexe. Actuellement, je suis de nouveau en formation mais c# !! Là y a du boulot ! :D PIRO CharlesDeveloppeur Revit, RV/RA - Formateur RevitPIRO CIE
(gile) Posté(e) le 8 octobre 2013 Posté(e) le 8 octobre 2013 Actuellement, je suis de nouveau en formation mais c# !! Là y a du boulot ! :DJ'espère que ton "formateur" ne te fait pas écrire le code C# dans Notepad++, le compiler dans la fenêtre de commande DOS avant de le charger dans AutoCAD... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Goldorak44 Posté(e) le 8 octobre 2013 Posté(e) le 8 octobre 2013 J'espère que ton "formateur" ne te fait pas écrire le code C# dans Notepad++, le compiler dans la fenêtre de commande DOS avant de le charger dans AutoCAD... :(rires forts): :(rires forts): Non non !! j'utilise Visual Studio 2010. ;) PIRO CharlesDeveloppeur Revit, RV/RA - Formateur RevitPIRO CIE
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