philsogood Posté(e) le 15 mai 2023 Partager Posté(e) le 15 mai 2023 hello j'ai un fichier qui comprend 51 MTXT et je souhaiterai savoir comment faire pour : - transformer ces textes en bloc avec un attribut (qui aura pour valeur le contenu du MTXT) comment vous y prendriez vous? dans un monde parfait je souhaiterai que le bloc porte tout le temps le même nom. Phil ensemble_tag.dwg Citer Projeteur Revit Indépendant - traitement des eaux/CVC Lien vers le commentaire Partager sur d’autres sites More sharing options...
JPhil Posté(e) le 15 mai 2023 Partager Posté(e) le 15 mai 2023 Une ressemblance avec ce post >>> ici <<< Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bonuscad Posté(e) le 15 mai 2023 Partager Posté(e) le 15 mai 2023 Comme le dit JPhil voici le code ressemblant adapté à ton dessin exemple ((lambda ( / js n dxf_ent pt txt) (if (not (tblsearch "STYLE" "ROMANS")) (entmake '( (0 . "STYLE") (100 . "AcDbSymbolTableRecord") (100 . "AcDbTextStyleTableRecord") (2 . "ROMANS") (70 . 0) (40 . 0.0) (41 . 0.8) (50 . 0.0) (71 . 0) (42 . 0.0945) (3 . "romans.shx") (4 . "") ) ) ) (if (not (tblsearch "BLOCK" "MTX2BLK")) (progn (entmake '( (0 . "BLOCK") (100 . "AcDbEntity") (8 . "0") (2 . "MTX2BLK") (70 . 2) (4 . "") (8 . "0") (62 . 0) (6 . "ByBlock") (370 . -2) (10 0.0 0.0 0.0) ) ) (entmake '( (0 . "ATTDEF") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (62 . 0) (6 . "ByBlock") (370 . -2) (100 . "AcDbText") (10 -0.2034 -0.04725 0.0) (40 . 0.0945) (1 . "") (50 . 0.0) (41 . 0.8) (51 . 0.0) (7 . "ROMANS") (71 . 0) (72 . 1) (11 0.0 0.0 0.0) (210 0.0 0.0 1.0) (100 . "AcDbAttributeDefinition") (280 . 0) (3 . "Texte vers Attribut") (2 . "VALEUR") (70 . 0) (73 . 0) (74 . 2) (280 . 1) ) ) (entmake '( (0 . "LWPOLYLINE") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (62 . 0) (6 . "ByBlock") (370 . -2) (100 . "AcDbPolyline") (90 . 4) (70 . 1) (43 . 0.0) (38 . 0.0) (39 . 0.0) (10 -0.61349 0.100763) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 -0.61349 -0.100763) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 0.624823 -0.100763) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 0.624823 0.100763) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (210 0.0 0.0 1.0) ) ) (entmake '((0 . "ENDBLK") (100 . "AcDbEntity") (8 . "0") (62 . 0) (6 . "ByBlock") (370 . -2))) ) ) (setq js (ssget "_X" '((0 . "MTEXT") (67 . 0) (410 . "Model") (8 . "Repere")))) (cond (js (repeat (setq n (sslength js)) (setq ent (ssname js (setq n (1- n))) dxf_ent (entget ent) pt (cdr (assoc 10 dxf_ent)) txt (cdr (assoc 1 dxf_ent)) ) (entmake (list '(0 . "INSERT") '(100 . "AcDbEntity") '(67 . 0) '(410 . "Model") '(8 . "Repere") '(100 . "AcDbBlockReference") '(66 . 1) (cons 2 "MTX2BLK") (cons 10 pt) '(41 . 1.0) '(42 . 1.0) '(43 . 1.0) '(50 . 0.0) '(70 . 0) '(71 . 0) '(44 . 0.0) '(45 . 0.0) '(210 0.0 0.0 1.0) ) ) (entmake (list '(0 . "ATTRIB") '(100 . "AcDbEntity") '(67 . 0) '(410 . "Model") '(8 . "0") '(62 . 0) '(6 . "ByBlock") '(370 . -2) '(100 . "AcDbText") (cons 10 pt) '(40 . 0.0945) (cons 1 txt) '(50 . 0.0) '(41 . 1.0) '(51 . 0.0) '(7 . "ROMANS") '(71 . 0) '(72 . 1) (cons 11 pt) '(210 0.0 0.0 1.0) '(100 . "AcDbAttribute") '(280 . 0) '(2 . "VALEUR") '(70 . 0) '(73 . 0) '(74 . 2) '(280 . 1) ) ) (entmake (list '(0 . "SEQEND") '(100 . "AcDbEntity") '(67 . 0) '(410 . "Model") '(8 . "Repere"))) (entdel ent) ) ) ) (prin1) )) Citer Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés