|
|
You can add conditional expressions to a macro by using a command that introduces macro expressions written in DIESEL (Direct Interpretively Evaluated String Expression Language).
$M=expression
Introducing the macro with $M= tells AutoCAD to evaluate a string as a DIESEL expression, and that expression is the DIESEL expression. The following example defines a conditional expression in a macro:
FILLMODE $M=$(-,1,$(getvar,fillmode))
The macro switches the FILLMODE system variable on and off by subtracting the current value of FILLMODE from 1 and returning the resulting value to the FILLMODE system variable. You can use this method to toggle system variables whose valid values are 1 or 0.
Termination of Macros That Contain Conditional Expressions
If you use the DIESEL string language to perform “if-then” tests, conditions might exist where you do not want the normal terminating space or semicolon (resulting in ENTER). If you add ^Z to the end of the macro, AutoCAD does not automatically add a space (ENTER) to the end of the macro expression.
As with other control characters in commands, the ^Z used here is a string composed of ^ (a caret) and Z and is not equivalent to pressing CTRL+Z.
In the following examples, ^Z is used as a macro terminator.
^C^C$M=$(if,$(=,$(getvar,tilemode),0),$S=mview _mspace )^Z
^C^C$M=$(if,$(=,$(getvar,tilemode),0),$S=mview _pspace )^Z
If these macros did not end with ^Z, AutoCAD would automatically add a space (ENTER), repeating the last command entered.