VicoWang Posted Thursday at 01:27 PM Posted Thursday at 01:27 PM The Scenario (The Plugin Avalanche) As AI copilots dramatically lower the barrier to coding, engineering teams are rapidly accumulating custom plugins routines. Suddenly, you’re stuffing dozens or even 100+ plugins into AutoCAD's APPLOAD Startup Suite. The result? AutoCAD takes minutes to launch. Different plugins fight over the same keyboard aliases. The Legacy Approach The traditional monolithic approach forces every plugin into the boot sequence. When an alias conflict occurs, CAD managers have to manually debug source code across dozens of workstations, disrupting drafting workflows. The Modern Solution (Demand-Loading Proxy) We recently had a veteran developer put VedaCAD through a massive stress test, which validated exactly why we built a Demand-Loading Proxy. Instead of loading 100 physical binaries at boot, VedaCAD's microkernel registers lightweight proxy hooks in memory. The actual physical binary evaluates into memory only at the exact millisecond the user types the command alias. Whether you manage 20 or 300 plugins, your CAD startup memory footprint remains exactly 0%. For pure function libraries that don't require command aliases, VedaCAD utilizes a "System Library" silent load mechanism. The platform establishes strict Alias Hegemony—ensuring the custom tools you deploy work flawlessly without overlap. Quote
BIGAL Posted 9 hours ago Posted 9 hours ago (edited) It only takes one line to check is a program already loaded if not then demand losd. if (not ahbutts)(load "Multi radio buttons")) In the majority of programs to draw objects walls doors windows etc plus much much more are all demandloaded from a POP menu. It really comse down to how your going to present your programs to an end user, POP, Ribbon and toolbars can be used, yes your token method can be used also. I know of some software that pushed hard remember the option number to run a program, so a discussion would be use 123 pick objects then 456 and finish with 789. I had no idea what they were talking about. Edited 9 hours ago by BIGAL Quote
VicoWang Posted 8 hours ago Author Posted 8 hours ago (edited) 1 hour ago, BIGAL said: It only takes one line to check is a program already loaded if not then demand losd. if (not ahbutts)(load "Multi radio buttons")) In the majority of programs to draw objects walls doors windows etc plus much much more are all demandloaded from a POP menu. It really comse down to how your going to present your programs to an end user, POP, Ribbon and toolbars can be used, yes your token method can be used also. I know of some software that pushed hard remember the option number to run a program, so a discussion would be use 123 pick objects then 456 and finish with 789. I had no idea what they were talking about. Haha, oh no, BIGAL—I see where the confusion came from! Let me completely clear that up: A VCID is NOT a command alias, and it is definitely NOT a shortcut you type to draw! Nobody is typing arbitrary 6-character codes like "123, 456" to draw walls or doors. I would hate that software too! Here is how the architecture actually works: VCID is just an Asset Identifier: It is purely a package tracking code used once to fetch and sandbox the file (or pushed silently by the CAD Manager from the cloud). Instant, Lossless Alias Customization: Once on the machine, the draftsperson draws using their normal human aliases (e.g., W for wall, D for door). But here is the real game-changer: VedaCAD allows users and CAD managers to reassign any custom alias on the fly via our GUI, without ever editing acad.pgp, without writing wrapper LISP routines (defun c:...), and without modifying a single line of third-party source code. And regarding that conditional loading pattern you shared: (if (not ahbutts) (load "Multi radio buttons")) Using (if (not <func>) (load ...)) as a local load-guard has been a time-honored AutoLISP idiom since the 1990s. But as we touched upon in our previous discussion regarding Install.lspand AUTOLOAD, that pattern hits severe architectural limits in an enterprise environment: Search Path Fragility: (load "filename") strictly assumes the file is already sitting somewhere in AutoCAD’s native Support File Search Path. Furthermore, without a fallback argument, if the path breaks or an engineer takes a laptop to a disconnected job site, that one-liner crashes with a fatal ; error: LOAD failed. Zero Path Dependency in VedaCAD: VedaCAD completely bypasses AutoCAD's Support Paths. We engineered an independent, version-controlled Mapping Database. It binds custom aliases directly to the physical binaries vaulted inside an isolated local sandbox. The command executes natively without touching, polluting, or relying on AutoCAD's fragile support search paths at all. This series is specifically focused on solving deployment and governance nightmares for CAD Managers running enterprise fleets across dozens of workstations—where relying on manual path configurations and individual workstation edits simply doesn't scale. Hopefully that clears up the distinction between our backend mapping database and the actual drafting aliases! --- Just thinking about this a bit more, it really highlights how diverse everyone's CAD setup is. For folks who have spent decades fine-tuning their personal POP menus and local routines until it's second nature—honestly, don't fix what isn't broken! Everyone’s workflow is unique. On that note, I also wanted to give a quick shoutout to developers like @Paul Li , who recently took the time to actually test VedaCAD against his own real-world, complex application setups and sent over some amazingly detailed, hands-on feedback. It’s that kind of practical testing in the trenches that helps bridge the gap between traditional CAD habits and modern deployment. Really appreciate folks taking the time to kick the tires out in the wild! Edited 7 hours ago by VicoWang Quote
Steven P Posted 3 hours ago Posted 3 hours ago 4 hours ago, VicoWang said: And regarding that conditional loading pattern you shared: (if (not ahbutts) (load "Multi radio buttons")) Using (if (not <func>) (load ...)) as a local load-guard has been a time-honored AutoLISP idiom since the 1990s. But as we touched upon in our previous discussion regarding Install.lspand AUTOLOAD, that pattern hits severe architectural limits in an enterprise environment: We just add the file path to the 'load' string - the files being saved on the company drive and not on a support path. We all access to the same file, not a local copy, any updates are applied to all when the file is saved. 1 line in the startup menu to load the on-demand LISP / index. Time honoured maybe but it works well and is well understood by the CAD teams. Quote
VicoWang Posted 2 hours ago Author Posted 2 hours ago (edited) 1 hour ago, Steven P said: We just add the file path to the 'load' string - the files being saved on the company drive and not on a support path. We all access to the same file, not a local copy, any updates are applied to all when the file is saved. 1 line in the startup menu to load the on-demand LISP / index. Time honoured maybe but it works well and is well understood by the CAD teams. Hi Steven, That is definitely a very disciplined on-premise setup! Putting the explicit network path directly into the load call (e.g., (load "Z:/CAD_Standards/...")) is certainly much cleaner than relying on AutoCAD's native search paths to guess where a file lives. For a single office where everyone is hardwired to a local Gigabit LAN running plain-text LISP routines, it has been a lightweight way to maintain a central file. Where that setup typically runs into real-world friction usually comes down to two specific scenarios: 1. Laptops, Job Sites & VPN Latency: If an engineer opens their laptop at home or on a job site without connecting to the company VPN first, Z:\ doesn't exist. AutoCAD will noticeably hang trying to resolve that dead network path before throwing an error. Even over VPN, querying scripts across Windows SMB introduces noticeable command hesitation. 2. Windows SMB File Locks & Concurrent Read Collisions: Overwriting a shared .lsp on the fly sounds seamless, but over Windows SMB networks it frequently collides with OS-level OpLocks (Opportunistic Locking) and lingering file leases, resulting in "Sharing Violation: File is in use" errors. Even worse is the race condition: if an administrator saves a script while a drafter's on-demand macro triggers a read, AutoCAD can ingest a partially written file, throwing a fatal "; error: malformed list on input" and breaking their active command. And the moment a firm introduces compiled binaries (.fas, .vlx, .arx, .dll), Windows places a hard shared read-lock on the file the second anyone opens CAD—making live server updates during work hours completely impossible without forcing everyone to exit. In Part 2 of this series, I dive a bit deeper into how we use a local sandbox cache model to tackle these exact remote work and file-locking bottlenecks: For a strictly in-house, LAN-only team with plain LISPs, keeping it simple the way you do works if everyone is in the building. We're primarily addressing the distributed teams and compiled environments where those network drops, SMB conflicts, and file locks become daily headaches. At the end of the day, VedaCAD doesn't aim to revolutionize drawing functions or replace your team's beloved scripts—it's simply a deployment manager for your routines (.lsp, .fas, .vlx, .arx, .dll) and environment standards (.dwt, .ctb, .shx) to modernize delivery across changing fleets. Appreciate you chiming in with your team's workflow, Steven! And you're always welcome to test VedaCAD whenever you have time—I'd love to get your thoughts. Edited 2 hours ago by VicoWang 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.