My brother's electrical company needed hundreds of Schaltpläne (circuit diagrams).
Drawing each by hand = 5 hours per plan
100 drawings = 500 hours = 12 weeks
Professional CAD work? Unbezahlbar (unaffordable).
The secret weapon: AutoLISP
A programming language built into AutoCAD
The Result: 99.5% time saved
100 drawings: 12 weeks →
This is a general pattern of how automation (including the recent wave of gen-AI) reshapes the labor landscape. Automation rarely replaces jobs wholesale (i.e. very few people get fired because their position was "outsourced" to automation). Rather, automation lets people who are proficient in Domain A who need some work done in Domain B become proficient enough in Domain B with sufficient ease that it's cheaper for them to pick up the requisite Domain B skills themselves versus hiring a Domain B specialist.Show HN: AutoLISP interpreter in Rust/WASM – a CAD workflow invented 33 yrs ago
21–30 of 47 posts
Re: Show HN: AutoLISP interpreter in Rust/WASM – a CAD workflow invented 33 yrs ago
#22AutoCad nowadays uses .NET as well, and thus any CLR enabled language, with a MSIL backend. https://help.autodesk.com/view/OARX/2024/ENU/?guid=GUID-390A...
sure it does, but Lisp is special, and for those times it was very special. I did not want to show how it is done nowadays, but how we had done it 33 yrs ago... And now there is the emulator as the web-page, this is what i wanted to share (everything works as wasm in the browser)...
It was the only language available at the time suitable for embedding. Memory-safe, small interpreter, sane. Alternatives were Forth and TRAC, which would have been much worse. Pascal would have been better, but it was too hard to squeeze in. The program and data had to fit in 640K. The program was built as a tree of overlays and code was swapped in, so less used code wasn't resident. But it was a cram job.
(I did some AutoCAD ports and drivers.)
Re: Show HN: AutoLISP interpreter in Rust/WASM – a CAD workflow invented 33 yrs ago
#23In the early 90s I wrote AutoLISP code for AutoCAD 9/10 that enabled a CSV → template → parametric drawing workflow. You could define components in spreadsheets, feed them through templates, and generate complete technical drawings automatically. I've never seen anyone else use this approach. Now I've built an interpreter in Rust/WASM so it can run in the browser - partly nostalgia, partly preservation before this kn…
The first two were complimentary. Before that I was laying out PCB's by hand using (who can remember?) Vector tools and Xacto knives. Switching to ACAD with AutoLISP-based automation was a game changer.
Broadcast facilities are not very different from data centers, in the sense that you have loads of racks filled with equipment. I would say that one of the key differences was that the equipment was not as homogenous as it might be in data centers. Back then I was very involved in some massive studio projects, both in terms of facility design (not the architecture, the design and installation of the technology) and custom software/hardware for the same industry. Once again, in the early days all wiring diagrams were being done the old fashion way, with pencil and D-size paper on a drawing table.
I started with ACAD version 1.0 or 1.1, I can't remember. This ran on an 8086 CPM computer build on an S-100 frame. It actually had an 8087 math coprocessor board and another board with 512K (you read that right) of RAM to mount as a RAM disk. The computer had 64K of RAM. So, yeah, early ACAD ran on a system with 64K of RAM.
The studio AutoLISP software was the most extensive. It took advantage of 3D features to do such things route cables between equipment in different racks and rooms as well as compute the required cable lengths. It would generate cable cut lists and labels for the wiring crew, etc.
This also included managing a symbol library for these designs, much as a tool like KiCAD or Altium (which has now officially gone to shit!) manages both schematic symbol and PCB footprints for ECAD work. The equipment definitions included such things as input/output signal types, required cable type, connector types, wiring schematic and rack mount models (for laying out where in the racks each device would be installed).
This is work that I evolved over years as we designed and built many installations across the country. It was a valuable internal tool with competitive advantages. We left that industry behind a very long time ago, but I remember that time fondly. Technology was evolving at breakneck speed and there were incredible opportunities to develop innovative solutions across the entire technology stack, from embedded all the way up to custom equipment.
Re: Show HN: AutoLISP interpreter in Rust/WASM – a CAD workflow invented 33 yrs ago
#24In the early 90s I wrote AutoLISP code for AutoCAD 9/10 that enabled a CSV → template → parametric drawing workflow. You could define components in spreadsheets, feed them through templates, and generate complete technical drawings automatically. I've never seen anyone else use this approach. Now I've built an interpreter in Rust/WASM so it can run in the browser - partly nostalgia, partly preservation before this kn…
AutoLISP is how I learned LISP back in the 80's. I probably used it for about twenty years. I wrote a massive amount of code to automate ACAD use in three areas: Schematic Capture, PCB Layout and Broadcast Facility design and Construction. The first two were complimentary. Before that I was laying out PCB's by hand using (who can remember?) Vector tools and Xacto knives. Switching to ACAD with AutoLISP-based automati…
Re: Show HN: AutoLISP interpreter in Rust/WASM – a CAD workflow invented 33 yrs ago
#25In the early 90s I wrote AutoLISP code for AutoCAD 9/10 that enabled a CSV → template → parametric drawing workflow. You could define components in spreadsheets, feed them through templates, and generate complete technical drawings automatically. I've never seen anyone else use this approach. Now I've built an interpreter in Rust/WASM so it can run in the browser - partly nostalgia, partly preservation before this kn…
I can tell you that a good number of the design drawings for the higher floors in the Venetian resort in Las Vegas were assembled with AutoLisp scripts. The scripts I created grabbed components from other drawings that were already made to assemble a first pass set of drawings for floors that hadn't been fully designed yet, since the floors all had components of other floors.
They were still in the design process for the upper floors, while the lower floors had already been finished and they were moving up the building.
Re: Show HN: AutoLISP interpreter in Rust/WASM – a CAD workflow invented 33 yrs ago
#26This website is a mess on mobile. Cool concept though!
Re: Show HN: AutoLISP interpreter in Rust/WASM – a CAD workflow invented 33 yrs ago
#27Earlier quoted context omitted.
AutoLISP is how I learned LISP back in the 80's. I probably used it for about twenty years. I wrote a massive amount of code to automate ACAD use in three areas: Schematic Capture, PCB Layout and Broadcast Facility design and Construction. The first two were complimentary. Before that I was laying out PCB's by hand using (who can remember?) Vector tools and Xacto knives. Switching to ACAD with AutoLISP-based automati…
This is beautiful. Schematic capture, PCB layout, broadcast facilities - and 3D cable routing with auto-generated cut lists and labels. That's the workflow taken to its full potential. 64K RAM, 8086 with math coprocessor, ACAD 1.0. Memory was such a pain back then. I eventually got a Quadra 700 (68MB) with A/UX - Unix on a Mac felt like the future. Fun fact: we got Betz's original XLISP (C) running in WASM for a benc…
It shows that per-connector metadata that was added to each equipment symbol. The metadata allowed AutoLISP to do some really cool and intelligent things.
The PCB layout tool had interesting constraints. One of the issues was that pad graphics took up way too much memory. So, what I had to do, was to layout PCB's using a symbol that consisted of two lines forming an X instead of real pads. The symbol name encoded the diameter, hole size, etc.
When the layout was done, I had to unload a bunch of modules and then run an AutoLISP routine that would find and replace all "PAD_NNNN_X" symbols with real "PAD_NNNN" symbols before plotting.
Once ACAD migrated to Windows this was no longer an issue. Of course, by that time, accessible ECAD tools were around. I think my last ACAD schematic and layout was somewhere around 1993. I just didn't have the money to invest in ECAD tools of the era, so my ACAD tool served a purpose.
Re: Show HN: AutoLISP interpreter in Rust/WASM – a CAD workflow invented 33 yrs ago
#28Earlier quoted context omitted.
Fun idea: I'll try to compile Betz's original XLISP (C) to WASM too. Then we can benchmark 1980s C vs 2024 Rust, both running in the browser. Will probably be a crappy benchmark, but entertaining - and a nice tribute to the source.
I'm betting I could get an agentic tool to convert the whole thing (XLISP and/or XSCHEME) to modern Rust or Zig in a half a day.
Re: Show HN: AutoLISP interpreter in Rust/WASM – a CAD workflow invented 33 yrs ago
#29Re: Show HN: AutoLISP interpreter in Rust/WASM – a CAD workflow invented 33 yrs ago
#30AutoLISP is still my most fluent language, pleasantly surprised to see anything in it on HN. There's something fun about its idiosyncrasies, but I am genuinely so glad for modern IDEs, linters, tooling in just about every other environment. AutoCAD has severely neglected it, despite some large businesses built exclusively upon it.