Live data from Hacker News

Show HN: AutoLISP interpreter in Rust/WASM – a CAD workflow invented 33 yrs ago

acadlisp.de

31–40 of 47 posts

Re: Show HN: AutoLISP interpreter in Rust/WASM – a CAD workflow invented 33 yrs ago

#32
post #2

In 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…

If you look at a map of the fiber-optic network in the US, my parents spent most of the 90s surveying the portion along the Gulf coast from Texas to Florida and up the Atlantic coast to New England for Sprint, MCI, Level 3, and other companies that no longer exist and AutoLISP was used to generate most of their drawings.

From what I can remember, we made a spreadsheet template that captured the title block information and a list of bearings and distances with some optional columns for field notes, landmarks/monuments, elevations and other measurements, etc. and I wrote some AutoLISP code that would generate an overview drawing and a set of scale drawings for the route. It figured out the bounds for each segment based on the scale and drawing size and then drew the route like a turtle and added the various callouts and a consistent title block and legend. There was also some ability to draw details about the railroad/pipeline whose right of way was being used, but I don't remember exactly how it worked.

My mom (secretarially trained typist, self-taught Lotus/Excel wiz, former drafting assistant at an RBOC) would enter everything into the template and use it to generate basis drawings which they might then tweak and finalize by hand. It dramatically reduced the amount of time they spent creating drawings to the point they could usually finish the drawings for a week of surveying in a couple of hours. I like to think of it as my small contribution to the Internet.

I was in high school at the time and taught myself AutoLISP from some combination of in-app docs/help and mall bookstore fare. Now I desperately want to go dig through floppy disks at my parents' place to see if any remnants remain to look back at how younger me did everything. It was the first truly useful software that I ever wrote, and in hindsight, might've planted the brainworm that led me to Clojure decades later :)

Re: Show HN: AutoLISP interpreter in Rust/WASM – a CAD workflow invented 33 yrs ago

#33
post #30
post #29

AutoLISP 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.

Still your most fluent - that says something about how the language shaped thinking. The neglect is real; Autodesk clearly wants everyone on .NET, but there's a lot of institutional knowledge and working code out there that just... works. Part of why I built this: preservation. If AutoLISP fades from AutoCAD entirely, at least the workflow can live on in the browser.

I cargo culted my way into AutoLISP in the R12 era knowing nothing about lisp or funtional programming (BASIC and a tiny bit of Pascal was all I'd done by then). Just using notepad without any assists like highlighting matching parentheses and no deeper theoretical knowledge was tough, but I could see vague outlines of a world of mathematical elegance just out of my grasp.

Re: Show HN: AutoLISP interpreter in Rust/WASM – a CAD workflow invented 33 yrs ago

#34
post #2

In 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 wrote a ton of AutoLISP back in the day to do similar things to generate well logs for environmental and geotechnical reports. Fun stuff.

In 1990 I went to work at Autodesk and got to work on all kinds of stuff over the next decade -- AutoLISP was the bridge that got me into tech as a profession over the geology field work I was doing. It's been a wild ride.

Re: Show HN: AutoLISP interpreter in Rust/WASM – a CAD workflow invented 33 yrs ago

#35
post #2

In 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…

Nice project.

In 1990 I used AutoLISP to setup a tool that the state legislature would use for redistricting after the census. The AutoLISP let them interactively assign counties to districts while seeing the voter numbers and then export it to a CSV file which was read into a database. They could also export from that database back into AutoCAD using AutoLISP.

Re: Show HN: AutoLISP interpreter in Rust/WASM – a CAD workflow invented 33 yrs ago

#36
Ah, Autolisp. Based on an early, early version of XLisp, it's zombie software: not quite alive—Autodesk really wants you to use its COM and .NET integration to program AutoCAD—nor can it truly die. It was also the first Lisp I ever programmed, and back in the mid-90s there was a trend of putting a Lisp, or Tcl, into all the things (Emacs, GIMP, frickin' Abuse...) and Autolisp had prepared me for that world rather well.

Re: Show HN: AutoLISP interpreter in Rust/WASM – a CAD workflow invented 33 yrs ago

#37
post #22
post #6

Earlier quoted context omitted.

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)...

> but Lisp is special, and for those times it was very special. 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…

You may be already aware with this, but if not, Walker actually did write a small Forth (ATLAST -- https://www.fourmilab.ch/atlast/) which was used for (I think) DXFTOOL (a file converter).

It was later used by a small computer graphics studio in Tennessee for a blue/green screen matting utility and a fast roto-paint program.

Re: Show HN: AutoLISP interpreter in Rust/WASM – a CAD workflow invented 33 yrs ago

#38
post #32
post #2

In 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…

If you look at a map of the fiber-optic network in the US, my parents spent most of the 90s surveying the portion along the Gulf coast from Texas to Florida and up the Atlantic coast to New England for Sprint, MCI, Level 3, and other companies that no longer exist and AutoLISP was used to generate most of their drawings. From what I can remember, we made a spreadsheet template that captured the title block informatio…

thx for sharing, really interesting

Re: Show HN: AutoLISP interpreter in Rust/WASM – a CAD workflow invented 33 yrs ago

#39
post #2

In 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…

Ah, AutoLisp, that brings back the memories. 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 floo…

Nice to hear such interesting stories

Re: Show HN: AutoLISP interpreter in Rust/WASM – a CAD workflow invented 33 yrs ago

#40
post #35
post #2

In 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…

Nice project. In 1990 I used AutoLISP to setup a tool that the state legislature would use for redistricting after the census. The AutoLISP let them interactively assign counties to districts while seeing the voter numbers and then export it to a CSV file which was read into a database. They could also export from that database back into AutoCAD using AutoLISP.

Redistricting with AutoLISP - that's a use case I never imagined. Interactive county assignment with live voter counts, bidirectional CSV sync. Democracy infrastructure in a CAD macro.
Post reply on HN