Draws a boundary, a traverse or a road centreline straight from the way survey data is written on a deed or in a field book — a bearing and a distance for each leg, and a radius for each curve. TRAVERSE enters the legs and draws them as one polyline. INVERSE works the other way: pick two points and be told the bearing and distance between them, in surveyor’s form.
What Traverse does
Note: there are two TRAVERSE routines on this site. This one and the older Traverse LISP both define a command called TRAVERSE, so load one or the other, not both — whichever is loaded second silently replaces the first.
Bearings are typed as quadrant bearings, which is what deeds use:
N45.3015E means N 45 degrees 30 minutes 15 seconds E
S12.0000W means due S 12 degrees W
The number between the letters is degrees.minutes-seconds run together — the dd.mmss convention, so 45.3015 is 45° 30′ 15″ and not 45.3 degrees. Whole degrees can be written plainly: N45E. A bare number is read as an azimuth clockwise from north, again in dd.mmss, so 135.15 is an azimuth of 135° 15′.
How to use it
- Load the routine with
APPLOAD, or put it on your support file search path. - Type
TRAVERSEand pick the start point. - Enter each leg as a bearing and a distance, with a radius for any curve.
- Read the misclosure when you close the boundary.
- Type
INVERSEto read the bearing and distance between any two points.
How it works
The closure check is the part worth having, and none of the routines this replaces did it.
Each leg is split into how far north it goes (its latitude) and how far east (its departure). Go right round a closed boundary and both should sum to zero. They never quite do, and how far out they are is the misclosure — the gap between where the last leg ends and where the first began.
That gap is reported as a ratio against the total distance walked. A misclosure of 0.05 on a 2,500 foot perimeter is 1 in 50,000, which is good. 1 in 5,000 is ordinary. 1 in 500 means a leg has been mistyped, and the usual culprit is a quadrant letter the wrong way round.
Four separate routines are folded in here, each of which did part of the job. One wrote its answers to a script file and left you to run it, because in 1988 that was easier than building the geometry — it also forced AUNITS to surveyor’s units and then set it to 0 afterwards rather than back to whatever you had, so your angle display silently changed to decimal degrees. It demanded the bearing be exactly seven characters and rejected N45E.
Another inserted a point-number block called pn that had to already exist. A third ran (setvar "cmdecho" 0) at load time, so merely loading the file changed the setting for the session. The fourth extracted point numbers through ATTEXT with a template file — that job now belongs to ATTHARVEST.
Notes and limits
- Command name clash. Do not load this alongside the older Traverse LISP.
- dd.mmss, not decimal degrees. 45.3015 is 45° 30′ 15″.
- Curves take a radius per leg.
- Your
AUNITSsetting is left as you had it. - One undo group covers the traverse.
Download and details
| Name | Traverse — draw a boundary from bearings and distances, and check its closure |
| Download | Traverse.lsp — 19.1 KB, plain AutoLISP source. Downloads directly; no zip to unpack. |
| Type | AutoCAD AutoLISP routine |
| Commands | INVERSE, TRAVERSE |
| Requires | nothing beyond a CAD platform with AutoLISP. |
| Source size | 19.1 KB, 408 lines |
| Error handling | Yes — a *error* handler restores every system variable it changed, on cancel as well as on error. |
| Undo | The whole operation is wrapped in a single undo group, so one U reverses all of it. |
| Compatibility | AutoCAD (any release with AutoLISP), BricsCAD, ZWCAD, GstarCAD, ProgeCAD and other IntelliCAD-based platforms. AutoCAD LT needs a LISP enabler. No .NET, no ObjectARX, no installer. |
| Author | YZ, August 2026 |
| Licence | Free to use, supplied “as is” with no warranty. |
References
- Traverse LISP — the older routine of the same command name
- CHAINAGE LISP — chainage along the centreline you have drawn
- ATTHARVEST LISP — pulling point numbers out of attributes
- More free AutoLISP routines on this site
- Wisey’s Steel Shapes — free structural steel section drawing program