Fraid Posté(e) le 29 avril 2021 Posté(e) le 29 avril 2021 Bonjour, Je voudrais savoir si une polyligne est un contour de hachure associative. sans pour autant comparer les coordonnées (cela peut être très lourd) Je n'ai pas trouvé de propriété correspondante ou de code dxf pour la polyligne. Si je regarde les hachures je peux savoir si elles sont associatives, mais je ne trouve pas de référence à la polyligne associée. ai je raté encore quelque chose? Merci https://github.com/Fraiddd
Luna Posté(e) le 29 avril 2021 Posté(e) le 29 avril 2021 Coucou, Explore DXF in progress from "HATCH" (<Nom d'entité: 2275b458d50>) : | (-1 . <Nom d'entité: 2275b458d50>) | (0 . "HATCH") | (330 . <Nom d'entité: 2275b4659f0>) | (5 . "215") | (100 . "AcDbEntity") | (67 . 0) | (410 . "Model") | (8 . "0") | (62 . 1) | (440 . 33554559) | (100 . "AcDbHatch") | (10 0.0 0.0 0.0) | (210 0.0 0.0 1.0) | (2 . "SOLID") | (70 . 1) | (71 . 1) | (91 . 1) | (92 . 1) | (93 . 5) | (72 . 1) | (10 -762.847 1382.57 0.0) | (11 -1019.02 993.801 0.0) | (72 . 1) | (10 -1019.02 993.801 0.0) | (11 -905.163 639.804 0.0) | (72 . 1) | (10 -905.163 639.804 0.0) | (11 -247.347 981.158 0.0) | (72 . 1) | (10 -247.347 981.158 0.0) | (11 91.0483 1448.94 0.0) | (72 . 1) | (10 91.0483 1448.94 0.0) | (11 -762.847 1382.57 0.0) | (97 . 1) | (330 . <Nom d'entité: 2275b458d20>) | (75 . 1) | (76 . 1) | (98 . 1) | (10 0.0 0.0 0.0) | (450 . 0) | (451 . 0) | (460 . 0.0) | (461 . 0.0) | (452 . 0) | (462 . 1.0) | (453 . 2) | (463 . 0.0) | (63 . 5) | (421 . 255) | (463 . 1.0) | (63 . 2) | (421 . 16776960) | (470 . "LINEAR") | 1. "BLOCK_RECORD" (<Nom d'entité: 2275b4659f0>) at 330 code, from "HATCH" object : | (-1 . <Nom d'entité: 2275b4659f0>) | (0 . "BLOCK_RECORD") | (5 . "1F") | (102 . "{ACAD_XDICTIONARY") | (360 . <Nom d'entité: 2275b45ff50>) | (102 . "}") | (330 . <Nom d'entité: 2275b465810>) | (100 . "AcDbSymbolTableRecord") | (100 . "AcDbBlockTableRecord") | (2 . "*Model_Space") | (360 . <Nom d'entité: 2275b465a00>) | (340 . <Nom d'entité: 2275b465a20>) | (70 . 0) | (280 . 1) | (281 . 0) | 2. "LWPOLYLINE" (<Nom d'entité: 2275b458d20>) at 330 code, from "HATCH" object : | (-1 . <Nom d'entité: 2275b458d20>) | (0 . "LWPOLYLINE") | (5 . "212") | (102 . "{ACAD_REACTORS") | (330 . <Nom d'entité: 2275b458d50>) | (102 . "}") | (330 . <Nom d'entité: 2275b4659f0>) | (100 . "AcDbEntity") | (67 . 0) | (410 . "Model") | (8 . "0") | (100 . "AcDbPolyline") | (90 . 5) | (70 . 1) | (43 . 0.0) | (38 . 0.0) | (39 . 0.0) | (10 -762.847 1382.57) | (40 . 0.0) | (41 . 0.0) | (42 . 0.0) | (91 . 0) | (10 -1019.02 993.801) | (40 . 0.0) | (41 . 0.0) | (42 . 0.0) | (91 . 0) | (10 -905.163 639.804) | (40 . 0.0) | (41 . 0.0) | (42 . 0.0) | (91 . 0) | (10 -247.347 981.158) | (40 . 0.0) | (41 . 0.0) | (42 . 0.0) | (91 . 0) | (10 91.0483 1448.94) | (40 . 0.0) | (41 . 0.0) | (42 . 0.0) | (91 . 0) | (210 0.0 0.0 1.0) | End of exploration... L'associativité se situe au second code 330 de ta hachure, et au code 330 de ton objet associatif situé entre les borne (102 . "{ACAD_REACTORS") Explore DXF in progress from "LWPOLYLINE" (<Nom d'entité: 2275b458d20>) : | (-1 . <Nom d'entité: 2275b458d20>) | (0 . "LWPOLYLINE") | (5 . "212") | (102 . "{ACAD_REACTORS") | (330 . <Nom d'entité: 2275b458d50>) | (102 . "}") | (330 . <Nom d'entité: 2275b4659f0>) | (100 . "AcDbEntity") | (67 . 0) | (410 . "Model") | (8 . "0") | (100 . "AcDbPolyline") | (90 . 5) | (70 . 1) | (43 . 0.0) | (38 . 0.0) | (39 . 0.0) | (10 -762.847 1382.57) | (40 . 0.0) | (41 . 0.0) | (42 . 0.0) | (91 . 0) | (10 -1019.02 993.801) | (40 . 0.0) | (41 . 0.0) | (42 . 0.0) | (91 . 0) | (10 -905.163 639.804) | (40 . 0.0) | (41 . 0.0) | (42 . 0.0) | (91 . 0) | (10 -247.347 981.158) | (40 . 0.0) | (41 . 0.0) | (42 . 0.0) | (91 . 0) | (10 91.0483 1448.94) | (40 . 0.0) | (41 . 0.0) | (42 . 0.0) | (91 . 0) | (210 0.0 0.0 1.0) | 1. "HATCH" (<Nom d'entité: 2275b458d50>) at 330 code, from "LWPOLYLINE" object : | (-1 . <Nom d'entité: 2275b458d50>) | (0 . "HATCH") | (330 . <Nom d'entité: 2275b4659f0>) | (5 . "215") | (100 . "AcDbEntity") | (67 . 0) | (410 . "Model") | (8 . "0") | (62 . 1) | (440 . 33554559) | (100 . "AcDbHatch") | (10 0.0 0.0 0.0) | (210 0.0 0.0 1.0) | (2 . "SOLID") | (70 . 1) | (71 . 1) | (91 . 1) | (92 . 1) | (93 . 5) | (72 . 1) | (10 -762.847 1382.57 0.0) | (11 -1019.02 993.801 0.0) | (72 . 1) | (10 -1019.02 993.801 0.0) | (11 -905.163 639.804 0.0) | (72 . 1) | (10 -905.163 639.804 0.0) | (11 -247.347 981.158 0.0) | (72 . 1) | (10 -247.347 981.158 0.0) | (11 91.0483 1448.94 0.0) | (72 . 1) | (10 91.0483 1448.94 0.0) | (11 -762.847 1382.57 0.0) | (97 . 1) | (330 . <Nom d'entité: 2275b458d20>) | (75 . 1) | (76 . 1) | (98 . 1) | (10 0.0 0.0 0.0) | (450 . 0) | (451 . 0) | (460 . 0.0) | (461 . 0.0) | (452 . 0) | (462 . 1.0) | (453 . 2) | (463 . 0.0) | (63 . 5) | (421 . 255) | (463 . 1.0) | (63 . 2) | (421 . 16776960) | (470 . "LINEAR") | 2. "BLOCK_RECORD" (<Nom d'entité: 2275b4659f0>) at 330 code, from "LWPOLYLINE" object : | (-1 . <Nom d'entité: 2275b4659f0>) | (0 . "BLOCK_RECORD") | (5 . "1F") | (102 . "{ACAD_XDICTIONARY") | (360 . <Nom d'entité: 2275b45ff50>) | (102 . "}") | (330 . <Nom d'entité: 2275b465810>) | (100 . "AcDbSymbolTableRecord") | (100 . "AcDbBlockTableRecord") | (2 . "*Model_Space") | (360 . <Nom d'entité: 2275b465a00>) | (340 . <Nom d'entité: 2275b465a20>) | (70 . 0) | (280 . 1) | (281 . 0) | End of exploration... Bisous, Luna
Fraid Posté(e) le 29 avril 2021 Auteur Posté(e) le 29 avril 2021 Merci je vais m'acheter un décodeur DXF ^^ https://github.com/Fraiddd
Luna Posté(e) le 29 avril 2021 Posté(e) le 29 avril 2021 J'ai justement publié ma fonction (explore-dxf) ici. :S (bon j'ai remarqué que j'ai mal géré la numération lors de la récursivité rétrograde mais ce ne sont que des nombres donc chat ne change pas grand chose à l'extract ^^") Il y a la possibilité d'extraire les listes DXF dans un fichier .txt si on a besoin de creuser un peu loin (cela prend beaucoup moins de temps sur le fichier .txt plutôt que l'historique de commande, limité en nombre de lignes en plus) ! Bisous, Luna
Fraid Posté(e) le 30 avril 2021 Auteur Posté(e) le 30 avril 2021 j'ai finis par trouver une solution VLA, par la méthode vla-GetLoopAt avec laquelle je crée la liste des objets associés à une hachure (defun get-obj-assh (acdc / ret loop) (vlax-for obj (vla-get-modelspace acdc) (if (= (vla-get-ObjectName obj) "AcDbHatch") (progn (vla-GetLoopAt obj 0 'loop) (if (= (type loop) 'safearray)(setq ret (append ret (vlax-safearray->list loop)))) ) ) ) ret ) puis j'ai juste à vérifier si ma polyligne figure dans cette liste d'objetVLA Si ça peut intéresser quelqu’un un jour... https://github.com/Fraiddd
(gile) Posté(e) le 30 avril 2021 Posté(e) le 30 avril 2021 @Fraid, la méthode de @Luna est plus simple et plus directe : (defun getHatch (ent / hatch) (cdr (assoc 330 (member '(102 . "{ACAD_REACTORS") (entget ent)))) ) Parfois, la bonne vielle méthode du DXF est plus simple... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Fraid Posté(e) le 30 avril 2021 Auteur Posté(e) le 30 avril 2021 oui, ou dans le filtre d'un ssget, mais c'est incorporé dans une routine en vla alors je fait l'effort de chercher et puis c'est aussi, à chaque fois un hommage à Patrick ... le truc poilu nous manque 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