Aller au contenu

erreur avec Méthode GetBoundingBox


Messages recommandés

Posté(e)

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

Posté(e)

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 Charles

Developpeur Revit, RV/RA - Formateur Revit

PIRO CIE

Posté(e)

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

Posté(e)

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)

  • Upvote 1

PIRO Charles

Developpeur Revit, RV/RA - Formateur Revit

PIRO CIE

Posté(e)

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 Charles

Developpeur Revit, RV/RA - Formateur Revit

PIRO CIE

Posté(e)

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)

ConsoleVisualLISP.png

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

Posté(e)

 

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)

post-5304-0-02016100-1381173775_thumb.png

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 Charles

Developpeur Revit, RV/RA - Formateur Revit

PIRO CIE

Posté(e)
Actuellement, je suis de nouveau en formation mais c# !! Là y a du boulot ! :D

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...

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

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 Charles

Developpeur Revit, RV/RA - Formateur Revit

PIRO CIE

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é