Last updated July 28, 2026
CIVILINE draws a boundary line from a distance and a bearing you type, then labels it with both. It is the everyday task of putting a title boundary onto a drawing from the figures on a survey plan, done as one command instead of a line, a rotation and two pieces of text.
The provenance is the nicest of anything in this library. It was written in January 1992 at Billings Vo-Tech in Montana, as a classroom exercise, by nine named students working with their instructor Tim Urbaniak. They put it into the public domain on the spot, with a line in the header that has aged well: “This program was created during a classroom exercise and is hereby placed into the public domain. Support education in your area…”
The students were Don S., Don A., Steve B., Tom E., Hal S., Bill P., Dave H., Kyle W. and Callie D. Thirty-odd years later their homework is still doing useful work, which is a decent outcome for a Tuesday afternoon.
What it does in practice
You give it a start point, a distance and a bearing. It works out the end point, draws the line, and then places the distance and bearing as text at the midpoint, rotated to run along the line.
Two decisions in the code are worth knowing because they are what make it fit into an existing drawing rather than fight it. Everything is drawn on your current layer, so the boundary lands wherever you have set up for it. And the text height comes from the TEXTSIZE system variable rather than being hard-coded, so labels come out at whatever size the rest of your annotation is using.
The bearing is asked for as an angle, which means you can type it in whatever angle format your drawing is set to. If AUNITS is set to surveyor’s units you can enter a proper quadrant bearing; if it is set to decimal degrees you type degrees. Set the units before you start rather than after.
Command reference
The file defines a single command, CIVILINE. The download is Civili.zip and the file inside is CIVILINE.LSP.
How to load it
Unzip Civili.zip and load CIVILINE.LSP with APPLOAD, or add it to the Startup Suite if boundary work is a regular job. There are no support files. Our AutoLISP guide covers loading.
Step-by-step usage
- Set your current layer and check TEXTSIZE, since those control what the result looks like.
- Type CIVILINE.
- At “Pick the Boundry Start Point:” pick the corner the line runs from. Use an object snap to land on an existing point.
- At “Enter the Boundry Distance:” type the length from the survey plan.
- At “Enter the Boundry Bearing:” type the bearing in your drawing’s angle format. The line and its labels are drawn.
Work around the boundary corner by corner, snapping each new start point to the end of the last line, and the traverse builds itself.
Compatibility notes
Dated January 1992, so written-for rather than tested-on. It uses only basic point, distance and angle functions and AutoCAD’s own drawing commands, none of which has changed, so it stands a good chance on a current release.
Plain AutoLISP with no dialog boxes and no Express Tools calls, so nothing 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. Being public domain, you are free to adapt it — changing the label format or the text placement would be a straightforward first project.
Download
| Name: | Boundary and Labels |
| Description: | Draws a boundary line and labels the distance and bearing using the current layer and text height. |
| Type: | AutoCAD AutoLISP Routine |
| Author: | Don S., Don A., Steve B., Tom E., Hal S., Bill P., Dave H., Kyle W., Callie D., Tim U. |
| File Size: | 2 Kb |
| Cost: | Free |
| Worked on: | AutoCAD |
| Download File: | Civili.zip |
Related routines
- COGO bearing and distance label — labels boundaries you have already drawn, with placement options.
- Lot Number — number the lots the boundaries enclose.
- VPGRID — a coordinate grid for the finished sheet.