Aller au contenu

Ligne élastique


l56
 Partager

Messages recommandés

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...

 

Merci

L56

Bonjour,

 

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 explication

Bon 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

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

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 rouge

et 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

Lien vers le commentaire
Partager sur d’autres sites

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 rouge

et 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

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines aprè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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
 Partager

×
×
  • 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é