yann69690 Posté(e) le 5 juillet 2022 Posté(e) le 5 juillet 2022 Bonjour, J'ai récupéré un fichier vraiment ignoble, je pose pas la question de comment ils ont réussi (car ça doit etre des scripts) mais je me retouve avec des bloc ou autocad voit des attributs mais quand on édite le bloc il n'y en a pas... Pensez vous qu'il soit possible de faire un blocreplace (ou riblock) pour afficher un des attributs? Ou comment les ré-intégrer dans le bloc initial? Un fichier exemple, en cas de besoin, mais bon j'y crois guere avec mes 1900 blocks dont 500 comme cela/ bloc attribut farfelu.dwg Merci d'avance Cordialement Citer
Luna Posté(e) le 5 juillet 2022 Posté(e) le 5 juillet 2022 Coucou, Nan c'est un bug AutoCAD...J'ai déjà eu ce soucis auparavant ^^" En clair cela peut arriver lorsque tu supprimes tous les attributs de ton bloc, mais comme tu as des références de bloc insérées dans le dessin et qu'il faut toujours faire un ATTSYNC sur les références de blocs si on modifie les définitions d'attribut...bah ATTSYNC refuse de fonctionner car la définition de bloc ne possède plus d'attributs ! Donc en clair ton bloc ne devrait pas posséder d'attributs mais comme ATTSYNC ne fonctionne pas sur ces blocs, c'est un peu complexe... Si tu as un AutoCAD full (pas LT), tu peux essayer ce programme (j'ai testé sur ton .dwg et cela fonctionne parfaitement !) : (defun c:FixBadAttBlocks ( / gettags bkc bln doc lst tmp ) (defun gettags ( def / rtn ) (vlax-for obj def (if (= "AcDbAttributeDefinition" (vla-get-objectname obj)) (setq rtn (cons (strcase (vla-get-tagstring obj)) rtn)) ) ) rtn ) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object)) bkc (vla-get-blocks doc) ) (vlax-for blk bkc (if (= :vlax-false (vla-get-isxref blk)) (vlax-for obj blk (if (and (= "AcDbBlockReference" (vla-get-objectname obj)) (= :vlax-true (vla-get-hasattributes obj)) (or (setq tmp (assoc (setq bln (vla-get-name obj)) lst)) (and (setq tmp (cons bln (gettags (vla-item bkc bln)))) (setq lst (cons tmp lst)) ) ) ) (foreach att (vlax-invoke obj 'getattributes) (or (member (strcase (vla-get-tagstring att)) (cdr tmp)) (and (vlax-write-enabled-p att) (vla-delete att) ) ) ) ) ) ) ) (vla-regen doc acallviewports) (princ) ) Je l'ai récupéré sur ce fil de discussion >>ici<< donc je suppose que l'auteur est BeekeeCZ mais @lecrabe a peut-être plus d'infos s'il possède ce programme dans sa bibliothèque de 3001 routines 😉 Bisous, Luna Citer
yann69690 Posté(e) le 5 juillet 2022 Auteur Posté(e) le 5 juillet 2022 bonjour Luna, Merci beaucoup Sur le fichier entier ça fait bugger et fermer mon autocad. Et sur le fichier joint cela supprime les attributs, c'est cela? L'idée c'est de les garder et ré-utiliser 😁 J'ai essayé de créer un nouveau attribut et de synchroniser, cela marche sur INSEE mais pas sur IDENT. Savez vous pourquoi il est en rouge d'ailleurs? Merci d'avance cdlt Citer
Luna Posté(e) le 5 juillet 2022 Posté(e) le 5 juillet 2022 Alors vui, le programme permet uniquement de corriger les références de blocs qui ne sont pas bonnes, par contre je ne vois absolument pas comment faire l'inverse : corriger les définitions de blocs qui ne correspondent pas à leur références ! Pour moi les attributs en rouges signifie qu'ils sont en doublon (voire plus) dans la définition de bloc (enfin du moins qu'il y a plusieurs attributs d'une même définition de bloc qui possèdent la même étiquette)... Bisous, Luna Citer
yann69690 Posté(e) le 5 juillet 2022 Auteur Posté(e) le 5 juillet 2022 Luna, Merci, en doublons, je vais essayer de créer un doublon d'attribut, sans grande conviction... Merci beaucoup Citer
Luna Posté(e) le 6 juillet 2022 Posté(e) le 6 juillet 2022 Euhhh... c'est pas ce que j'ai dit il me semble...^^" Bisous, Luna Citer
yann69690 Posté(e) le 6 juillet 2022 Auteur Posté(e) le 6 juillet 2022 Il y a 13 heures, yann69690 a dit : Luna, Merci, en doublons, je vais essayer de créer un doublon d'attribue, sans grande conviction... Merci beaucoup Bonjour, Je confirme pour ceux qui sont dans le même problème, il suffit de éditer le bloc, ajouter les attributs que l'on souhaite garder (ici il en avait en double donc créer aussi les attributs en double) + AttSyn => et c'est bon... Pour ceux qui souhaite après _blocreplace ou RIBLOCK (https://www.cadstudio.cz/en/download.asp?file=RIblock ) pour remplacer et ré-attribuer les attributs... La version ++, serait d'automatiser cela avec SAS superAutoScript mais il ne faut pas pousser trop loin 🙂 (pensez vous que on peut editer un bloc avec SAS) Bonne journée Merci Luna, sans toi je n'aurai vraiment pas trouver la solution Citer
Messages recommandés