Bred Posté(e) le 9 juillet 2007 Posté(e) le 9 juillet 2007 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...
bonuscad Posté(e) le 9 juillet 2007 Posté(e) le 9 juillet 2007 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
Patrick_35 Posté(e) le 9 juillet 2007 Posté(e) le 9 juillet 2007 Salut (foreach n lst-sel (vla-Highlight n False)) (foreach n lst-sel (vla-Highlight n :vlax-False)) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Bred Posté(e) le 9 juillet 2007 Auteur Posté(e) le 9 juillet 2007 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...
Patrick_35 Posté(e) le 10 juillet 2007 Posté(e) le 10 juillet 2007 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 PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Bred Posté(e) le 10 juillet 2007 Auteur Posté(e) le 10 juillet 2007 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...
Bred Posté(e) le 10 juillet 2007 Auteur Posté(e) le 10 juillet 2007 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...
Bred Posté(e) le 10 juillet 2007 Auteur Posté(e) le 10 juillet 2007 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...
bonuscad Posté(e) le 10 juillet 2007 Posté(e) le 10 juillet 2007 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
Bred Posté(e) le 10 juillet 2007 Auteur Posté(e) le 10 juillet 2007 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...
bonuscad Posté(e) le 10 juillet 2007 Posté(e) le 10 juillet 2007 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
Patrick_35 Posté(e) le 10 juillet 2007 Posté(e) le 10 juillet 2007 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 PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Bred Posté(e) le 10 juillet 2007 Auteur Posté(e) le 10 juillet 2007 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...
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant