Aller au contenu

Super highlight


Messages recommandés

Salut,

Je cherche un moyen d'améliorer le highlight de base des entités.

Pour la compatibilité avec A2010, je ne peux pas utiliser les arguments de Highlight :

subId As FullSubentityPath,

highlightAll As [MarshalAs(UnmanagedType.U1)] bool

 

 

Ce que je veux, c'est mettre en évidence des entités qui ne sont pas survolées par la souris, mais sélectionnées depuis un tableau.

 

J'ai testé la méthode HighlightOverrule, qui fonctionne mais a provoqué un crash net d'Autocad, et je n'ai pas réussi à l'adapter à mon cas, je n'ai pu la faire fonctionne qu'avec le survol souris.

 

J'ai utilisé la méthode TransientManager Methods, avec l'attribut DirectShortTerm, je n'ai pas testé les autres (je n'ai pas compris leur utilité):

 

Main

Sprite

DirectShortTerm

Highlight

DirectTopmost

Contrast

 

Mais elle ne donne pas de très bon résultats avec les blocs, et aucun avec les points.

 

Pour moi, l'idéal pour les blocs et les points, serai de dessiner une rectange temporaire autour, genre celui de getcorner, ou comme ce que l'on peut faire avec grdraw en lisp

 

Je n'ai pas trouvé l'équivalent en .Net, mais j'ai tellement à découvrir !

 

j'ai également trouvé la propriété HighlightStyle de Autodesk.AutoCAD.GraphicsSystem

 

Qui a ces valeurs:

None

Custom

DashedAndThicken

Dim

ThickDim

 

Mais je n'ai pas compris comment les utiliser.

 

Si quelqu'un a une idée ?

merci d'avance,

Gérald

----------------------------------------------------------------------

Site: https://www.g-eaux.fr

Blog: http://g-eaux.over-blog.com

Lien vers le commentaire
Partager sur d’autres sites

> Pour la compatibilité avec A2010, je ne peux pas utiliser les arguments de Highlight

 

Je ne comprends pas ce que tu veux dire par là parce que la signature de Entity.Highlight n'a pas changé entre AutoCAD 2010 et les versions qui ont suivi. En plus, je ne vois pas ce que tu pourrais faire de plus car le premier argument est un chemin de sous-entité à utiliser quand tu travailles sur un solide 3D (pour sélectionner une face ou une arête) et le deuxième c'est pour préciser si la surbrillance doit apparaître dans toutes les fenêtres ou uniquement celle qui est active.

 

Si je comprends bien, tu veux entourer les entités sélectionnées avec un rectangle. Donc HighlightOverrule ne convient pas car il n'y a de contexte de dessin qui est passée aux méthodes Highlight et Unhighlight. Tout ce que tu peux faire, c'est modifier les attributs de l'entité qui est mise en surbrillance (par exemple pour changer sa couleur comme dans cet exemple.

 

A priori TransientManager devrait faire l'affaire. DirectShortTerm semble être le mode le plus approprié. Tu n'as pas besoin du Z-Buffer puisque tu veux dessiner au dessus des entités existantes. Tu veux une mise en surbrillance personnalisée, donc Highlight ne fait pas non plus l'affaire. Tu as un exemple ici.

 

Mais si tu cherches un équivalent à grdraw, c'est Editor.DrawVector et Editor.DrawVectors (grvecs) qui feront ton bonheur.

Maxence DELANNOY

Développement de compléments aux logiciels Autodesk : AutoCAD, Revit, Inventor, Vault, Navisworks... et autres logiciels de CAO

WIIP - http://wiip.fr

Lien vers le commentaire
Partager sur d’autres sites

Bonjour, merci de cette réponse,

sous Autocad 2010, j'ai eu des erreurs avec l'utilisation des arguments de Highlight :

subId As FullSubentityPath,

highlightAll As [MarshalAs(UnmanagedType.U1)] bool

Je n'avais pas ce problème en utilisant highlight sans arguments

Je pensais que suBid permettait de gérer les sous entités des blocs, ce qui aurait permis de changer l'apparence des entités dont les caractéristiques n'étaient pas "dubloc"

 

Les liens que tu donne pour Overrules et TransientManager sont ceux que j'ai utilisé pour mes recherches

Mon problème c'est la réelle compréhension de Overrules:

J'ai réussi à faire fonctionner overrules, mais Je n'ai pas réussi à l'adapter à mon problème, car je pense que je n'ai pas compris le concept.

 

Transient fonctionne, mais pas avec les blocs.

 

Je vais donc utiliser Editor.DrawVector et Editor.DrawVectors, dont je devrais comprendre le fonctionnement sans peine ...

merci,

Gérald

----------------------------------------------------------------------

Site: https://www.g-eaux.fr

Blog: http://g-eaux.over-blog.com

Lien vers le commentaire
Partager sur d’autres sites

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é