• 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

RIPPLE LISP: Dynamic Multiple Offset in AutoCAD

August 3, 2026

Select some curves, then drag. RIPPLE offsets them live, both sides at once if you want, as many times as you want, and shows you the whole set before you commit to it.

What Ripple does

Where the native OFFSET asks for a distance and then a side, and does one curve at a time, Ripple does the lot in one gesture: pick the objects, drag to the outermost line, and every intermediate offset falls into place. Kerbs, road markings, wall build-ups, contour bands and setting-out grids all come out in a single move.

Both sides. Press TAB to cycle between outer only, inner only, and both. Offsetting a road centreline to both kerb lines is one drag.

A spacing factor. Each successive offset can be a multiple of the last. A factor of 1 gives even spacing; 2 doubles the gap each time; 0.5 halves it. The total always ends exactly at your cursor, so changing the factor redistributes the lines without moving the outermost one.

Properties per side. The inner and outer offsets can be given their own layer, colour, linetype and lineweight, set once in a settings dialog with a live preview. Offset a centreline and the results land on the kerb layer automatically.

How to use it

  1. Load the routine with APPLOAD, or put it on your support file search path.
  2. Run RIPPLESET once to configure the per-side properties.
  3. Type RIPPLE and select the curves.
  4. Drag to set the distance, or type a number and press Enter for an exact one.
  5. TAB cycles the sides, + and - change the count, N types an exact number, F sets the spacing factor, D toggles deleting the originals, F3 toggles snap.
  6. Click to accept, Escape to cancel and remove the preview.

How it works

The command runs inside a grread loop, which reports mouse movement and keystrokes continuously without ending. On every mouse move the selected curves are re-sorted by distance from the cursor so the nearest becomes the reference, the distance from that curve to the cursor is divided by the total of the spacing series to give the base offset, every previous preview object is deleted, and a fresh set is created.

The preview is made of real offset objects rather than temporary graphics, which is why the properties and linetypes you see are exactly what you will get. The cost is that they must be cleaned up on every frame and on every exit path, which is what the error handler is for.

The spacing series. With N offsets and factor F, they are placed at d, d(1+F), d(1+F+F²) and so on, and the base distance d is chosen so the last lands under the cursor. That is why dragging feels natural regardless of the count or the factor: the thing you are pointing at is always the outermost line.

It draws its own object snap markers. grread does not show AutoCAD’s, so Ripple tests the cursor against every enabled snap mode, picks the nearest hit, and draws that mode’s marker glyph — using the colour and size from your own drafting settings, so it looks exactly like the real thing.

Notes and limits

  • Set the per-side properties first with RIPPLESET, or everything lands on the current layer.
  • The outermost line follows your cursor whatever the count or factor. Set the outside first, then adjust the distribution.
  • The SHIFT option needs Express Tools. Everything else works without it.
  • Escape removes the preview cleanly. The error handler makes sure nothing is left behind on any exit path.

Download and details

NameRipple — dynamic multiple offset, both sides, live preview
DownloadRipple.lsp — 64.8 KB, plain AutoLISP source. Downloads directly; no zip to unpack.
TypeAutoCAD AutoLISP routine
CommandsRIPPLE, RIPPLESET
Requiresthe ActiveX layer (loaded automatically by the routine with vl-load-com); nothing extra — the dialog is written to a temporary file at run time and deleted again, so there is no .dcl to install.
Source size64.8 KB, 1,481 lines
Error handlingYes — a *error* handler restores every system variable it changed, on cancel as well as on error.
UndoNot needed — this routine only reads the drawing and changes nothing.
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

  • PARTOFFSET LISP — offsetting only a section of one polyline
  • TWINOFFSET LISP — a simpler both-sides offset
  • CURVEHUG LISP — placing symbols along the lines you have just offset
  • 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