Aller au contenu

Messages recommandés

Posté(e)

Bonjour à tous

 

Je dois extraire la totalité des entités graphiques contenues dans une sélection, y compris les entités imbriquées.

 

J'ai fait la récursive ci-dessous, qui a l'air de bien marcher.

Elle part juste du 1er objet sélectionné, et elle renvoie tout ce qu'elle trouve (également les VERTEX et SEQUEND mais ce n'est pas grave).

Elle cherche dans les RefBlocs, les Xrefs, les Tableaux et les Cotations.

 

Ma question porte sur ces objets containers, car le but est de la généraliser à tous les contextes.

Existe t'il d'autres objets containers que ceux de la liste '("INSERT" etc..) ?

Y a t'il un test plus efficace que celui là ?

Comment ça se passe si des nouveaux objets apparaissent ?

 

(defun c:do (/ result)
 (GetNested (ssname (ssget) 0))
 (print result)
 (princ)
)
(defun GetNested (xent / xnom ient)
 (if (member (cdr(assoc 0 (entget xent))) '("INSERT" "ACAD_TABLE" "DIMENSION" "ARC_DIMENSION" "LARGE_RADIAL_DIMENSION"))
   (progn
     (setq xnom (cdr(assoc 2 (entget xent))))
     (setq ient (tblobjname "BLOCK" xnom))
     (while (setq ient (entnext ient))
(GetNested ient)
     )
   )
   (setq result (cons (cdr(assoc 0 (entget xent))) result))
 )
)

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é