SkillAmplifier Posted Saturday at 07:01 PM Posted Saturday at 07:01 PM Hi all, I've been a lurker on CADTutor for years and learned a lot from this community, so I wanted to share something I built and get feedback from people who actually know LISP. Background: I'm a civil CAD drafter working on US land development projects — grading, drainage, easements, corridors. MLINE has always been the tool I wanted to use for drawing parallel offset lines but couldn't, mainly because the objects are locked, there's no lineweight control per component, and the .mln style management across a team is a nightmare. So I wrote a replacement. ────────────────────────────────── WHAT IT DOES ────────────────────────────────── Command MPL works like PLINE — you draw a centerline and it generates a set of configurable parallel LWPOLYLINEs around it. Every satellite line is a real polyline: fully grip-editable, trimmable, offsettable, joinable. No locked geometry, no exploding required. Each satellite line carries its own: - Offset distance (positive = left, negative = right) - Layer (Pro version) - Color, linetype, lineweight, linetype scale Configuration is handled through a DCL dialog (MPLEDIT). Settings save as user defaults and, in the Pro version, as named presets stored in %APPDATA%\MplineAuto\presets.dat. ────────────────────────────────── TWO VERSIONS ────────────────────────────────── Lite (free .lsp): - MPL, MPLEDIT, MPLSYNC - Manual sync after edits — run MPLSYNC, window-select the group, done - Groups are tracked via XDATA (app tag: MPLINE_PIPE) Pro (compiled .vlx, $29.49): - Everything in Lite plus: - Command reactor for auto-sync — watches masters before/after every command, diffs vertex lists, rebuilds only what changed - Named preset library with Save/Update/Delete from the dialog - Per-satellite layer assignment - MPLADD — promote existing LWPOLYLINEs or LINEs into MPL groups - MPLON / MPLOFF — toggle reactor at runtime - XDATA app tag: MPLINE_AUTO ────────────────────────────────── IMPLEMENTATION NOTES ────────────────────────────────── The interesting part was the Pro reactor. I went through a few approaches before landing on a global command reactor that snapshots the master cache before a command fires and diffs it after. This avoids object reactors entirely (which caused IDispatch arity issues in testing) and means the reactor doesn't interfere with Express Tools or COPY/MIRROR operations on non-MPL geometry. Groups copied with COPY or MIRROR produce new masters on the next MPLSYNC call — the reactor doesn't auto-register copies, which is intentional to avoid unexpected geometry multiplication. Happy to discuss the approach if anyone has thoughts or has solved similar problems differently. ────────────────────────────────── LINKS ────────────────────────────────── Video walkthrough: https://youtu.be/DXpyy1JWtXs Free Lite download: https://skillamplifier.gumroad.com/l/hgpujs Pro listing: https://skillamplifier.gumroad.com/l/nsidsv Blog post with full documentation and use cases: https://skillamplifier.wordpress.com/2026/05/16/multipline/ Full disclosure: I'm the developer. Posting here because I'd genuinely value feedback from experienced LISP users, and the Lite version is free so there's no risk trying it. Thanks for any thoughts. Zlatislav Quote
pkenewell Posted 6 hours ago Posted 6 hours ago (edited) https://www.lee-mac.com/mpline.html FYI - not to detract from your work, which I'm sure was extensive. Edited 6 hours ago by pkenewell Quote
BIGAL Posted 23 minutes ago Posted 23 minutes ago (edited) Just a couple of comments have this, type 2,4,-3,-4 and so on, draws multiple plines, as many as you type in one go.. Have a drag line over existing multi offsets and get all offsets and layers, so can make another pline without user input. Also what about Bricscad users ? Plenty of us here as well as other software. Oh yeah look at this image you draw a "WALL" that is multiple lines and on correct layers, predefined layers that are named in a txt file, wont go into how we made that work other than variable = layer name. Not sure that the task really warrants a VLX and a cost when there is software out there for the task and its free. I know from experience trying to sell software is extremely hard, as per draw house program some 130 lisps. Do you have something similar to the attached DOCX, showing what you have as say a package, most programs are free and open source some have a cost as need to be customised for clients. There is more scope for users to buy a package rather than just one program. Lisp files DEC 2025.docx Edited 14 minutes ago by BIGAL Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.