| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Hintergundfarbe ändern (8891 mal gelesen)
|
molo Mitglied Dipl. Ing. Versorgungstechnik
Beiträge: 384 Registriert: 16.07.2002 Windows 7 64 bit, AutoCAD MEP 2012
|
erstellt am: 21. Mai. 2003 14:22 <-- editieren / zitieren --> Unities abgeben:
Moin, moin, meistens Zeichne ich auf einen schwarzen Bildschirm. Manchmal benvorzuge ich aber auch einen grauen Hintzergrund um dunklere Linien besser sehen zu können. Bis jetz gehe ich immer den Weg über Option -> Anzeige -> Farben. Das ist mir allerdings etwas zu umständlich. Ich möchte auch nicht nur für die neue Hintergrundfarbe ein neues Profil anlegen. Es ist abselut in Ordung, wenn beim nächsten Starten der Hintergrund wie bei der letzten Einstellung bleibt oder auch sich wieder auf schwarz stellt. Ich dachte an einen Werkzeugkasten mit zwei Knöpfen. Einen für schwarz, einen für grau. Sicherlich ist die Hintergrundfarbe in einer Systemvariablen hinterlegt. Diese müsste ich doch einfach ämdern können. Allerdings habe ich keinen Schimmer um welche es sich handeln könnte. ------------------ Schöne Grüsse aus dem Norden Molo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 21. Mai. 2003 14:59 <-- editieren / zitieren --> Unities abgeben: Nur für molo
|
molo Mitglied Dipl. Ing. Versorgungstechnik
Beiträge: 384 Registriert: 16.07.2002 Windows 7 64 bit, AutoCAD MEP 2012
|
erstellt am: 21. Mai. 2003 15:13 <-- editieren / zitieren --> Unities abgeben:
Schade, dann scheint es wohl nicht so einfach zu gehen, wie ich dachte. Den Link hatte ich schon gelesen. Da ich aber schon vier Profile habe (mit Pit, ohne Pit, speichern in r14, speichern in r2000) will ich nicht auch noch Profile für grauen Hintergrund und schwarzen Hintergrund haben. Mit VBA kenne ich mich nicht aus und werde es auch nicht für so´ne Kleinigkeit lernen. Trotzdem Danke, so brauche ich nicht weiter suchen. ------------------ Schöne Grüsse aus dem Norden Molo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3329 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 21. Mai. 2003 15:35 <-- editieren / zitieren --> Unities abgeben: Nur für molo
Hab' da was gefunden und dank Axels Seiten funktionier's sogar. (defun ax:ToggleMSBackground (/ prefDisplay) (vl-load-com) (setq prefDisplay (vla-get-Display (vla-get-Preferences (vlax-get-acad-object)) ) ) (vla-put-GraphicsWinModelBackgrndColor prefDisplay (vlax-make-variant (if (= (vlax-variant-value (vlax-variant-change-type (vla-get-GraphicsWinModelBackgrndColor prefDisplay) vlax-vbLong ) ) 0 ) 8421504 0 ) vlax-vbLong ) ) (princ) ) Ist ein "Umschalter". Soll heißen, wenn der Hintergrund schwarz ist, wird er grau und umgekehrt. Aufruf mit (ax:ToggleMSBackground). Gruß CADchup ------------------ www.cadditions.de [Diese Nachricht wurde von CADchup am 21. Mai 2003 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
molo Mitglied Dipl. Ing. Versorgungstechnik
Beiträge: 384 Registriert: 16.07.2002 Windows 7 64 bit, AutoCAD MEP 2012
|
erstellt am: 21. Mai. 2003 16:21 <-- editieren / zitieren --> Unities abgeben:
@CADchup das ist genau das was ich suche. Jetzt muss ich noch an der Farbe etwas drehen. Ich suche eher ein helles grau Grau wie Farbe 9 oder besser noch 254. Aber das werde ich wohl hinbekommen. ------------------ Schöne Grüsse aus dem Norden Molo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
molo Mitglied Dipl. Ing. Versorgungstechnik
Beiträge: 384 Registriert: 16.07.2002 Windows 7 64 bit, AutoCAD MEP 2012
|
erstellt am: 22. Mai. 2003 08:56 <-- editieren / zitieren --> Unities abgeben:
Ich habe als Hintergrundfarbe die 12632256 gefunden. Dabei handelt es sich um ein recht helles Grau. Es war alledings gar nicht so leict für mich diese Farbzuordung rauszufinden. Hat jemand eine Idee, wo man einen überblick über die Farbnummern von true color Farben bekommen kann.
------------------ Schöne Grüsse aus dem Norden Molo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian Marx Mitglied
Beiträge: 218 Registriert: 11.12.2002 AutoCad LT 200x Athon 1600XP GeForce II MX400 256 DDR RAM 60GB Drive 16xDVD Aopen 24/10/40 Brenner TV-Karte WinTV PVR 250
|
erstellt am: 22. Mai. 2003 10:53 <-- editieren / zitieren --> Unities abgeben: Nur für molo
|
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3329 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 22. Mai. 2003 12:57 <-- editieren / zitieren --> Unities abgeben: Nur für molo
|
molo Mitglied Dipl. Ing. Versorgungstechnik
Beiträge: 384 Registriert: 16.07.2002 Windows 7 64 bit, AutoCAD MEP 2012
|
erstellt am: 22. Mai. 2003 13:15 <-- editieren / zitieren --> Unities abgeben:
|
Dig15 Ehrenmitglied V.I.P. h.c. Dipl.-Ing. für Markscheidewesen und Geodäsie
Beiträge: 5833 Registriert: 27.02.2003 DWG TrueView 2014
|
erstellt am: 22. Mai. 2003 13:20 <-- editieren / zitieren --> Unities abgeben: Nur für molo
Ich find das Lisp richtig Klasse, aber: beim Schwarzen Hintergrund sehe ich mein Fadenkreuz (schwarz auf schwarz) nicht mehr! Kann man diese Umschaltung auch noch mit einbauen? Lutz ------------------ May the force be with you! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
plank Mitglied Hochbauzeichner
Beiträge: 77 Registriert: 14.08.2002 AutoCAD 2002 Palladio X5 (Architektur Applikation)
|
erstellt am: 22. Mai. 2003 13:41 <-- editieren / zitieren --> Unities abgeben: Nur für molo
Ich kann nur zwischen schwarz und grau wechseln. Was muss ich in dem lisp abändern, damit ich zwischen grau und weiss wechseln kann ? [Diese Nachricht wurde von plank am 22. Mai 2003 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 22. Mai. 2003 14:49 <-- editieren / zitieren --> Unities abgeben: Nur für molo
Bemerkung wg. der Abweichung: Das weiter oben ist eine Formel, wie man eine RGB-Farbe bildet. Sie besteht aus 3 Bytes (= 24 bit). Erstes Byte Rot, zweites Byte Grün, drittes Byte Blau. Jedes Byte kann Werte von 0..255 annehmen. 255,0,0 == Rot pur 255,255, == Gelb usw. Die Windows-Farben werden nach der Formel 65535 * Blau + 256 * Grün + 1 * Rot berechnet, so wie oben. Die nachstehende Funktion setzt die Farben ohne Umweg über Profile usw.:
Code:
(defun set-colors (bg ch / display) (vl-load-com) (setq bg(vlax-make-variant bg 19)) (setq ch(vlax-make-variant ch 19)) (setq display (vla-get-display (vla-get-preferences (vlax-get-acad-object) ) ) ) (vla-put-graphicsWinModelBackgrndColor display bg) (vla-put-modelCrosshairColor display ch) );Hilfsfunktion (macht das selbe wie oben die von Cadchup, nur schneller) (defun rgb->win(r g b / ) (+(lsh b 16)(lsh g 8)r) )
Diese Aufrufe kann man z.B. an die Buttons kleben: (set-colors (rgb->win 128 128 128) (rgb->win 0 0 0)) (set-colors (rgb->win 0 0 0) (rgb->win 255 255 255)) Die Abweichungen, über die ich mich auf meiner (blauen) Seite so auslasse, ist aber was ganz anderes. Da geht es um die Umrechnung von ACI-Farben nach RGB - und dazu gibt AutoDESK seit Jahren eine falsche Tabelle an. Mehr zum Thema: http://www.visuallisp-tutorial.mapcar.net/variants.html und http://www.autolisp.mapcar.net/acifarben.html Gruss, Axel
------------------ Meine AutoLisp-Seiten Meine private Homepage Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze Meine Überzeugung... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3329 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 23. Mai. 2003 09:15 <-- editieren / zitieren --> Unities abgeben: Nur für molo
Der Axel wieder mit seinem Formel1-Lisp.... Da man jetzt dank Axels Funktionen ACI in RGB in WIN umrechnen kann (Supi!), dürfte es mit weiß, grau, schwarz oder auch schweinchenrosa keine Probleme mehr geben. Der Vollständigkeit halber hier noch die komplette Lösung für den Umschalter mit Fadenkreuz, Modell und Layout (aus der Autodesk-Newsgroup). Die Farbzuweisungen habe ich kommentiert, damit jeder seine Lieblingsfarben eintragen kann: (defun C:ToggleColors () (cond ((= 1 (getvar "tilemode")) (ax:ToggleMsBackground) (ToggleMsCrosshair) ) ((= 0 (getvar "tilemode")) (ax:TogglePsBackground) (TogglePsCrosshair) ) ) (princ) ) ;; (defun ax:ToggleMSBackground (/ prefDisplay) (vl-load-com) (setq prefDisplay (vla-get-Display (vla-get-Preferences (vlax-get-acad-object)) ) color (vlax-variant-value (vlax-variant-change-type (vla-get-GraphicsWinModelBackgrndColor prefDisplay) vlax-vbLong ) ) ) (vla-put-GraphicsWinModelBackgrndColor prefDisplay (vlax-make-variant (if (= color 0) ; 0 ist schwarz 16777215 0 ; 0 ist schwarz ) vlax-vbLong ) ) (princ) ) ;; (defun ax:TogglePSBackground (/ prefDisplay) (vl-load-com) (setq prefDisplay (vla-get-Display (vla-get-Preferences (vlax-get-acad-object)) ) color (vlax-variant-value (vlax-variant-change-type (vla-get-GraphicsWinLayoutBackgrndColor prefDisplay) vlax-vbLong ) ) ) (vla-put-GraphicsWinLayoutBackgrndColor prefDisplay (vlax-make-variant (if (= color 0) ; wenn er schwarz ist 16777215 ; mach ihn weiß 0 ; mach ihn schwarz ) vlax-vbLong ) ) (princ) ) ;; (defun ToggleMSCrosshair (/ prefDisplay) (vl-load-com) (setq prefDisplay (vla-get-Display (vla-get-Preferences (vlax-get-acad-object)) ) color (vlax-variant-value (vlax-variant-change-type (vla-get-ModelCrosshairColor prefDisplay) vlax-vbLong ) ) ) (vla-put-ModelCrosshairColor prefDisplay (vlax-make-variant (if (= color 0) ; wenn er schwarz ist 16777215 ; mach ihn weiß 0 ; mach ihn schwarz ) vlax-vbLong ) ) (princ) ) (defun TogglePSCrosshair (/ prefDisplay) (vl-load-com) (setq prefDisplay (vla-get-Display (vla-get-Preferences (vlax-get-acad-object)) ) color (vlax-variant-value (vlax-variant-change-type (vla-get-LayoutCrosshairColor prefDisplay) vlax-vbLong ) ) ) (vla-put-LayoutCrosshairColor prefDisplay (vlax-make-variant (if (= color 0) ; wenn er schwarz ist 16777215 ; mach ihn weiß 0 ; mach ihn schwarz ) vlax-vbLong ) ) (princ) )
Das Ganze wird mit "ToggleColors" aufgerufen.
Gruß CADchup ------------------ www.cadditions.de [Diese Nachricht wurde von CADchup am 23. Mai 2003 editiert.] [Diese Nachricht wurde von CADchup am 23. Mai 2003 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
molo Mitglied Dipl. Ing. Versorgungstechnik
Beiträge: 384 Registriert: 16.07.2002 Windows 7 64 bit, AutoCAD MEP 2012
|
erstellt am: 23. Mai. 2003 11:02 <-- editieren / zitieren --> Unities abgeben:
Erstmal danke an alle. Besonders natürlich an CADchup und Axel Könnt Ihr mir nochmal kurz erklären, warum die erste Lisp mit (ax:ToggleMSBackground) -in Klammern- und die leste Lisp mit ToggleColors -ohne Klammern- gestartet wird. Ich habe nochmal eine kleine MNU mit einen Button gebastellt. (Jeder dass was er kann ) @CADchup
Deine Lisp startet sich natürlich mit ToggleColors und nicht mit DisplayToggle ------------------ Schöne Grüsse aus dem Norden Molo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3329 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 23. Mai. 2003 11:25 <-- editieren / zitieren --> Unities abgeben: Nur für molo
Hi molo, der Teufel steckt im Detail. Ursprünglich hieß das Gerät DisplayToggle. Nur machte das Forum aus dem c[Doppelpunkt]DisplayToggle ein c isplayToggle. Drum hab' ich's noch schnell umbenannt. Sobald man ein c: hinter das defun schreibt, kann und soll das Programm wie ein normaler AutoCAD-Befehl, also ohne Klammern, aufgerufen werden. Wenn kein c: da steht und es mit Klammern aufgerufen werden muss, spricht man von einer Funktion. Benutzt man i. d. R. für Funktionen, die wieder aus anderen Lisps aufgerufen werden. Insbesondere, wenn diese Funktionen Parameter benötigen. Macht man eben so. Ist irgendwie Konvention....Axel wird das wahrscheinlich viel besser erläutern können, möglicherweise gibt es sogar handfeste Gründe... Eilige Grüße CADchup
------------------ www.cadditions.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
otterloh Mitglied
Beiträge: 188 Registriert: 27.06.2001 AutoCAD 2012, 2013, 2019 Win8.1
|
erstellt am: 23. Mai. 2003 12:43 <-- editieren / zitieren --> Unities abgeben: Nur für molo
Andere Frage, kann man die Darstellung der Grundfarben gelb(2) grün(3) cyan(4) manipulieren? Farblinde haben mit diesen Farben ein Problem. Unter DOS mit Spea/Diomond Grafikkarten ging das und ein anderes gelb hatte aber weiterhin die Farbnummer 2. ------------------ Gruß Werner http://Meyer-Werner.bei.T-Online.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |