Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

Pour faire suite à ce Post

 

ou j'utilise cette fonction

(defun GTHA ( doc / area)
(setq area 0.0)
(vlax-for obj (vla-get-ModelSpace doc)
(if (= (vla-get-ObjectName obj) "AcDbHatch")
  (setq area (+ area (vla-get-Area obj)))
)
)
area
)

Je n'ai pas réussi à filtrer la sélection avec un vla-get-hatch ou hatchs qui n'existe pas, contrairement à vla-get-blocks par exemple.

Du coup me suis rabattu sur vla-get-ModelSpace, pas bon pour la planète puisque nous explorons tout ce qu'il y a dans l'espace objet...

Y a t'il une façon de sélectionner les hachures (sans ssget évidement).

Mercich

Posté(e)

Non, il n'y a pas d'autre moyen.

vla-get-blocks comme vla-get-Layers, ou vla-get-Layouts, etc. retournent des collections d'objets non graphiques contenus dans des "tables" ou des "dictionnaires".

Pour les entités graphiques on est toujours obligé de parcourir le (ou les) espace() et ou définition(s) de bloc qui les contiennent (ces instances de AcDbBlockTableRecord peuvent être vues comme des collections d'entités graphiques). Les sélections sans spécifications géométriques (point, fenêtre, capture, trajet, etc.) même quand elles sont filtrées procèdent de même, en parcourant toute la base de données (ou le ou les espaces s'ils sont filtrés).

Seule exception, une sélection de toutes les référence d'un bloc peut se faire directement depuis la définition du bloc (le "BlockRecord" plus précisément), voir ce sujet.

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é