nedao Posté(e) le 10 novembre 2009 Posté(e) le 10 novembre 2009 Bonjours, Je cherche a modifier les paramètres personnalisables d'un bloc dynamique sous lisp.Les fonctions classiques type entget ne me donne pas accès à ces informations.En navigant j'ai trouvé des commandes comme vla-get-IsDynamicBloc mais elle ne semble plus fonctionner sous autocad V2010.Bref je suis perdu. Des idées ?
nedao Posté(e) le 11 novembre 2009 Auteur Posté(e) le 11 novembre 2009 lg : plusieurs largeur (liste de valeurs)ht : 2 hauteurs possibles (parametre de visibilite) J'ai réussi à modifier les valeurs de largeur avec le programme suivant :(defun C:GV (/ bl pr la ht)(vl-load-com)(setq bl (vlax-ename->vla-object (car (entsel)))pr (vlax-invoke bl 'getdynamicblockproperties)la (nth 0 pr)ht (nth 1 pr))(vlax-put la 'value 1000.0)) Le problème c'est que je n'arrive pas à modifier la valeur de hauteur htj'ai essayé (vlax-put-property ht 'visible :vlax-false) mais cela ne marche pas.idem pour inversion...Un avis ?
bonuscad Posté(e) le 12 novembre 2009 Posté(e) le 12 novembre 2009 Bonjour, Bien que je n'ai jamais travaillé sur des blocs dynamiques, il me semble qu'il y ait des erreurs de syntaxe dans ton code. Après avoir récupéré ta liste de propriétés dynamique "pr", je verrais plutôt ceci: la (vlax-get (nth 0 pr) 'Value) ht (vlax-get (nth 1 pr) 'Value) (vlax-put (nth 1 pr) 'value 1000.0) Mais bon il faut être sur de son indexation... Ceci, par exemple, te liste toutes les valeurs: (foreach el pr (print (vlax-get el 'Value))) Ça va pouvoir t'aider...? Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
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