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) ) Cytuj
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ć Cytuj
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). Cytuj
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ą. Cytuj
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? Cytuj
Mayster Opublikowano 27 Lutego 2017 Zgłoś Opublikowano 27 Lutego 2017 Jakiś sensowniejszy skrót klawiszowy byłby całkiem przydatny. Cytuj
dmatusz3 Opublikowano 28 Lutego 2017 Zgłoś Opublikowano 28 Lutego 2017 Obecnie kolor tła można przełączyć jedynie w opcjach programu. Cytuj
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. Cytuj
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 Cytuj
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? Cytuj
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 Cytuj
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? Cytuj
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 Cytuj
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 Cytuj
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 Cytuj
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 Cytuj
Rekomendowane odpowiedzi
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.