\\\$M=$(edtime,$(getvar,date),DDD","D MON YYYY);
另外,使用DIESEL宏还能实现使菜单项变灰或对一个下拉式菜单项作标示。当某个命令处理激活状态时,下面的DIESEL宏使下拉式菜单中的ERASE命令变灰显示(一个菜单项变灰时,说明此时本菜单项不可选择)。
[$ (if ,$(getvar,cmdactive),~)ERASE]erase
使用类似的方法可以在一个下拉式菜单项里面放置一个标记(mark),或者交互式地改变标记所使用的字符。
在AutoLISP中使用DIESEL表达式:
通过调用menucmd函数,您可以在AutoLISP例程中DIESEL表达式。其格式类似于在菜单文件中DIESEL。
下面的代码片段将变量ctime设置成现行时间:
(setq c_time (menucmd "M = $(edtime,$(getvar,data),HH:MM a/p)"))
使用DIESEL定义状态栏:
使用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)" ) )
)
|