Aller au contenu

Style visuel courant


bseb67

Messages recommandés

Salut,

 

Étant donné que je cherche la chose en lisp, ou vlisp, je poste ici mon petit problème :

 

- en lisp j'arrive à créer un nouveau style visuel

- de même qu'à l'effacer

 

Mais petit hic, si le style visuel encours est celui que je veux effacer, forcément

cela ne marche pas. Donc j'ai voulu voir si une variable autocad contenait

le nom du style visuel encours, et bien non :(

 

Il y a des variables qui sont changées lorsque l'on change de style visuel, mais ceux

sont celles qui sont paramétrées par le style.

 

La chose qui m'énerve le plus, c'est qu'en faisant:

Commande: -STYLESVISUELS

 

Entrez une option [définir Courant/Sauvenom/Renommer/sUpprimer/?]: c

 

Entrez une option [filaire2d/filaire3d/Masqué3d/Réaliste/Conceptuel/Autre] :

 

il me met bien comme style encours celui que j'ai créé, mais où autocad cache-t-il ca?

 

Merci aux chercheurs ;)

Tous pour lisp, Lisp pour tous!

Avec Revit, cela ne vas trop vite...

Lien vers le commentaire
Partager sur d’autres sites

salut zebulon,

 

c'est justement là que je pensais trouver quelque chose, mais non :(

 

car pour l'ajout je fais:

(setq style_visuel_ent_dic (dictsearch (namedobjdict) "ACAD_VISUALSTYLE")
         style_visuel_dic (cdr (assoc -1 style_visuel_ent_dic))
         style_TK_3D (entmakex '((0 . "VISUALSTYLE")(100 . "AcDbVisualStyle")(2 . "TK-3D")(70 . 10)
                                (71 . 3)(72 . 2)(73 . 1)(90 . 0)(40 . -0.6)(41 . -30.0)(62 . 5)(63 . 7)
                                (421 . 16777215)(74 . 2)(91 . 0)(64 . 7)(65 . 257)(75 . 1)(175 . 1)(42 . 80.0)
                                (92 . 8)(66 . 250)(43 . 1.0)(76 . 1)(77 . 6)(78 . 2)(67 . 7)(79 . 3)(170 . 0)
                                (171 . 0)(290 . 0)(174 . 0)(93 . 13)(44 . 0.0)(173 . 0)(45 . 0.0)))
)

 

et pour le retrait:

(dictremove style_visuel_dic "TK-3D")

 

Et comme on peut appliquer un style visuel pour chaque fenêtre de l'espace papier,

ce qui fait que même si l'espace objet n'est pas dans mon style TK-3D, il suffit

qu'une seule fenêtre de l'espace papier le soit, pour que l'on ne puisse pas retirer

le style TK-3D

 

De ce fait, je pensais que l'info était stocké dans le dxf du viewport, mais je n'ai rien trouvé...

 

Tous pour lisp, Lisp pour tous!

Avec Revit, cela ne vas trop vite...

Lien vers le commentaire
Partager sur d’autres sites

Euh.... si je crois avoir trouvé, mais faut je trouve le décodage:

en vl il y a une option qui s'appelle VisualStyle

 

en faisant :

(setq s (ssget "x" '((0 . "VIEWPORT"))))

 

(vla-get-VisualStyle (vlax-ename->vla-object (ssname s 0))) =>

1 pour filaire 2d

3 pour filaire 3d

6 pour mon style

 

sauf que le dictionnaire lui contient 17 styles visuels :casstet: et que mon style est le dernier

de la liste. Si j'utilise un nom commencant par A il se retrouve en 4ème position dans le dictionnaire.

 

Dans l'ordre:

2dWireframe

3D Hidden

3dWireframe

ATK-3D

Basic

Brighten

ColorChange

Conceptual

Dim

Facepattern

Flat

FlatWithEdges

Gouraud

GouraudWithEdges

Linepattern

Realistic

Thicken

TK-3D

 

Tous pour lisp, Lisp pour tous!

Avec Revit, cela ne vas trop vite...

Lien vers le commentaire
Partager sur d’autres sites

Euh... ouais, c'est un peu flou pour moi également.

 

Il y a tout d'abord que la liste des noms est toujours selon l'ordre alphabétique.

Il y a aussi que le gestionnaire de styles visuels en affiche 5 par défaut, un 6ème si on en rajoute un perso, mais il y en a beaucoup plus dans le dictionnaire.

 

 (defun c:vstyl ()
 (setq dics (vla-get-dictionaries (vla-get-Activedocument (vlax-get-acad-object))))
 (setq dic (vla-item dics "ACAD_VISUALSTYLE"))
 (setq LSTY nil)
 (vlax-for item dic
   (setq NOM (vla-getname dic item))
   (setq LSTY (cons NOM LSTY))
 )
 (print (reverse LSTY))
 (princ)
)

 

me donne la liste

("2dWireframe" "3D Hidden" "3dWireframe" "Basic" "Brighten" "ColorChange"

"Conceptual" "Dim" "EdgeColorOff" "Facepattern" "Flat" "FlatWithEdges"

"Gouraud" "GouraudWithEdges" "JitterOff" "Linepattern" "OverhangOff"

"Realistic" "Thicken" "zzzz")

 

qui compte 20 par défaut + 1 perso. Donc, bien plus que ce à quoi je m'attendais...

 

Il y a peut être une table d'indexation quelque part ?

 

Amicalement

Vincent

 

 

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Lien vers le commentaire
Partager sur d’autres sites

RE,

 

J'ai trouvé :). enfin pour l'espace papier:

 

dans le code DXF du VIEWPORT, il y a le n° 348 qui lui pointe directement sur l'entité

définissant le style visuel.

 

Donc c'est ok pour ca :D me reste juste celui de l'espace objet.

Pour une fois (de plus) le vla est moins pratique que le DXF ;)

 

Merci encore de m'avoir fait relancé. J'étais retourné sur un autre lisp pour libérer

mon crane de ce problème. Comme toujours : quand c'est la mer... laisse la tomber,

fait autre chose et revient plus tard

Tous pour lisp, Lisp pour tous!

Avec Revit, cela ne vas trop vite...

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é