這幾天閑了下來,對AutoCAD研究了一 番,發現狀態行也可以自定義,用modemacro命令與DIESEL語言相結合便可以做到,DIESEL是 Direct Interpretively Evaluated String Expression Language的縮寫,它是一種宏語言,可以 用來修改狀態行,也可以在菜單中應用,在某種程度上可以取代AutoLISP。在命令行上輸入modemacro,再輸入$(getvar, clayer),當前圖層名就顯示在狀態行左側上了,同樣輸入 $(getvar, textstyle) ,便會顯示當前的文本樣式。如果你只想顯示一 些文字,如“你好!”也可。
這種設置的不足之處在于不能自動保存,你可以在acad.lsp文件中加入如下S::STARTUP函數,AutoCAD就會自動執行這些命令了。
(defun-q S::STARTUP ( )
(command "modemacro" "$(getvar,clayer)")
)
因為有可能已在多個文件里定義了S::STARTUP函數,這樣就會發生沖突,而在acad.lsp文件中加入如下語句便會避免這種情況:
(defun-q MYSTARTUP ( )
(command "modemacro" "$(getvar,clayer)")
)
(setq S::STARTUP (append S::STARTUP MYSTARTUP))
是不是有點意思?AutoCAD真是博大精深,只要鉆進去便會覺得其樂無窮。
|