fabcad Posté(e) le 13 mars 2013 Posté(e) le 13 mars 2013 Bonjour, J'ai créé une routine pour affecter un style de tracé d'une table STB vers son calque éponyme. Elle fonctionne mais je souhaiterais l'améliorer en évitant la création de Listes de mots-clés et les Cond. Peut-on accéder aux tables de styles de tracé via Autolisp ou Vlisp ? D'avance merci, Fabcad le Rennais MétropolitainAffecter-Styles_de_Trace.lsp
GEGEMATIC Posté(e) le 14 mars 2013 Posté(e) le 14 mars 2013 salut,de mémoire, c'est un casse tête, car la liste des styles de tracés "utilisables" dépends de la table liée. Je te passe une série d'exemples qui datent de 2000, donc de mes débuts avec Visual-Lisp et les dictionnaires, donc c'est pas du 100%De mémoire, c'est aussi chiant que les styles de hachures, qui dépendent des fichiers pat situés dans le path d'Autocad.Pour quelque chose de plus clean, il faudrait peut être voir du coté de .Net pour avoir la liste des styles:;*************************************************************************** ;§/dxf/liste les style présent dans un dictionnaire/ndic ; ** si ndic = MLINE_STYLE alors retourne style de multiligne ;; = "ACAD_PLOTSTYLENAME" retourne styles de tracé ;; (defun pw_l_dic ( ndic / dic res l ) (setq dic (dictsearch (namedobjdict) ndic )) (setq res nil) (foreach l dic (if (= 3 (car l)) (setq res (cons (strcase (cdr l)) res)) ) ) (setq res res) ) A utiliser de cette manière (compléter):(setq pw-l-pstyle (append '("DUCALQUE" "DUBLOC" "0" "1") (pw_l_dic "ACAD_PLOTSTYLENAME") ) ) Pour sélectionner un style de tracé avec la liberté de changer de table, j'utilise un dialogue Autocad:Cette méthode a l’inconvénient de changer le style courant, pour revenir au style précédent, j'utilise pw_retpstyle, mais ça ne marche pas toujours ; ***************************************************************************** ;;§/ini/selectionne une style de tracé au moyen de la case de dialogue autocad/ps ; (defun pw_ch_pstyle ( ps / res ) ;(sssetfirst nil) ;; efface tout jeu de selection préalable (setq pw-cplotstyle (getvar "cplotstyle")) (initdia) (command "_.PLOTSTYLE" ) (setq res (pw_trad_pstyle (getvar "cplotstyle"))) (setq res res) ) ; ***************************************************************************** ;;§/ini/rétablie le pstyle précédent dans les cas pw_sel de pw_dia/none ;;si le style n'est plus valable, ça plante ; (defun pw_retpstyle () (if pw-cplotstyle (if (pw_est_nouv_dic pw-cplotstyle "ACAD_PLOTSTYLENAME") ;;si à l'issue du dialogue, le style est toujours valable (pw_setvar "CPLOTSTYLE" pw-cplotstyle) ;; tante de le rétablir ) ) (setq pw-cplotstyle nil) ;;même *error* n'en tiendrat plus compte ) ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
fabcad Posté(e) le 14 mars 2013 Auteur Posté(e) le 14 mars 2013 Bonjour, Merci Gegematic pour tes réponses. Bonne journée, Fabcad le Rennais Métropolitain
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