Last updated July 28, 2026
This routine labels boundary lines with their bearing and distance, and it does so with more control than most free tools of its kind. The author’s own summary, from the top of the file, explains who it is for: architects and civil engineers “who don’t have a cogo package and need to label boundary lines”. You pick two points and it writes the bearing, the distance, or both, positioned above the line, below it, or split across both sides, and justified to either end or the centre.
There is a second routine in the same file that the listing does not mention: a door-drawing command credited to Wheatley/Williams Architects and dated October 1986. Details of both are below.
What it does in practice
The main command asks four setup questions, then loops so you can label line after line without answering them again. It creates a layer called BRG_DIST in red, puts the labels there, and returns you to your original layer when it finishes — so the annotation stays separate from your linework without you having to manage it. The author notes in the source that you can change the layer name, colours and linetypes to suit your own standards.
Object snap is forced to endpoint and node while it runs, so picking is accurate on line ends and survey points without you setting anything up. Bearings are converted to surveyor’s units to four decimal places, and the routine substitutes AutoCAD’s degree symbol code into the string so the label reads with a proper degree mark rather than a letter d.
Text is sized from whatever you enter at the height prompt, defaulting to the current TEXTSIZE, and the routine derives its own line spacing and end offsets from that height — half the text height for the gap above the line, and twice the text height for the inset from the end. Labels are rotated to match the line.
The distances are labelled in feet
Worth knowing before you run it on an Australian job: the routine appends a foot mark to every distance it writes. It is a single hard-coded character in one line of the source, so the label on a metric drawing will read something like 24.35' when you wanted metres. The fix is a one-character edit to that line, and the author explicitly invites this sort of change, but out of the box the output is imperial-marked.
Two other things it does not put back when it finishes: command echo is switched off and left off, and the object snap mode it forces is not restored to what you had. Reset both after a session if the silence or the snapping catches you out.
Command reference
- DISTNOTE — the bearing and distance labelling command described here.
- DOOR — an unrelated routine included in the same file. It asks for a hinge point, a strike point and the opposite face of the wall, then a door angle, and draws the door leaf as a traced line with a swing arc. Credited in the source to Wheatley/Williams Architects, October 1986.
- CLEAN — a housekeeping helper of the author’s own. The source comments say to delete it if you already have your own copy loaded.
A word of warning on that door command. We host a different DOOR routine from an Australian bulletin board, and it defines a command by the same name. Load both and whichever came last replaces the other. If you use them together, rename one.
How to load it
Unzip Civil.zip and load CIVIL.LSP with APPLOAD, or add it to the Startup Suite. Both commands become available at once. Our AutoLISP guide covers loading, and if you want to change the layer name, the foot mark or the colours, the file is short, plainly commented and the changes are all near the top.
Step-by-step usage
- Type DISTNOTE.
- At “Bearing only, Distance only, or both – Type B, D, or BD” press Enter for both, or type B or D.
- At the text location prompt choose where the label sits relative to the line: A for above, B for below, or — when you asked for both bearing and distance — AB to put the bearing above and the distance below.
- At “Right end, Centered, or Left end of line” choose R, C or L. C is the default and centres the label on the line.
- At the text height prompt type a height or press Enter to accept the current TEXTSIZE.
- Pick the first and second points of the line to label. The label is drawn.
- It then offers to run again with the same settings. Type Y to label another line, or press Enter to finish and return to your original layer.
Compatibility notes
The file carries no date for the main routine; the door routine inside it is dated 1986, which puts the package firmly in the early era. Written-for rather than tested-on, then. It is plain AutoLISP with no dialog boxes and no Express Tools calls, driving AutoCAD’s LAYER and TEXT commands directly, so nothing in it requires the full product; LT users on LT 2024 or later, the release that brought AutoLISP to LT, should be able to run it. See what runs on AutoCAD LT. As always with a routine that creates layers and writes text in bulk, try it on a copy first.
Download
| Name: | COGO Bearing and Distance Label |
| Description: | Program to note the bearing and distance between two points or the two ends of a line for Architects and Civil Engineers who don’t have a cogo package and need to label boundary lines you can change the layer names, colors, and linetypes as you see fit. |
| Type: | AutoCAD AutoLISP Routine |
| Author: | Anon |
| File Size: | 3 Kb |
| Cost: | Free |
| Worked on: | AutoCAD |
| Download File: | Civil.zip |
Related routines
- DISTBEAR — the same job in one keystroke, labelling a whole selection of lines at once with no placement options.
- ImportXYZ — get survey coordinates into the drawing before you label them.
- Door LISP routine — the other DOOR command mentioned above.