I programmed AutoLISP, and it is cool, but you need AutoCAD (or other CAD with AutoLISP feature). I found Rosetta [1] six years ago, that is a universal language for doing CAD/geometry/procedural stuff, that uses Rhino or AutoCAD as its backend for execution and display. The hope was that it would allow people to learn a geometry-based language that could be used with many programs to give them a procedural, programmatic interface as an option. I tried to contact the author several times, but no response. I haven't seen it move at all. Racket is the environment it uses to create in, and hook into the CAD program. I was hoping someone would pick it up and create a generic viewer and export functions for target CAD programs. Maybe I could someday work on this...