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))
Command:

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.

Example

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)
Command:

PRACTICE

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  Every List is Evaluated in the Same Specific Manner in Autolisp
Tags

Related Articles

Back to top button
Close
SUBSCRIBE TO OUR NEWSLETTER

It's FREE!

Sign up and receive an email every time a new tutorial is published