AutoLISP interpreter and mini CAD engine in Rust, targeting WebAssembly.
Emulates CSV/TPL/LSP workflows from AutoCAD 9/10 (DOS era) for educational and archival purposes.
- AutoLISP interpreter with core functions
- CAD primitives: LINE, CIRCLE, ARC, TEXT, INSERT (blocks)
- CSV data reading for parametric drawings
- DXF export
- Runs natively and in browser (WASM)
Live demo: acadlisp.de
use acadlisp::Engine;
let mut engine = Engine::new();
engine.eval("(setq x 10)");
engine.eval("(command \"LINE\" '(0 0) '(100 100) \"\")");
let entities = engine.get_entities();
let dxf = engine.export_dxf();cargo run --bin acadlisp-cli -- samples/TEST.LSPtrunk serve
# Open http://localhost:8080setq defun if cond while repeat progn lambda apply mapcar foreach
+ - * / 1+ 1- abs sin cos atan sqrt expt min max rem gcd
= /= < > <= >= eq equal
and or not null
car cdr cons list append reverse length nth member assoc subst
strcat strlen substr strcase atoi atof itoa rtos read
print princ prin1 terpri prompt
command getvar setvar entget entmake entmod ssget sslength ssname
# Native
cargo build --release
# WASM
trunk build --releaseMIT