Aller au contenu

Messages recommandés

Posté(e)

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

Posté(e)

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

Posté(e)

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

Posté(e)

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...

Posté(e)

@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

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é