2P Opublikowano 3 Lutego 2017 Zgłoś Opublikowano 3 Lutego 2017 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) )
kruszynski Opublikowano 3 Lutego 2017 Zgłoś Opublikowano 3 Lutego 2017 tak na szybko to dlatego, że IZcadPreferencesDisplay nie ma jeszcze właściwości GraphicsWinModelBackgrndColor postaram się ustalić jak można to rozwiązać
2P Opublikowano 3 Lutego 2017 Autor Zgłoś Opublikowano 3 Lutego 2017 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).
kruszynski Opublikowano 3 Lutego 2017 Zgłoś Opublikowano 3 Lutego 2017 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ą.
jacnightingale Opublikowano 27 Lutego 2017 Zgłoś Opublikowano 27 Lutego 2017 Nadal nie ma żadnego szybkiego sposobu na przełączanie tła pomiędzy białym i czarnym w Zwcad 2017?
Mayster Opublikowano 27 Lutego 2017 Zgłoś Opublikowano 27 Lutego 2017 Jakiś sensowniejszy skrót klawiszowy byłby całkiem przydatny.
dmatusz3 Opublikowano 28 Lutego 2017 Zgłoś Opublikowano 28 Lutego 2017 Obecnie kolor tła można przełączyć jedynie w opcjach programu.
jacnightingale Opublikowano 28 Lutego 2017 Zgłoś Opublikowano 28 Lutego 2017 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.
kruszynski Opublikowano 12 Maja 2017 Zgłoś Opublikowano 12 Maja 2017 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
jacnightingale Opublikowano 18 Maja 2017 Zgłoś Opublikowano 18 Maja 2017 Dnia 12.05.2017 o 13:50, kruszynski napisał: W najnowszej wersji po małej modyfikacji działa: zmiana koloru_1.lsp Ok, tylko człowiek zielony i nie wie jak to uruchomić. Tzn. lsp wiem jak wczytać tylko jak tę aplikację uruchomić. Jaka komenda?
dmatusz3 Opublikowano 18 Maja 2017 Zgłoś Opublikowano 18 Maja 2017 Ten LISP wydaje się być częścią większego, ale po pewnych poprawkach, myślę, że będzie działać. Nazwy poleceń można zmienić w samym pliku edytorem tekstu. Poniżej zaznaczyłem miejsce. Uruchomienie skryptu na szybko lub klasycznie. Oto sam skrypt biale_czarne.lsp
Martin_S Opublikowano 18 Maja 2017 Zgłoś Opublikowano 18 Maja 2017 A mozna zamiast czarne zrobic autocadowe ciemne 33,40,48...ewentualnie biale_ciemne.lsp?
dmatusz3 Opublikowano 18 Maja 2017 Zgłoś Opublikowano 18 Maja 2017 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). Martin_S 1
perlon Opublikowano 18 Maja 2017 Zgłoś Opublikowano 18 Maja 2017 Gwoli uzupełnienia wartość dziesiętna to R*65536 + G*256 + B Wartości R,G,B w zakresie 0 do 255
Martin_S Opublikowano 18 Maja 2017 Zgłoś Opublikowano 18 Maja 2017 (edytowane) 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 = 3156001biale_czarne_szare.lsp Edytowane 18 Maja 2017 przez Martin_S
dmatusz3 Opublikowano 19 Maja 2017 Zgłoś Opublikowano 19 Maja 2017 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 gruzin 1
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się