-DD- Posté(e) le 12 août 2014 Posté(e) le 12 août 2014 Bonjour, J'ai créé un lisp (tant bien que mal) qui rempli un attribut en fonction d'une propriété d'un bloc. On lance le lisp, on selectionne le bloc et le lisp applique les modifs. J'aimerais savoir comment faire pour l'appliquer sur tous les blocs du même nom dans le dessin. je vais voir pour integrer le lisp de Gile : special_selection (de son site gilecad merci encore a lui) Mais apres comment je gere le jeu de selection dans mon lisp ? je vous met le lisp ci dessous, ne criez pas si c'est codé comme un cochon je fais ça sans formation (vl-load-com) (defun c:DN () (setq ent_bloc nil) ;selection objet (setq VAR (vlax-ename->vla-object (car(entsel "\nSélectionnez le bloc: "))) ) ; on recupere l'échelle en X (setq scale (vla-get-XeffectiveScaleFactor VAR)) ; on passe la longueur du bloc à 1.0 (vla-put-XeffectiveScaleFactor VAR 1) (print scale) ;on recupere la visibilité ;recuperation de la visibilité ;source : ;http://cadxp.com/index.php?/topic/14447-propiete-des-blocs-dynamiques/ ; (setq dbp (vla-getdynamicblockproperties VAR)) (setq dbp (vlax-variant-value dbp)) (setq dbp (vlax-safearray->list dbp)) (setq bp (car dbp)) (vlax-dump-object bp) (setq ListeAdmis (vla-get-Value bp)) (print listeadmis ) (setq ListeAdmis1 (vlax-variant-value ListeAdmis)) (print listeadmis1 ) ;; fin de lisp depuis internet ;on transforme en objet entname (setq tube (vlax-vla-object->ename VAR)) ;on rempli le champs (setpropertyvalue tube "DIAMETRE" listeadmis1) ;on repasse la longueur à la taille initiale (vla-put-XeffectiveScaleFactor VAR scale) ) ;fin defun
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