Telling AutoLISP Not to Evaluate an Expression

Besides specifying AutoLISP functions themselves, lists will be used for two key purposes in AutoCAD: specifying coordinates in space (“point” lists) or describing a specific AutoCAD entity (“entity definition” lists).

To explicitly type in a point list, a list of three real numbers, creates a problem: AutoLISP will try to evaluate the list as a function.

Command: (setq PT1 (1.0 2.0 0.0))
error: bad function

(1.0 2.0 0.0)
(setq PT1 (1.0 2.0 0.0))

When typing in an explicit point list, the (quote) function will tell AutoLISP not to evaluate the list.

Explanation: the (quote) function

A point list can be explicitly typed in using the (quote) function or its shortcut, a single quote in front of the list.

(quote ( list )) or ( list )

The (quote) function returns the list unevaluated. The (quote) function can be used with any AutoLISP expression, not just lists.


Command: (setq PT1 (quote (1.0 2.0 0.0))) or (setq PT1 ‘(1.0 2.0 0.0))
(1.0 2.0 0.0)


Establish three points, PT1, PT2 and PT3, whose coordinates are(0.0 0.0 0.0), (1.0 2.0 0.0), and (6.0 3.0 0.0) respectively. Estimated time for completion: 5 minutes.

See also  AutoLISP Distinguishes among Several Data Types
Back to top button