Aller au contenu

Modif bloc dynamique avec lisp


Messages recommandés

Posté(e)

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 ?

 

 

Posté(e)

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 ht

j'ai essayé (vlax-put-property ht 'visible :vlax-false) mais cela ne marche pas.

idem pour inversion...

Un avis ?

Posté(e)

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

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é