Lesson48 – Angles in AutoLISP

If you are using angles other than the default measured counter-clockwise from the positive X-axis, you will need to know the difference between two related commands: (getangle) and (getorient).

  • The (getangle) function measures with the zero-angle at the current base angle setting in the Units dialog (system variable ANGBASE).
  • The (getorient) function always measures with the zero-angle to the right (east, or positive X-axis), regardless of the ANGBASE setting.
  • The system variable ANGBASE controls the zero (0) direction for angles. By default it is set to 0, the positive X-axis. If you set it to 90 then zero will be north or the positive Y-axis. You can use any angle.
  • The system variable ANGDIR controls the angle direction: 0 for counter-clockwise (the default) or 1 for clockwise.

Explanation: the (getangle) and (getorient) functions

(getangle [point] [prompt])
(getorient [point] [prompt])

The optional [point] lets you include a point (usually a symbol that points back to information that gives you a point) that defines the first point of the angle. The optional [prompt] allows you to prompt the user.

Both these functions return a real number representing the value in radians of an angle entered either by pointing or by typing a value.


  • All replies are in radians.

When ANGBASE and ANGDIR are set to the AutoCAD default, both functions give you the same information:
Command: (getangle)
2.35619                      135 degrees
Command: (getorient)

2.35619                        135 degrees

Changing the system variable ANGBASE to 90 (North or Y-axis) results in:

Command: (getangle)
2.35619                      135 degrees, based on current ANGBASE
Command: (getorient)

3.92699                      225 degrees, based on default ANGBASE

Further changing the system variable ANGDIR to clockwise (1) results in:
Command: (getangle)
3.92699                       225 degrees, based on current ANGBASE
Command: (getorient)

5.49779                          315 degrees, based on default ANGBASE

  • The angle input by the user is based on the current ANGDIR, but both (getangle) and (getorient) ignore ANGDIR in the value returned.
  • If ANGBASE is set to 90, using (getangle) for BLOCK insertions will allow an input of 0 to equal 0.
  • If ANGBASE is set to 90, using (getorient) for TEXT insertions will allow an input of 0 to insert text along the X-axis.

Leave a Reply

Your email address will not be published. Required fields are marked *

Comment moderation is enabled. Your comment may take some time to appear.

Show Buttons
Hide Buttons

It's FREE!

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