使用AutoLISP语言可以实现对MODEMACRO变量的定义。下面给出的程序代码可以模拟AutoCAD的现行内部状态行。
(defun C:ACADMODE()
(setvar"modemacro"
(strcat
"图层 $(substr,$(getvar,clayer),1,8)"
"$ (if,$(getvar,orthomode),正交)"
"$ (if,$(getvar,snapmode), 捕捉)"
")"
)
)
)
您可以将这个程序保存在一个名为ACADMODE。LSP文件中。然后加载并执行它,这时就可产生一个不同的状态行。然而,这并不是使用这一特性的最有用的应用方式,它仅提供了一个实例。加载并这个程序后,也许您并没有感觉到有什么不同,但如果您将图层改为L时,您就会知道MODEMACRO正在起作用。
您可以将该程序定义在ACAD.LSP文件中并定义成S::STARTUP()函数,这样在每次启动都可以启用自己定义的状态栏。
(defun s::startup()
(setvar "modemacro"
(strcat
"A$(getvar,useri1)图"
",字型(getvar,textstyle)"
",标注(getvar,dimstyle)"
)
)
) |