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
- Load the routine with
APPLOAD, or put it on your support file search path. - Run
RIPPLESETonce to configure the per-side properties. - Type
RIPPLEand select the curves. - Drag to set the distance, or type a number and press Enter for an exact one.
TABcycles the sides,+and-change the count,Ntypes an exact number,Fsets the spacing factor,Dtoggles deleting the originals,F3toggles snap.- 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
| Name | Ripple — dynamic multiple offset, both sides, live preview |
| Download | Ripple.lsp — 64.8 KB, plain AutoLISP source. Downloads directly; no zip to unpack. |
| Type | AutoCAD AutoLISP routine |
| Commands | RIPPLE, RIPPLESET |
| Requires | the 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 size | 64.8 KB, 1,481 lines |
| Error handling | Yes — a *error* handler restores every system variable it changed, on cancel as well as on error. |
| Undo | Not needed — this routine only reads the drawing and changes nothing. |
| 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
- 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