Aller au contenu

Messages recommandés

Posté(e)

Salut,

 

J'ai regardé et observé rapidement.

 

La méthode par le code DXF 60 cache l'objet en mettant le bit à 1, mais elle met aussi la propriété de visibilité à 0 (vlax-dump-object)

 

La nouvelle méthode sous 2011 ne change PAS le code DXF 60, mais seulement la propriété de visiblité.

 

Si cette propriété est à -1 (l'objet est visible) et à 0 (l'objet est invisible)

 

Je pense (sans avoir regardé plus en profondeur) que cette nouvelle méthode doit utiliser les dictionnaires puisque qu'on peut retrouver cette propriété active d'une session à l'autre suivant l'état de la variable OBJECTISOLATIONMODE.

 

La méthode du bit (60 . 1) est plus radicale et sans connaissance de programmation plus difficile à remettre en l'état si on n'a pas l'outil.

La nouvelle méthode est moins brute et permet à quiconque de remettre la visibilité en l'état.

 

Pour ma part je ne réserverai la 1ere méthode qu'a des besoins de programmation spécifique. En utilisation courante il vaudra mieux opter pour cette nouvelle fonctionnalité.

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Hello

 

Oulala, je joue pas mal avec les routines de Gilles : INVIS, VISI et ALLVISI (pour tout revoir)

... Routines qui utilisent le fameux Flag 60 !

 

Si en plus on met par dessus la nouvelle methode de la 2011 (ou 2012)

ne faudrait il pas une super routine ALLVISI version AMELIOREE

qui retablisse le flag 60

ET qui enleve le masquage de la 2011 (ou 2012) sur l'ensemble des entites

 

ainsi au moins, on est sur de TOUT voir !

 

Qu'en pensez vous ?

 

Le Decapode (lecrabe)

 

PS: pour Patrick_35, j'ai cherche une signification a ton message fort COURT

et j'imagine que tu n'as pas de 2011 (ou 2012) ??

Autodesk Expert Elite Team

Posté(e)

PS: pour Patrick_35, j'ai cherche une signification a ton message fort COURT

et j'imagine que tu n'as pas de 2011 (ou 2012) ??

Oui

 

ps : message encore plus court, trois lettres ;)

Pour être un peu plus prolixe, je suis sur une version 2009

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Salut,

 

J'ai fait quelques tests avec les routines suivantes qui utilisent le code DXF 60 ou la propriété COM Visible:

(defun c:invisiDXF (/ ss n elst)
 (if (setq ss (ssget))
   (repeat (setq n (sslength ss))
     (setq elst (entget (ssname ss (setq n (1- n)))))
     (entmod
(if (assoc 60 elst)
  (subst '(60 . 1) (assoc 60 elst) elst)
  (append elst '((60 . 1)))
)
     )
   )
 )
 (princ)
)

(defun c:allvisiDXF (/ ent)
 (setq ent (entnext))
 (while ent
   (setq elst (entget ent))
   (entmod (subst '(60 . 0) '(60 . 1) elst))
   (setq ent (entnext ent))
 )
 (princ)
)

(defun c:invisiCOM ()
 (if (ssget)
   (progn
     (vlax-for	obj (setq ss
		   (vla-get-ActiveSelectionSet
		     (vla-get-ActiveDocument
		       (vlax-get-acad-object)
		     )
		   )
	    )
(vla-put-Visible obj :vlax-false)
     )
     (vla-delete ss)
   )
 )
 (princ)
)


(defun c:allvisiCOM ()
 (vl-load-com)
 (vlax-for blk	(vla-get-Blocks
	  (vla-get-ActiveDocument
	    (vlax-get-acad-object)
	  )
	)
   (vlax-for obj blk
     (if (vlax-property-available-p obj 'Visible)
(vla-put-Visible obj :vlax-true)
     )
   )
 )
)

 

plus le truc que j'avais fait en .NET (ici) qui utilise la propriété .NET Visible et les commandes natives (A2011).

 

Des objets cachés avec invisDXF, invisCOM, HIDENT et HIDEOBJECTS, seule la commande native UNISOLATEOBJECTS ne ré-affiche pas tous les objets (mais seulement ceux masqués avec HIDEOBJECTS).

UNISOLENT, allvisiDXF et allvisiCOM ré-affichent tous les objets.

 

Ce qui me ferait dire qu'il s'agit de la même chose en ce qui concerne DXF, COM et .NET.

 

J'imagine que les commandes natives HIDEOBJECTS et ISOLATEOBJECTS stockent les objets masqués quelque part et ne ré-affichent que ceux-ci (ce qui offre un gain de performance certain par rapport aux autres méthodes qui scannent toute la base de données).

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Hello Gilles

 

WAOUH je suis impressionne ! je sens que je vais faire qq tests ...

 

Si j'ai bien compris (pas sur) avec tes routines :

ALLVISIDXF ou ALLVISICOM : je suis SUR de revoir toutes les entites !?

 

ou bien dois je enchainer ALLVISIDXF puis ALLVISICOM ??

 

Encore merci pour tes tests et efforts !

 

Le Decapode (lecrabe)

Autodesk Expert Elite Team

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é