设置 MODEMACRO 值 (概念)

AutoCAD 2008

 
设置 MODEMACRO 值
概念 快速参考
 
 
 

可以使用字符串和 DIESEL 在状态行的用户定义部分中显示信息。

MODEMACRO 的值确定了显示在模式状态行中的内容。最简单(且功能最少)的 MODEMACRO 由常量文字组成。例如,要在状态行中显示公司名称,可输入以下内容:

命令: modemacro

输入 MODEMACRO 的新值,或输入 . 表示无 <"">: Greg's Bank and Grill

MODEMACRO 的值通常显示相同的文字;状态行并不反映 AutoCAD 内部状态的变化。用户修改 MODEMACRO 之前,状态行不会发生变化。

要使状态行反映 AutoCAD 的当前状态,请以下列格式使用 DIESEL 语言来输入宏表达式:

$(somefun, arg1, arg2, ...) 

在宏表达式中,somefun 是 DIESEL 函数的名称(与 AutoLISP 函数名类似),arg1arg2 等是该函数的参数,并由函数的定义来解释。与 AutoLISP 不同,DIESEL 宏表达式只有一种数据类型,即字符串。在数字上运行的宏将数字表示为字符串并根据需要来回转换。

关于 DIESEL 函数的说明,请参见DIESEL 函数目录

现在定义更有趣的状态行,例如显示当前文字样式名称的状态行:

命令: modemacro

输入 MODEMACRO 的新值,或输入 . 表示无 <"">: Style: $(getvar, textstyle)

  • Style: 是要在状态行中显示的文字字符串。
  • $(getvar,textstyle) 是 DIESEL 函数 (getvar) 和参数(用于检索系统变量 TEXTSTYLE 的当前值)。
注意本主题中的样例可能会将 MODEMACRO 字符串显示为多行文字。可将其作为一个长字符串在提示下输入。

可以通过输入 $(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"