Krótkie makro będące przełącznikiem kolorów: tła AutoCAD-a, i krzyża nitkowego. Polecenie BKG sekwencyjnie zamienia kolorami wskaźnik krzyża nitkowego z kolorem tła obszaru graficznego AutoCAD-a. Makro ma swoje początki jeszcze w czasach AutoCAD-a w wersji 2000. Działanie makra wygląda tak:
Na uwagę zasługuje pewna ciekawostka. Otóż kolory te zapisywane są jako typ danych [variant 19], którego to VisualLISP nie obsługuje. Próby odczytania wartości kończą się błędem: LispFromPtr failed. The type is not supported: 19. Przypadłość ta nie została usunięta w AutoCAD-zie do dzisiaj. Moje makro tylko pobiera i zapisuje na liście te wartości, a następnie zamiennie je przypisuje. Taki sposób nie sprawdza w ogóle tychże wartości, co nie powoduje powstawania tego błędu. Ponizej kod:
; ----------------------------------------------------------------- ;
; by kojacek (2002) ;
; ----------------------------------------------------------------- ;
(vl-load-com)
; ----------------------------------------------------------------- ;
(defun C:BKG (/ disp data)
(setq Disp
(vla-get-display
(vla-get-preferences
(vlax-get-acad-object)
)
)
)
(setq Data
(list
(vla-get-ModelCrossHairColor Disp)
(vla-get-GraphicsWinModelBackgrndcolor Disp)
)
)
(vla-put-ModelCrossHairColor Disp (cadr Data))
(vla-put-graphicswinmodelbackgrndcolor Disp (car Data))
(princ)
)
; ----------------------------------------------------------------- ;
Zobacz także wpis: 25-07-2021 – Kolor tła ekranu (2)
( . . . )
Witam, mam pytanie: w autocadzie 2016 nie mam możliwości wczytania makra poprzez Tools-> Macro. Mogę wkleić w wierszu poleceń ale musze to robić za każdym razem na każdym pliku.
PS: Dziękuje, świetna funkcja, dla mnie bardzo przydatna i ułatwiająca mi pracę.
PolubieniePolubienie
Zapisz kod w pliku tekstowym o rozszerzeniu lsp. Poleceniem załaduj plik. Poczytaj o automatycznym ładowaniu plików LISP-a.
PolubieniePolubienie
Dziękuje bardzo, działa.
Pozdrawiam,
PolubieniePolubienie