Aller au contenu

Enlever Surbrillance


Messages recommandés

Posté(e)

Salut,

pour enlever la surbrillance d'un groupe d'objet vla (lister dans lst-sel), ceci ne fonctionne pas :

(foreach n lst-sel (vla-Highlight n False))

 

je suis obligé de faire un

(vla-Regen (vla-get-ActiveDocument (vlax-get-acad-object)) acActiveViewport)

 

ce qui est vraiment trés lourd !!!!

 

Auriez-vous une solution svp ?

merci.

 

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Trouvé dans l'aide VBA

Remarks

 

Once the highlight flag for an object has been set, a call to the Update or Regen method is required to view the change.

 

Note that this function does not return the current highlight status of an object.

 

 

Essayes la méthode update qui sera certainement moins contraignante.

 

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

Posté(e)

Salut vous deux , et merci ;)

 

Bonuscad : j'ai en effet aussi vu cette remarque, mais j'avous ne pas la comprendre... j'ai essayé aussi avec vla-update, mais je n'ai pas réussis à l'utiliser car cela m'a renvoyer une erreur "update inconnu" ...

 

Patrick_35 : En effet, mais c'est du tapé à la volée et je suis allez encore trops vite : :vlax-False ou 0 n'a pas l'air de fonctionner !....

 

[Edité le 10/7/2007 par Bred]

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

C'est bonus qui va être content ;)

 

Sinon, ça fonctionne bien sur des entités simples.

Autrement, il reste la solution du redraw. C'est ce que j'utilise avec les attributs.

 

@+

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)
C'est bonus qui va être content

pffffffff.... non mais quel c.. je suis !!! :P :P :P

désolé bonuscad, j'étais en parrallèle sur un autre post et j'ai mélangé les 2 !!!

 

merci ! merci ! merci !

 

:calim:

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Alors,

vla-update ne fonctionne pas (j'ai l'impression que ça me remet à jour la selection, mais sans m'enlever la surbrillance)

et

(redraw ent 4) ne fontionne pas....

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Ah, ben une manière qui à l'air moins lourde :

(command)

.... votre avis ?

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Bred,

 

Sur quel type d'entité travaille tu?

Car en fait, moi je n'ai aucun problème avec la surbrillance, que ce soit avec (redraw) ou (vla-Highlight)

 

Pour moi ces lignes fonctionnent correctement:

 

((lambda ( / lst_sel e)

(while (setq e (entsel))

(setq lst_sel (cons (vlax-ename->vla-object (car e)) lst_sel))

)

(cond

(lst_sel

(initget "ON OFF")

(if (eq (getkword "\nSurbrillance [ON/OFF]: ") "ON")

(foreach n lst_sel (vla-Highlight n :vlax-True))

(foreach n lst_sel (vla-Highlight n :vlax-False))

)

)

)

))

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

Posté(e)

Salut bonuscad,

en fait je n'ai pas tout dit : ça ne fonctionne pas si la selection est faites avant de lancer la commande !

Test ça en selectionnant avant de lancer "test" :

 

(defun c:test (/ sel lst-sel x)
(setq sel nil
     x 0
     sel (ssget "I"))
 (while (not sel)
   (setq sel (ssget ":L")))    
 
 (repeat (sslength sel)
   (setq lst-sel (append lst-sel (list (vlax-ename->vla-object (ssname sel x))))
  x (+ 1 x)))
  (alert "Test enleves Surbrillance")

 (foreach n lst-sel (vla-mirror3D n (vlax-3D-point '(0 1 0)) (vlax-3D-point '(2 10 0))(vlax-3D-point '(0 0 0))))
 (foreach n lst-sel (vla-Highlight n :vlax-False))    
   )

 

 

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Pour les grips ce n'est pas identiques.

 

Si tu mets simplement ceci en fin de ton exemple, tu n'as plus de problème :P

(sssetfirst nil nil)

 

Y a t-il un équivalent en vla ? J'ai pas regardé...

 

[Edité le 10/7/2007 par bonuscad]

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

Posté(e)

Bonus à raison, rien à voir avec les grips

 

Sinon, quelque chose comme cela

 

(defun c:test(/ sel)
 (or (cadr (ssgetfirst))
   (ssget ":L")
 )
 (setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object))))
 (sssetfirst nil)
 (vlax-map-collection sel '(lambda(x) (vla-highlight x :vlax-false)))
 (vla-delete sel)
 (princ)
)

 

@+

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)

Re,

(sssetfirst nil nil) fonctionne donc ....

merci !!!!

 

Pour les grips ce n'est pas identiques.
Bonus à raison, rien à voir avec les grips

 

Ouaouh !....

En fait j'avais l'impression de ne pas me faire comprendre, pour me rendre compte que je faisais totalement fausse route !

Pour moi, que la selection soit faites avant ou après, c'était toujours le même type de "surlignement" !...

Mais non !

Vous venez de me faire découvrir l'évidence : En fait c'est faux de dire "sélection avant commande" ! La "sélection avant commande" est en fait un outils qui lance les grips, et si on lance une commande, l'outils "grips" passe en sélection !....

C'est marrant, je me fait jamais avoir par ce genre de logique (évidente) informatique d'habitude....

je vieillis.....

 

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

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é