AutoLISP, Interfejsy

Kolor tła ekranu

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)
)
; ----------------------------------------------------------------- ;

bkg

Zobacz także wpis: 25-07-2021Kolor tła ekranu (2)

( . . . )

3 uwagi do wpisu “Kolor tła ekranu

  1. 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ę.

    Polubienie

Dodaj komentarz

Ta witryna wykorzystuje usługę Akismet aby zredukować ilość spamu. Dowiedz się w jaki sposób dane w twoich komentarzach są przetwarzane.