GEGEMATIC Posté(e) hier à 09:09 Posté(e) hier à 09:09 Salut à toutes et a tous, meilleurs voeux pour 2025. Toujours dans mes blocs dynamiques, j'essaye de comprendre comment Autocad gère la définition et la représentation des blocs dynamiques. je voudrais pourvoir changer à la demande la taille d'une flèche de ligne repère contenue dans un bloc dynamique. En principe, sauf pour les attributs, il faut changer la définition du bloc pour que ça se répercute dans les occurrences du bloc. je le fait via ce code exemple pour le bloc "gen_sup" (defun foundef () (setq blks (vla-get-Blocks (vla-get-ActiveDocument(vlax-get-acad-object)))) (setq blk (vla-item blks "gen_sup")) (vlax-for ent blk (if (= (vla-get-ObjectName ent) "AcDbMLeader") (vla-put-ArrowheadSize ent 9.87654321) ) ) ) le changement de la définition se fait bien, mais elle n'est pas répercutée sur les occurences du bloc existantes. dans le dwg joint, on voit que les blocs "gen_inf", qui ont été modifiés après qu'une occurence du bloc a été insérée dans le dessin gardent une taille de flèche de 0.4, et non pas 9.8765 si vous éditez ce bloc, vous verrez pourtant que sa définition à une valeur de 9.8765 le bloc gen_sup, qui a été redéfini avant l'insertion d'une occurence à bien une taille de flèche de 9.8755 au lieu des 0.4 initiaux. Si j’utilise l'édition de bloc d'Autocad, la mise à jour est instantanée. En faisant un "handle_explorer" j'ai vu que la taille de la flèche est stockée 2 fois, code 40 et 140 en dxf. Je sais aussi que les blocs dyn créent une entrée personnalisée dans le dictionnaire irdDscDictionary, mais je n'ai rien trouvé dedans. là je sèche ! a+ Gégé Exemple_bdyn.dwg ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
Fraid Posté(e) hier à 09:16 Posté(e) hier à 09:16 Bonjour, Bonne année à tous, Peut être que la commande attsync va résoudre ton problème. 1 https://github.com/Fraiddd
GEGEMATIC Posté(e) hier à 09:24 Auteur Posté(e) hier à 09:24 salut Fraid, merci c'est ça ! pas logique, mais ça le fait ! a+ gégé ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
Fraid Posté(e) hier à 12:43 Posté(e) hier à 12:43 Il y a 3 heures, GEGEMATIC a dit : pas logique Effectivement, cela ne parait pas convenir aux circonstances, mais quand on réfléchi un peu, cela va chercher la définition du bloc. Il y a aussi (vlax-release-object (vla-get-ActiveDocument(vlax-get-acad-object))) qui devrais fonctionner (en fin de programme). Plus logique. https://github.com/Fraiddd
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