l56 Posté(e) le 24 janvier 2020 Posté(e) le 24 janvier 2020 Bonjour, Je peux changer la couleur de la ligne élastique par la boite de dialogue OPTIONS mais je ne trouve pas la variable correspondante pour le faire en LISP ou en VLISP. Si quelqu'un avait l’info, je suis preneur... MerciL56
didier Posté(e) le 24 janvier 2020 Posté(e) le 24 janvier 2020 Coucou Je pense que ça n'est pas possible toutefois je guette les réponses si quelqu'un venait me contredire je serais ravi d'apprendre comment faire. Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
bonuscad Posté(e) le 27 janvier 2020 Posté(e) le 27 janvier 2020 Bonjour, Je peux changer la couleur de la ligne élastique par la boite de dialogue OPTIONS mais je ne trouve pas la variable correspondante pour le faire en LISP ou en VLISP. Si quelqu'un avait l’info, je suis preneur... MerciL56Bonjour, Cela doit être possible avec (getenv) et (setenv). Le problème c'est qu'il y a une "fouletitude" de variables avec des noms à rallonge et qu'il n'y a aucune documentation à ce sujet. Tout est dans le registre windows. Voir cette explicationBon courage !Par exemple un truc qui ne répond pas à ta demande mais qui montre l'utilisation de (setenv) et (getenv): cela bascule l'affichage en Noir ou Blanc.(defun c:BlackAndWhite ( / disp fonc1 fonc2 togg_bk togg_cr bg_color cr_color) (vl-load-com) (setq disp (vla-get-display (vla-get-preferences (vlax-get-acad-object)))) (if (zerop (getvar "tilemode")) (setq fonc1 '(vla-put-GraphicsWinLayoutBackgrndColor disp bg_color) fonc2 ' (vla-put-LayoutCrosshairColor disp cr_color) togg_bk (getenv "Layout background") togg_cr (getenv "LayoutXhairPickboxEtc") ) (setq fonc1 '(vla-put-GraphicsWinModelBackgrndColor disp bg_color) fonc2 '(vla-put-ModelCrosshairColor disp cr_color) togg_bk (getenv "Background") togg_cr (getenv "XhairPickboxEtc") ) ) (cond ((and (eq togg_bk "0") (eq togg_cr "14079702")) (setq bg_color 16777215 cr_color 2960685) ) ((and (eq togg_bk "16777215") (eq togg_cr "2960685")) (setq bg_color 0 cr_color 14079702) ) (T (initget "Noir Blanc _Black White") (if (eq (getkword "\nCouleur de fond [Noir/Blanc]? <Noir>: ") "White") (setq bg_color 16777215 cr_color 2960685) (setq bg_color 0 cr_color 14079702) ) ) ) (eval fonc1)(eval fonc2) (princ) ) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
l56 Posté(e) le 9 mars 2020 Auteur Posté(e) le 9 mars 2020 Bonjour et merci pour vos réponses. Dans la base de registre la couleur de la ligne élastique est stockée dans la clé : "Ordinateur\HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R23.1\ACAD-3001:40C\Profiles\<<Profil sans nom>>\Dynamic Dimension""Model Rubber-band Line Color"Valeur par défaut de la clé : 1eb4f0(2012400) soit (240,181,30) (proche de la couleur Orange) Si je change la couleur (en rouge par exemple) via la boite de dialogue OPTIONS (je referme la boite après avoir fais APPLIQUER)dans la base de registre la valeur de la clé devient : ff(255) soit (1) la couleur rougeet je constate que le ligne élastique à bien changer de couleur, rouge. Par contre si je change la valeur de la clé via le code ci-dessous, la valeur de la clé se modifie bien dans la base de registre mais la ligne élastique ne change pas de couleur.Et quand je quitte AUTOCAD, la clé se modifie et revient à la valeur précédente.(vl-registry-write (strcat "HKEY_CURRENT_USER\\" (vlax-machine-product-key) "\\Profiles\\" (getvar "cprofile") "\\Dynamic Dimension") "Model Rubber-band Line Color" 255) Comment faire pour que le changement effectué dans la base de registre soit effectif dans AUTOCAD ?Est-ce au moins possible ? Merci
bonuscad Posté(e) le 9 mars 2020 Posté(e) le 9 mars 2020 Bonjour et merci pour vos réponses. Dans la base de registre la couleur de la ligne élastique est stockée dans la clé : "Ordinateur\HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R23.1\ACAD-3001:40C\Profiles\<<Profil sans nom>>\Dynamic Dimension""Model Rubber-band Line Color"Valeur par défaut de la clé : 1eb4f0(2012400) soit (240,181,30) (proche de la couleur Orange) Si je change la couleur (en rouge par exemple) via la boite de dialogue OPTIONS (je referme la boite après avoir fais APPLIQUER)dans la base de registre la valeur de la clé devient : ff(255) soit (1) la couleur rougeet je constate que le ligne élastique à bien changer de couleur, rouge. Par contre si je change la valeur de la clé via le code ci-dessous, la valeur de la clé se modifie bien dans la base de registre mais la ligne élastique ne change pas de couleur.Et quand je quitte AUTOCAD, la clé se modifie et revient à la valeur précédente.(vl-registry-write (strcat "HKEY_CURRENT_USER\\" (vlax-machine-product-key) "\\Profiles\\" (getvar "cprofile") "\\Dynamic Dimension") "Model Rubber-band Line Color" 255) Comment faire pour que le changement effectué dans la base de registre soit effectif dans AUTOCAD ?Est-ce au moins possible ? Merci C'est bien, t'as trouvé le nom de la variable. Si tu fais maintenant en ligne de commande : (setenv "Model Rubber-band Line Color" "255") soit 255,0,0 pour rouge, cela devrait être immédiat.Pour remettre en orange : (setenv "Model Rubber-band Line Color" "2012400") nb:(getenv "Model Rubber-band Line Color") te donnera la couleur courante Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
l56 Posté(e) le 30 mars 2020 Auteur Posté(e) le 30 mars 2020 J'ai mis un peu de temps à revenir sur le site, mais je ne pouvais plus y accéder.Merci Bonuscad, c'est parfait. (J'aurais pu y penser tout seul !)
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