这几天闲了下来,对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真是博大精深,只要钻进去便会觉得其乐无穷。
|