Recommended Posts

Posted

Mam taki LISP który zmienia kolor tła ekranu z białego na czarny i czarnego na biały. Taki przełącznik. Dodatkowo zmienia kolor wybranych warstw.

LISP działał na wcześniejszych wersjach ZWcada, a na 2017 wskazuje błąd. Może ktoś wie dlaczego??

 

(defun ZYXAK_MT_BandWBackground (/ PREF COL)						
	(ZYXAK_Start)
	(setq PREF (vla-get-display (vla-get-preferences (vlax-get-acad-Object))))
	(setq COL  (vlax-variant-value (vlax-variant-change-type (vla-get-GraphicsWinModelBackgrndColor PREF) vlax-Vblong)))
 
	(if (zerop COL)
		(progn
			(vla-put-GraphicsWinModelBackgrndColor PREF (vlax-Make-Variant 16777215 vlax-Vblong))
			(vla-Put-ModelCrosshairColor           PREF (vlax-Make-Variant 0 vlax-Vblong))
			(command "_-layer" "_C" "T" "255,255,255" (strcat "*" "_WIPEOUT") "")
		)
	;else
		(progn
			(vla-Put-GraphicsWinModelBackgrndColor PREF (vlax-Make-Variant 0 vlax-Vblong))
			(vla-Put-ModelCrosshairColor PREF (vlax-Make-Variant 16777215 vlax-Vblong))
			(command "_-layer" "_C" "T" "0,0,0" (strcat "*" "_WIPEOUT") "")
		)
	)
	(vlax-Release-Object PREF)
	(ZYXAK_OK)
)

 

Posted

W Helpie jest napisane, że 

ZcadPreferencesDisplay ma właściwość  GraphicsWinModelBackgrndColor. Raz mi nawet wpisanie linijki kodu zmieniło kolor tła (na czarny), ale później ta sama linijka kodu już nic nie zdziałała (na inny kolor).

Posted

chciałem podejrzeć wartość tej właściwości na działającym ZWCADzie.

(setq display (vla-get-display (vla-get-preferences (vlax-get-acad-object))))
( vlax-dump-object display t )

zobaczyłem że nil i (RO)  czyli ReadOnly. więc zapytałem ZWSOFT jak można to ogarnąć
Dam znać co odpowiedzą.

preview.png

  • 4 weeks later...
Posted
1 minutę temu, dmatusz3 napisał:

Obecnie kolor tła można przełączyć jedynie w opcjach programu.

Kiepsko. W takim razie z niecierpliwością czekam na możliwość sprawniejszego przełączania koloru tła, tak jak to było w starszych wersjach.

  • 2 months later...
Posted

W najnowszej wersji po małej modyfikacji działa:
 

(defun ZYXAK_MT_BandWBackground (/ PREF COL)						
	(setq PREF (vla-get-display (vla-get-preferences (vlax-get-acad-object))))
	(setq COL  (vlax-variant-value (vlax-variant-change-type (vla-get-GraphicsWinModelBackgrndColor PREF) vlax-Vblong)))
	(if (zerop COL)
		(progn
			(vla-put-GraphicsWinModelBackgrndColor PREF 16777215  )
			(vla-Put-ModelCrosshairColor           PREF 0 )
		)
		(progn
			(vla-Put-GraphicsWinModelBackgrndColor PREF 0 )
			(vla-Put-ModelCrosshairColor PREF 16777215 vlax-Vblong )
		)
	)
	(vlax-release-object PREF)
)

 

zmiana koloru_1.lsp

Posted

Kolor 30, 40 , 48 to zapis RGB. Można go prosto przeliczyć na kolor w formacie dziesiętnym i taki wpisać do skryptu.

W poprzednim skrypcie jest niestety mały błąd.

Zamieszczam nowy, są w nim dostępne 3 polecenia: czarne. biale, szare.

biale_czarne_szare.lsp

Można sobie pozmieniać samemu kolory tła i kursora (podkreślone na czerwono).

biale_czarne_szare.png

 

biale_czarne_szare.gif

Posted (edited)

Wyszedł kolor 48,40,33 nie ten - jakis brązowawy   ...a autocadowy grafitowy to 33,40,48 .... było blisko ....ale lisp działa co do zasady  ;)

kolor to 3156001

R+G*256+B*65536 = 33+40*256+48*65536 = 3156001
biale_czarne_szare.lsp

Edited by Martin_S
Posted

Jeszcze nieco zmodyfikowaliśmy program w taki sposób, aby nie trzeba było przeliczać.

Teraz powinno być wszystko jasne.


(defun C:Szare (  / ) 
	(BGColor 30 40 48 )
	(CursorColor 255 255 255)
)
(defun C:białe (  / ) 
	(BGColor 255 255 255 )	
	(CursorColor 0 0 0 )
)
(defun c:czarne (  / ) 
	(BGColor 0 0 0 )
	(CursorColor 255 255 255)
)

(defun BGColor ( R G B / PREF ) 
	(setq PREF ( vla-get-display ( vla-get-preferences (vlax-get-acad-object ) ) ) )
	(vlax-put-property PREF 'GraphicsWinModelBackgrndColor ( RGB->Int R G B ) )
	(vlax-release-object PREF)
)

(defun CursorColor ( R G B / ) 
	( setq PREF ( vla-get-display ( vla-get-preferences (vlax-get-acad-object ) ) ) )
	(vlax-put-property PREF 'ModelCrosshairColor ( RGB->Int R G B ) )
	(vlax-release-object PREF)
)

(defun RGB->Int ( R G B  / ) 
	(+ R ( * G 256 ) ( * B 65536 ) )
)

biale_czarne_szare2.lsp

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...