這幾天閑了下來(lái),對(duì)AutoCAD研究了一 番,發(fā)現(xiàn)狀態(tài)行也可以自定義,用modemacro命令與DIESEL語(yǔ)言相結(jié)合便可以做到,DIESEL是 Direct Interpretively Evaluated String Expression Language的縮寫(xiě),它是一種宏語(yǔ)言,可以 用來(lái)修改狀態(tài)行,也可以在菜單中應(yīng)用,在某種程度上可以取代AutoLISP。在命令行上輸入modemacro,再輸入$(getvar, clayer),當(dāng)前圖層名就顯示在狀態(tài)行左側(cè)上了,同樣輸入 $(getvar, textstyle) ,便會(huì)顯示當(dāng)前的文本樣式。如果你只想顯示一 些文字,如“你好!”也可。
這種設(shè)置的不足之處在于不能自動(dòng)保存,你可以在acad.lsp文件中加入如下S::STARTUP函數(shù),AutoCAD就會(huì)自動(dòng)執(zhí)行這些命令了。
(defun-q S::STARTUP ( )
(command "modemacro" "$(getvar,clayer)")
)
因?yàn)橛锌赡芤言诙鄠(gè)文件里定義了S::STARTUP函數(shù),這樣就會(huì)發(fā)生沖突,而在acad.lsp文件中加入如下語(yǔ)句便會(huì)避免這種情況:
(defun-q MYSTARTUP ( )
(command "modemacro" "$(getvar,clayer)")
)
(setq S::STARTUP (append S::STARTUP MYSTARTUP))
是不是有點(diǎn)意思?AutoCAD真是博大精深,只要鉆進(jìn)去便會(huì)覺(jué)得其樂(lè)無(wú)窮。
|