You can use text strings and DIESEL to display messages in the user-defined section of the status bar.
The value of the MODEMACRO system variable determines what is displayed in the user-defined section, leftmost side, of the status bar. The simplest (and least useful) purpose for the MODEMACRO system variable is to display a constant text value.
For example, to display a company name in the status bar, you enter the following:
Command: modemacro
Enter new value for MODEMACRO, or . for none <"">: Greg's Excavating
The text value remains the same; the status bar does not reflect changes to the application's internal state. It does not change until the value of the MODEMACRO system variable is updated.
To make the status bar reflect the current state, enter macro expressions using the DIESEL language in the following format:
$(func_name, arg1, arg2, ...)
In the macro expression, func_name is the name of a DIESEL function and arg1 , arg2 , and so on, are arguments to the function, interpreted according to the function's definition.
The following example displays the current text style name in the status bar:
Command: modemacro
Enter new value for MODEMACRO, or . for none <"">: Style: $(getvar, textstyle)
You can retrieve the current value of any system variable by entering $(getvar, var_name). The current value of the system variable replaces the macro expression on the status bar. When a system variable changes, for example the current text style is changed, the text string assigned to the MODEMACRO system variable is reevaluated and the status bar is updated.
Macro expressions can be nested, and they can be as complex as you want. The following example displays the current snap unit value and angle (in degrees) on the status bar. It uses nested expressions to convert the snap angle from radians to degrees and truncates the value to an integer.
Command: modemacro
Enter new value for MODEMACRO, or . for none <"">: Snap: $(getvar, snapunit) $(fix,$(*,$(getvar,snapang),$(/,180,3.14159)))
You can also display the values in the current linear and angular units modes.
Command: modemacro
Enter new value for MODEMACRO, or . for none <"">:
Snap: $(rtos,$(index,0,$(getvar,snapunit))),$(rtos,$(index,1,$(getvar,snapunit))) $(angtos,$(getvar,snapang))
DIESEL copies its input directly to the output until it comes to the dollar sign character ($) or a quoted string. You can use quoted strings to suppress evaluation of character sequences that would otherwise be interpreted as DIESEL functions. You can include quotation marks in quoted strings by using two adjacent quotation marks. In the following example, the current layer is set to LAYOUT, and MODEMACRO is set to the string.
Command: modemacro
Enter new value for MODEMACRO, or . for none <"">: "$(getvar,clayer)="""$(getvar,clayer)""""
The status bar displays the following:
$(getvar,clayer)="LAYOUT"