bseb67 Posté(e) le 26 août 2009 Posté(e) le 26 août 2009 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émentcela ne marche pas. Donc j'ai voulu voir si une variable autocad contenaitle 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 ceuxsont 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...
zebulon_ Posté(e) le 27 août 2009 Posté(e) le 27 août 2009 Bonjour, du côté des dictionnaires ? (dictsearch (namedobjdict) "ACAD_VISUALSTYLE") AmicalementVincent 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)
bseb67 Posté(e) le 27 août 2009 Auteur Posté(e) le 27 août 2009 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 suffitqu'une seule fenêtre de l'espace papier le soit, pour que l'on ne puisse pas retirerle 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...
bseb67 Posté(e) le 27 août 2009 Auteur Posté(e) le 27 août 2009 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 2d3 pour filaire 3d6 pour mon style sauf que le dictionnaire lui contient 17 styles visuels :casstet: et que mon style est le dernierde la liste. Si j'utilise un nom commencant par A il se retrouve en 4ème position dans le dictionnaire. Dans l'ordre:2dWireframe3D Hidden3dWireframe ATK-3DBasicBrightenColorChangeConceptualDimFacepatternFlatFlatWithEdgesGouraudGouraudWithEdgesLinepatternRealisticThicken TK-3D Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
zebulon_ Posté(e) le 27 août 2009 Posté(e) le 27 août 2009 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 ? AmicalementVincent 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)
bseb67 Posté(e) le 28 août 2009 Auteur Posté(e) le 28 août 2009 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érermon 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...
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