可以使用字符串和 DIESEL 在状态行的用户定义部分中显示信息。
MODEMACRO 的值确定了显示在模式状态行中的内容。最简单(且功能最少)的 MODEMACRO 由常量文字组成。例如,要在状态行中显示公司名称,可输入以下内容:
命令: modemacro
输入 MODEMACRO 的新值,或输入 . 表示无 <"">: Greg's Bank and Grill
MODEMACRO 的值通常显示相同的文字;状态行并不反映 AutoCAD 内部状态的变化。用户修改 MODEMACRO 之前,状态行不会发生变化。
要使状态行反映 AutoCAD 的当前状态,请以下列格式使用 DIESEL 语言来输入宏表达式:
$(somefun, arg1, arg2, ...)
在宏表达式中,somefun 是 DIESEL 函数的名称(与 AutoLISP 函数名类似),arg1 和 arg2 等是该函数的参数,并由函数的定义来解释。与 AutoLISP 不同,DIESEL 宏表达式只有一种数据类型,即字符串。在数字上运行的宏将数字表示为字符串并根据需要来回转换。
关于 DIESEL 函数的说明,请参见DIESEL 函数目录。
命令: modemacro
输入 MODEMACRO 的新值,或输入 . 表示无 <"">: Style: $(getvar, textstyle)
- Style: 是要在状态行中显示的文字字符串。
- $(getvar,textstyle) 是 DIESEL 函数 (getvar) 和参数(用于检索系统变量 TEXTSTYLE 的当前值)。
可以通过输入 $(getvar, varname)来检索任何系统变量。系统变量的当前设置将替换状态行上的宏表达式,然后,在进行切换文字样式等操作时,再重新计算 MODEMACRO。如果文字样式发生更改,则状态行上将显示新的文字样式名称。
表达式可以是嵌套的,也可以根据需要确定其复杂程度。下例显示了状态行中的当前捕捉值和捕捉角度(以度数为单位)。它使用了嵌套表达式将捕捉角度从弧度转换为度,并将捕捉值约为整数。
命令: modemacro
输入 MODEMACRO 的新值,或输入 . 表示无 <"">: Snap: $(getvar, snapunit) $(fix,$(*,$(getvar,snapang),$(/,180,3.14159)))
命令: modemacro
输入 MODEMACRO 的新值,或输入 . 表示无 <"">: Snap: $(rtos,$(index,0,
$(getvar,snapunit))),$(rtos,$(index,1,$(getvar,snapunit))) $(angtos,
$(getvar,snapang))
DIESEL 将其输入直接复制到输出,直到出现美元符号 ($) 或带引号的字符串。可以使用带引号的字符串将字符序列的计算结果隐藏起来,否则它们可能会被解释为 DIESEL 函数。带引号的字符串中可以包含引号,也就是说使用两对相邻的引号。在下例中,当前图层被设置为 LAYOUT,MODEMACRO 被设置为字符串。
命令: modemacro
输入 MODEMACRO 的新值,或输入 . 表示无 <"">: "$(getvar,clayer)= """$(getvar,clayer)""""
$(getvar,clayer)="LAYOUT"