• Skip to main content
  • Skip to primary sidebar
  • Skip to footer
blog.draftsperson.net

blog.draftsperson.net

the art of technical drawing

blog.draftsperson.net

TRAVERSE LISP: Boundaries From Bearings and Distances

August 6, 2026

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

  1. Load the routine with APPLOAD, or put it on your support file search path.
  2. Type TRAVERSE and pick the start point.
  3. Enter each leg as a bearing and a distance, with a radius for any curve.
  4. Read the misclosure when you close the boundary.
  5. Type INVERSE to 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 AUNITS setting is left as you had it.
  • One undo group covers the traverse.

Download and details

NameTraverse — draw a boundary from bearings and distances, and check its closure
DownloadTraverse.lsp — 19.1 KB, plain AutoLISP source. Downloads directly; no zip to unpack.
TypeAutoCAD AutoLISP routine
CommandsINVERSE, TRAVERSE
Requiresnothing beyond a CAD platform with AutoLISP.
Source size19.1 KB, 408 lines
Error handlingYes — a *error* handler restores every system variable it changed, on cancel as well as on error.
UndoThe whole operation is wrapped in a single undo group, so one U reverses all of it.
CompatibilityAutoCAD (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.
AuthorYZ, August 2026
LicenceFree 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

Filed Under: AutoLISP Routines

Primary Sidebar

Subscribe to our Youtube Channel

Post CAD drafting jobs on Freelancer.com. and get some free money to do this.

Categories

  • American Steel Industry (4)
  • AutoCAD Articles & Reference (30)
  • AutoCAD Bugs & Problems (19)
  • AutoCAD Tips (29)
  • AutoCAD Tutorials (54)
  • AutoLISP Routines (328)
  • AutoLISP Tutorials (15)
  • CAD Standards (7)
  • Civil 3D (7)
  • Civil Drafting (4)
  • Dimensions (2)
  • Drafting Funnies (71)
  • Drafting History (9)
  • Drafting Standards (84)
  • Electrical Drafting (2)
  • General IT reference (7)
  • Geometry (15)
  • GIS (2)
  • Hatch Patterns (12)
  • Office Life Hacks (3)
  • PT (1)
  • Revit Tutorials (54)
  • Steel Detailing (14)
  • Structural Drafting (26)
  • Technical Dictionary (61)
  • Useful Website Links (19)

Footer

Free downloads

  • Free AutoLISP routines
  • Free hatch patterns
  • SHX fonts & text styles
  • Numbering LISP collection
  • ISO 3098B font

Reference charts

  • AWS weld symbols chart
  • Steel detailing chart
  • Hole & slot sizes
  • Bolt edge distance
  • ANSI & ARCH paper sizes
  • How to fold an A1 drawing

Useful links

  • CAD blocks (DWG)
  • Revit families
  • structuraldrafter.com
  • cad-corner.com
  • About
  • Privacy policy

Provided for free with no warranty · Log in