Bred Posté(e) le 16 novembre 2006 Posté(e) le 16 novembre 2006 Salut...j'essaye de me mettre aux "vla-object"...j'ai écris une fonction mais elle ne fonctionne pas : la réalisation d'une section de solide (sur les XZ ici ...) (setq pt (getpoint "\nchoix du point :")) (setq vla_pt (vlax-3d-point pt)) (setq Solide3D (vlax-ename->vla-object(car(entsel)))) (vlax-invoke Solide3D 'SectionSolid vla_pt (vlax-3d-point (list (car pt)(cadr pt)(+ 1 (caddr pt)))) (vlax-3d-point (list (car pt)(+ 1 (cadr pt))(+ 1 (caddr pt)))) ) j'ai "; erreur: Une exception s'est produite" .... comprend pas .... (question bonus : n'y a t'il pas un moyen de "travailler" sur les coordonnées vlax-3d-point (c'est à dire faire ce que je fait avec (list (car pt)(cadr pt)(+ 1 (caddr pt))) merci ! [Edité le 16/11/2006 par Bred] Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Bred Posté(e) le 16 novembre 2006 Auteur Posté(e) le 16 novembre 2006 Bon, ben j'arrive en faisant (vla-sectionsolid pt1 pt2 pt3) Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
(gile) Posté(e) le 16 novembre 2006 Posté(e) le 16 novembre 2006 n'y a t'il pas un moyen de "travailler" sur les coordonnées vlax-3d-point (c'est à dire faire ce que je fait avec (list (car pt)(cadr pt)(+ 1 (caddr pt))) Eh non, (vlax-3d-point ...) retourne un "variant" l'argument courant des fonctions vla-... et encore là, il y a une fonction pour transformer la liste en variant sans être obligé de passer par les (vlax-make-variant (vlax-SafeArray-fill (vlax-make-SafeArray vlax-vbDouble ...))). tu peux donc faire, par exemple (valx-3d-point (mapcar '+ pt '(0 0 1)) Ou, peut-être passer par les (vlax-invoke solide 'sectionsolid pt1 pt2 pt3) avec pt1, pt2 pt3 sous forme de liste (pas testé). Regarde ce sujet. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Bred Posté(e) le 16 novembre 2006 Auteur Posté(e) le 16 novembre 2006 Aaaaaaaah !!!.... c'est pour ça que ça ne marchait pas !!! Ou, peut-être passer par les (vlax-invoke solide 'sectionsolid pt1 pt2 pt3) avec pt1, pt2 pt3 sous forme de liste Regarde mon 1er message ! : (setq pt (getpoint "\nchoix du point :"))(setq vla_pt (vlax-3d-point pt))(setq Solide3D (vlax-ename->vla-object(car(entsel))))(vlax-invoke Solide3D 'SectionSolid vla_pt(vlax-3d-point (list (car pt)(cadr pt)(+ 1 (caddr pt))))(vlax-3d-point (list (car pt)(+ 1 (cadr pt))(+ 1 (caddr pt))))) !!! j'essayais de faire passer des points "vlax-" dans vlax-invoke Solide3D 'SectionSolid.....Et donc, j'ai testé, ta proposition fonctionne !!! mais alors... c'est-y-quoi le mieux ??? :casstet: (vlax-invoke Solide3Dvla 'sectionsolid pt1liste pt2liste pt3liste)ou(vla-sectionsolid Solide3Dvla pt1vla pt2vla pt3vla) :casstet: ...merci ! [Edité le 16/11/2006 par Bred] Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
(gile) Posté(e) le 17 novembre 2006 Posté(e) le 17 novembre 2006 mais alors... c'est-y-quoi le mieux ??? Le mieux, je ne sais pas, personnellement depuis que j'ai découvert cette possibilité d'éviter de transformer les listes en variants et vice-versa, je l'utilise quasi systématiquement. Les fonctions vlax-invoke, vlax-get, vlax-put sont des survivances des débuts du VisualLISP cela veut-il dire qu'elles sont amenées à disparaître, comme on peut le lire ici ou là sur des forums ?On peut aussi lire que le LISP aussi est voué à disparaître d'AutoCAD, dans les deux cas les réponses des détracteurs de ces rumeurs invoquent le nombre de routines réalisées et en circulation pour les réfuter.J'aurais tendance à plutôt, vouloir croire les derniers, tu t'en doutes ;) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Bred Posté(e) le 17 novembre 2006 Auteur Posté(e) le 17 novembre 2006 On peut aussi lire que le LISP aussi est voué à disparaître d'AutoCAD, dans les deux cas les réponses des détracteurs de ces rumeurs invoquent le nombre de routines réalisées et en circulation pour les réfuter. Et bien e l'espère aussi !!!... mais ça m'etonnerais quand même fortement : j'ai l'impression que même Autodesk utilise le lisp encore pour certains outils !!!... (par contre, pour info, j'ai un peu toucher au VB.net... c'est vraiment puissant !!! (pas aussi "maléable" que le lisp quand même ...si tu as l'occasion de jeter un cup d'oeuil, je te le conseille.) [Edité le 21/12/2006 par Bred] Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
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