Aller au contenu

Lisp et VBA


Thelduin

Messages recommandés

Salut

 

Les fonctions (comme les variables) peuvent être locales ou globales.

 

Les fonctions globales, une fois chargées, sont accessibles par toute autre expression LISP. Comme le dit Fraid, ça peut être intéressant pour des fonctions très utiles (et souvent utilisées). Le risque avec ce type de fonction est le conflit de nom (c'est la dernière fonction de même nom chargée dans le dessin qui est active.

 

Déclarer localement les fonctions permet d'éviter ce problème. Dans ce cas la fonction locale doit être définie avant son utilisation dans la fonction parent (exactement comme une variable locale).

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

Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 51
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Salut !

 

Je me suis penché sur le changement des valeurs des paramètres dynamiques d'un bloc dynamique via le lisp (en fouillant le site à la recherche d'info sur les fonctions vla et vlax).

Sur un bloc dynamique, j'arrive à changer la valeur du premier paramètre, mais dès que j'ai plusieurs paramètres (en général, j'en ai 6 ou 7), je suis incapable de changer ces autres valeurs, j'ai une erreur : AutoCAD.Application : entree incorrecte ...

 

Je vous mets un extrait du code :

 

(defun c:test()
(setq acob (getvar "osmode"))
(setvar "osmode" 0)
(command "-inserer" "Cadre + façonnage 25e" "e" 0.1 0 0)

 
(vl-load-com)
(setq cadre (vlax-ename->vla-object (entlast)))
(setq pr (vlax-invoke cadre 'getdynamicblockproperties))

(setq h_cadre (nth 0 pr))
(setq enr_g (nth 1 pr))
(setq enr_d (nth 2 pr))
(setq enr_h (nth 3 pr))
(setq enr_b (nth 4 pr))
(setq l_cadre (nth 5 pr))

(vlax-put h_cadre 'value 40.0)
(vlax-put enr_g 'value 4.0)
(vlax-put enr_d 'value 3.0)
(vlax-put enr_h 'value 5.0)
(vlax-put enr_b 'value 2.0)
(vlax-put l_cadre 'value 16.0)

(command "regntout")
(setvar "osmode" acob)
)

Mon cadre a bien une hauteur de 40, par contre, tous les autres paramètres ne bougent pas...Pourquoi ? :unsure:

 

Merci d'avance

Lien vers le commentaire
Partager sur d’autres sites

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é