AutoCAD... AutoLISP... VisualLISP...

  [74] Kolor tła ekranu graficznego AutoCAD-a

index  

  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 krzyza nitkowego z kolrorem tła obszaru graficznego AutoCAD-a. Makro ma swoje początki jeszcze w czasach AutoCAD-a w wersji 2000. 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. 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)
)
; ----------------------------------------------------------------- ;
Makro działa na wszystkich dotychczas znanych wersjach AutoCAD-a począwszy od wersji 2000 włącznie.

aktualizacja: 27-09-2011