CADxp: AUTOCAD - Changer la couleur du fond d\'écran automatiquement ? - CADxp

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

AUTOCAD - Changer la couleur du fond d\'écran automatiquement ?

#1 L'utilisateur est hors-ligne   jifi 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 570
  • Inscrit(e) : 22-mars 05
  • LocationLausanne

Posté 18 août 2005 - 15:12

Salut,

Je ne sais pas si c'est le bon endroit pour ce sujet, mais voilà je vous expose mon souhait...

Dans le travail que j'effectue actuellement, je dois changer fréquemment la couleur de fond d'écran de l'espace objet pour des raisons de confort visuel.

Donc actuellement "OPTIONS" onglet "Affichage" bouton "Couleurs..." pui choix de la couleur (Noir ou Blanc dans mon cas) puis retour au dessin.

Existe-t-il une macro, un lisp, un script, un programme etc... que l'on pourait intégrer dans un bouton d'une barre d'outil qui ferait le switch d'une couleur à l'autre ?

Merci d'avance aux pros de la programmation, car pour ma part il me faudrait un bouquin du genre "Je programme AutoCAD pour les Nuls" ainsi que du Temps pour mettre le pied à l'étrier.

A+

[Edité le 18/8/2005 par jifi]
Jean-Philippe - Formateur / Dessinateur sur AutoCAD et MEP http://www.git-cad.ch
0

#2 L'utilisateur est hors-ligne   Tramber 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 7629
  • Inscrit(e) : 29-mars 03
  • LocationStrasbourg

Posté 18 août 2005 - 15:50

Je me suis inspiré de ce fil de discussion.

Mais j'ai retouché pour juste nous occuper de la couleur de fond, car passer par les profils est un peu lourd :

Les seules couleurs dispos sont : (je n'ai pas le temps de chercher un moyen d'en faire d'autres)

vbBlack
vbRed
vbYellow
vbGreen
vbCyan
vbBlue
vbMagenta
vbWhite


  (vl-load-com)

  (setq app (vlax-get-acad-object))

  (setq pref (vla-get-preferences app))

  (setq disp (vla-get-display pref))


(defun faitrou()(vla-put-GraphicsWinModelBackgrndColor disp vbRed))

(defun faitnoir()(vla-put-GraphicsWinModelBackgrndColor disp vbBlack))



Le lisp doit être chargé( au démarrage par exemple)

et mettre le code ^C^C(faitrou) ou ^C^C(faitnoir) dans un bouton.

Image IPB

Bureau d'études par le dessin.
Spécialiste Escaliers
Développement - Formation

Et toujours...
./__\.
(.°=°.)
0

#3 L'utilisateur est hors-ligne   jifi 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 570
  • Inscrit(e) : 22-mars 05
  • LocationLausanne

Posté 18 août 2005 - 16:23

Salut Tramber,

Merci pour ce lisp, mais je dois faire quelque chosse de faux, car ça ne fonctionne pas, j'ai ce message d'erreur qui apparaît:

Commande: (faitnoir) ; erreur: Le serveur ActiveX a renvoyé une erreur:
Paramètre non facultatif

Voici ce que j'ai fait :

- J'ai copié le lisp dans un fichier MNL qui est chargé à chaque lancement d'AutoCAD
- J'ai créé deux boutons avec ^C^C(faitrou) et ^C^C(faitnoir)

Y a-t-il autre chose à faire ?

Merci d'avance.
Jean-Philippe - Formateur / Dessinateur sur AutoCAD et MEP http://www.git-cad.ch
0

#4 L'utilisateur est hors-ligne   bonuscad 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 4028
  • Inscrit(e) : 20-juin 03

Posté 18 août 2005 - 16:45

Une autre solution en lisp mais sans utiliser l'ActiveX
Un inconvenient je suis obligé d'utiliser TILEMODE pour rafraichir la modif

Donc à la tienne, mais il faut pas abuser du whisky ;)

(defun c:BlackAndWhite ()

	(initget "Noir Blanc _Black White")

	(if (eq (getkword "\nCouleur de fond [Noir/Blanc]? : ") "White")

		(setenv "Background" "16777215")

		(setenv "Background" "0")

	)

	(if (zerop (getvar "tilemode")) (setvar "tilemode" 1) (setvar "tilemode" 0))

	(if (zerop (getvar "tilemode")) (setvar "tilemode" 1) (setvar "tilemode" 0))

	(princ)

)



Mais je regarderais ce qui cloche dans la solution de Tramber car elle m'interesse
0

#5 L'utilisateur est hors-ligne   jifi 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 570
  • Inscrit(e) : 22-mars 05
  • LocationLausanne

Posté 18 août 2005 - 16:54

Salut Bonuscad,

MERCI, ça fonctionne. :heartpump: :P

En attendant d'éviter de passer par l'espace papier, ça m'ira très bien ! :cool:

A+
Jean-Philippe - Formateur / Dessinateur sur AutoCAD et MEP http://www.git-cad.ch
0

#6 L'utilisateur est hors-ligne   Patrick_35 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 5383
  • Inscrit(e) : 06-janvier 03

Posté 18 août 2005 - 17:09

Salut
Je me suis inspiré de celui-ci

Il faut d'abord charger le lisp, puis ensuite, dans un bouton par exemple
^C^C(fondEO 1) pour le rouge
^C^C(fondEO 3) pour le vert

@+

(defun fondEO(couleur)

  (vl-load-com)

  (setq OLE_COLOR_LIST

       '(0          255        65535      65280      16776960

         16711680   16711935   16777215   8421504    12632256

         255        8421631    166        5460902    128

         4210816    76         2500172    38         1250086

         16639      8429567    10662      5466278    8320

         4214912    4940       2502732    2598       1251366

         33023      8437759    21414      5471398    16512

         4219008    9804       2505036    4902       1252646

         49151      8445951    31910      5476774    24704

         4223104    14668      2507596    7462       1253670

         65535      8454143    42662      5482150    32896

         4227200    19532      2509900    9766       1254950

         65471      8454111    42620      5482129    32864

         4227184    19513      2509891    9757       1254945

         65408      8454079    42579      5482108    32832

         4227168    19494      2509881    9747       1254941

         65344      8454047    42537      5482088    32800

         4227152    19475      2509872    9738       1254936

         65280      8454016    42496      5482067    32768

         4227136    19456      2509862    9728       1254931

         4259584    10485632   2729472    6858323    2129920

         5275712    1264640    3165222    665088     1582611

         8453888    12582784   5481984    8169043    4227072

         6324288    2509824    3755046    1254912    1910291

         12582656   14679936   8168960    9545299    6324224

         7372864    3755008    4410406    1910272    2172435

         16776960   16777088   10921472   10921555   8421376

         8421440    5000192    5000230    2500096    2500115

         16760576   16768896   10910720   10916179   8413184

         8417344    4995328    4997926    2497792    2498835

         16744448   16760704   10900224   10910803   8404992

         8413248    4990464    4995366    2495232    2497811

         16728064   16752512   10889472   10905683   8396800

         8409152    4985600    4993062    2492928    2496531

         16711680   16744576   10878976   10900307   8388608

         8405056    4980736    4990502    2490368    2495251

         16711744   16744607   10879017   10900328   8388640

         8405072    4980755    4990512    2490378    2495256

         16711808   16744639   10879059   10900348   8388672

         8405088    4980774    4990521    2490387    2495261

         16711871   16744671   10879100   10900369   8388704

         8405104    4980793    4990531    2490397    2495265

         16711935   16744703   10879142   10900390   8388736

         8405120    4980812    4990540    2490406    2495270

         12517631   14647551   8126630    9524134    6291584

         7356544    3735628    4400716    1900582    2167590

         8388863    12550399   5439654    8147878    4194432

         6307968    2490444    3745356    1245222    1905446

         4194559    10453247   2687142    6837158    2097280

         5259392    1245260    3155532    655398     1577766

         5526612    5987163    10000536   12303291   14540253

         16777215

        )

  )

  (vla-put-GraphicsWinModelBackgrndColor (vla-get-display (vla-get-preferences (vlax-get-acad-object))) (nth Couleur OLE_COLOR_LIST))

)


Ps : je viens de voir que je viens de me faire grille par Bonus, mais bon, je le poste quand même car il permet de choisir sa couleur

[Edité le 18/8/2005 par Patrick_35]
Image IPB Les Lisps de Patrick Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire. Joseph Joubert, 1754-1824
0

#7 L'utilisateur est hors-ligne   Patrick_35 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 5383
  • Inscrit(e) : 06-janvier 03

Posté 18 août 2005 - 17:12

Et le même pour EP

@+

(defun fondEP(couleur)

  (vl-load-com)

  (setq OLE_COLOR_LIST

       '(0          255        65535      65280      16776960

         16711680   16711935   16777215   8421504    12632256

         255        8421631    166        5460902    128

         4210816    76         2500172    38         1250086

         16639      8429567    10662      5466278    8320

         4214912    4940       2502732    2598       1251366

         33023      8437759    21414      5471398    16512

         4219008    9804       2505036    4902       1252646

         49151      8445951    31910      5476774    24704

         4223104    14668      2507596    7462       1253670

         65535      8454143    42662      5482150    32896

         4227200    19532      2509900    9766       1254950

         65471      8454111    42620      5482129    32864

         4227184    19513      2509891    9757       1254945

         65408      8454079    42579      5482108    32832

         4227168    19494      2509881    9747       1254941

         65344      8454047    42537      5482088    32800

         4227152    19475      2509872    9738       1254936

         65280      8454016    42496      5482067    32768

         4227136    19456      2509862    9728       1254931

         4259584    10485632   2729472    6858323    2129920

         5275712    1264640    3165222    665088     1582611

         8453888    12582784   5481984    8169043    4227072

         6324288    2509824    3755046    1254912    1910291

         12582656   14679936   8168960    9545299    6324224

         7372864    3755008    4410406    1910272    2172435

         16776960   16777088   10921472   10921555   8421376

         8421440    5000192    5000230    2500096    2500115

         16760576   16768896   10910720   10916179   8413184

         8417344    4995328    4997926    2497792    2498835

         16744448   16760704   10900224   10910803   8404992

         8413248    4990464    4995366    2495232    2497811

         16728064   16752512   10889472   10905683   8396800

         8409152    4985600    4993062    2492928    2496531

         16711680   16744576   10878976   10900307   8388608

         8405056    4980736    4990502    2490368    2495251

         16711744   16744607   10879017   10900328   8388640

         8405072    4980755    4990512    2490378    2495256

         16711808   16744639   10879059   10900348   8388672

         8405088    4980774    4990521    2490387    2495261

         16711871   16744671   10879100   10900369   8388704

         8405104    4980793    4990531    2490397    2495265

         16711935   16744703   10879142   10900390   8388736

         8405120    4980812    4990540    2490406    2495270

         12517631   14647551   8126630    9524134    6291584

         7356544    3735628    4400716    1900582    2167590

         8388863    12550399   5439654    8147878    4194432

         6307968    2490444    3745356    1245222    1905446

         4194559    10453247   2687142    6837158    2097280

         5259392    1245260    3155532    655398     1577766

         5526612    5987163    10000536   12303291   14540253

         16777215

        )

  )

  (vla-put-GraphicsWinLayoutBackgrndColor (vla-get-display (vla-get-preferences (vlax-get-acad-object))) (nth Couleur OLE_COLOR_LIST))

)


[Edité le 18/8/2005 par Patrick_35]
Image IPB Les Lisps de Patrick Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire. Joseph Joubert, 1754-1824
0

#8 L'utilisateur est hors-ligne   Tramber 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 7629
  • Inscrit(e) : 29-mars 03
  • LocationStrasbourg

Posté 18 août 2005 - 17:17

Je n'ai rien compris à la façon dont marche la routine de Bonus :o
pour moi background est une commande réservée au rendu.
Le basculement EO EP, quesakecafait là ?
Comprends rien, même si suis très interessé.

et Patrick_35 a implicitement corrigé mon lisp qui a besoin d'une initialisation des couleurs VB que provoque un prog ionstallé chez moi (pour ca il ne marche pas chez les autres, désolé)
Image IPB

Bureau d'études par le dessin.
Spécialiste Escaliers
Développement - Formation

Et toujours...
./__\.
(.°=°.)
0

#9 L'utilisateur est hors-ligne   jifi 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 570
  • Inscrit(e) : 22-mars 05
  • LocationLausanne

Posté 18 août 2005 - 17:24

Salut Patrick_35,

MERCI c'est exactement ce qu'il me fallait ! :heartpump: :red: :laugh:

Je pense que ça devrait également intéresser bonuscad.

A charge de revanche... enfin si j'y arrive un jour... :angel:

A+
Jean-Philippe - Formateur / Dessinateur sur AutoCAD et MEP http://www.git-cad.ch
0

#10 L'utilisateur est hors-ligne   Tramber 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 7629
  • Inscrit(e) : 29-mars 03
  • LocationStrasbourg

Posté 18 août 2005 - 17:37

Il manque le curseur, je m'en suis occupé et produis donc ca (qui marche MIEUX) :


(vl-load-com)

(setq disp (vla-get-display (vla-get-preferences (vlax-get-acad-object))))


(defun faitblanc()(vla-put-GraphicsWinModelBackgrndColor disp 16777215)

  (vla-put-ModelCrosshairColor    disp    0))

(defun faitnoir()(vla-put-GraphicsWinModelBackgrndColor disp 0)

  (vla-put-ModelCrosshairColor    disp    16777215))



Merci bien pour le lien Patrick_35, comme ca je profite de la discussion pour aller + loin, en plus c'était pas long.
Image IPB

Bureau d'études par le dessin.
Spécialiste Escaliers
Développement - Formation

Et toujours...
./__\.
(.°=°.)
0

#11 L'utilisateur est hors-ligne   bonuscad 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 4028
  • Inscrit(e) : 20-juin 03

Posté 18 août 2005 - 18:41

J'ais repondu la même, mais en activeX (fonctionne dans les 2 espaces pour Noir ou Blanc)

C'est similaire au code de Tramber et Patrick_35, c'est un joyeux mixage des diffèrentes solutions. ;)


(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 "32767"))

			(setq bg_color 16777215 cr_color 16711680)

		)

		((and (eq togg_bk "16777215") (eq togg_cr "16711680"))

			(setq bg_color 0 cr_color 32767)

		)

		(T

			(initget "Noir Blanc _Black White")

			(if (eq (getkword "\nCouleur de fond [Noir/Blanc]?: ") "White")

				(setq bg_color 16777215 cr_color 16711680)

				(setq bg_color 0 cr_color 32767)

			)

		)

	)

	(eval fonc1)(eval fonc2)

	(princ)

)



Pour tramber:

BackGround n'est pas une commande, mais une variable d'environnenemt
(getenv "Background") pour la couleur de fond dans l'EO[Edité le 18/8/2005 par bonuscad]

[Edité le 18/8/2005 par bonuscad]
1

#12 L'utilisateur est hors-ligne   jifi 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 570
  • Inscrit(e) : 22-mars 05
  • LocationLausanne

Posté 18 août 2005 - 21:38

Salut à tous,

Merci à vous pour votre aide, j'ai maintenant intégré le dernier code donné par bonuscad à mon menu perso et j'ai créé une petite barre d'outil me permettant de passer soit en fond noir ou en fond blanc. ça fonctionne Nickel Chrome.

Cependant, (vous allez dire que je pinaille....) je remarque que la couleur du curseur s'inverse également en noir ou blanc.

Citation

(setq bg_color 16777215 cr_color 0)
(setq bg_color 0 cr_color 16777215)


En observant le code de bonuscad, il paraît possible de changer la valeur pour les couleurs du curseur. Seulement, je ne connais pas la liste des valeurs qu'il faut entrer pour par exemple faire en sorte que mon curseur apparaise en couleur 30 d'AutoCAD sur fond noir et en couleur 5 d'AutoCAD sur fond blanc.

A priori la liste fournie dans le code de Patrick_35 doit correspondre à ce que je cherche, mais existe-t-il une table de concordance ?

Merci d'avance à tous et bonne fin de semaine. :D


Jean-Philippe - Formateur / Dessinateur sur AutoCAD et MEP http://www.git-cad.ch
0

#13 L'utilisateur est hors-ligne   Tramber 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 7629
  • Inscrit(e) : 29-mars 03
  • LocationStrasbourg

Posté 18 août 2005 - 23:34

Citation

A priori la liste fournie dans le code de Patrick_35 doit correspondre à ce que je cherche, mais existe-t-il une table de concordance ?


Ben oui, tu prends sa liste et tu as la suite des codes dans l'ordre des numéros.

C'est pour ca qu'il propose un (nth Couleur liste) à la fin de sa fonction vla-put-GraphicsWinLayoutBackgrndColor

Couleur 30 sera la couleur renvoyée par (nth 30 OLE_COLOR_LIST).
Lance l'expression en ayant chargé son lisp et tu auras le numéro de la table de correspondance.

Pour Bonuscad,

si, si Background est une commande du module de rendu. J'ignorais qu'elle existait en variable d'environnement.
Partant de là, je n'avais pas bien lu ton lisp et me demandait ce qui se passait ;)
Image IPB

Bureau d'études par le dessin.
Spécialiste Escaliers
Développement - Formation

Et toujours...
./__\.
(.°=°.)
0

#14 L'utilisateur est hors-ligne   bonuscad 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 4028
  • Inscrit(e) : 20-juin 03

Posté 19 août 2005 - 00:12

Jifi

J'ai édité mon précédent post.

Celui-ci tient compte de tes couleurs, et j'ai rajouté quelques lignes pour que l'execution se fasse en mode bascule sans te poser de question SI l'état initial correspond a tes couleurs (normales ou inverse)

Tu peux avoir la correspondance des codes de couleur en procédant comme suit:
Tu vas dans les options pour fixer les couleurs normalement, une fois validé, tu les interroges avec


(getenv "Background") pour le fond en EO
(getenv "XhairPickboxEtc") pour le fond en EO

(getenv "Layout background") pour le fond en EP
(getenv "LayoutXhairPickboxEtc") pour le curseur en EP

0

#15 L'utilisateur est hors-ligne   jifi 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 570
  • Inscrit(e) : 22-mars 05
  • LocationLausanne

Posté 19 août 2005 - 11:21

Salut,

MERCI MERCI MERCI !!!!! :heartpump: :present: :red:

Ca fonctionne de mieux en mieux, bientôt je n'aurai plus besoin de cliquer.... ça changera d'après ma pensée.....

A+


Jean-Philippe - Formateur / Dessinateur sur AutoCAD et MEP http://www.git-cad.ch
0

#16 L'utilisateur est hors-ligne   jifi 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 570
  • Inscrit(e) : 22-mars 05
  • LocationLausanne

Posté 04 août 2008 - 11:13

Salut,

Je reviens avec ce sujet, car j'aimerai savoir comment l'améliorer...

Tout fonctionne bien, mais la couleur du vecteur Autotrack reste noire il faudrait donc pouvoir la paramétrer.

J'imagine qu'il faut créer des nlles variables "fonc" et "togg" etc...

J'ai cherché à modifier le code, mais je me rend compte que mes compétences en lisp ne sont pas encore assez bonnes pour cette tâche.

Merci d'avance à ceux qui pourront m'aider a améliorer cette fonction et si en plus il était possible de changer la couleur des marqueurs Autosnap... alors ce serait le top.

@plus
Jean-Philippe - Formateur / Dessinateur sur AutoCAD et MEP http://www.git-cad.ch
0

#17 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 9622
  • Inscrit(e) : 02-septembre 05

Posté 04 août 2008 - 17:40

Salut Jifi,

Pour le vecteur Autotrack :

(getenv "Autotracking vector")

Pour le marqueur Autosnap :

(getenv "Autotracking vector")


Fais des test depuis la boite de dialogue Options onglet Affichage > Couleur pur connaître les codes suivant les couleurs.

Pour trouver les variables système ou d'environnement j'utilise les LISP statvar et statenv de Bonuscad (voir ici)
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

#18 L'utilisateur est hors-ligne   -Olivier- 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 693
  • Inscrit(e) : 08-mars 12

Posté 25 juin 2013 - 14:21

Bonjour et merci à vous tous, cela faisait un petit moment que je cherchais à automatisé ceci.
Olivier
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)