My dad is a mechanical engineer, and a lot of his time in AutoCAD goes to HVAC and mechanical drawings. By the time he opens the file, the engineering is done. What's left is drafting: the same commands, layers and dimensions, drawing after drawing. I wanted him to describe a part once and get back a drawing he could keep editing.
The first version drew blind
I started outside AutoCAD. Claude wrote Python scripts that drove the open drawing over COM. It worked, but it was fragile. AutoCAD rejects COM calls while it's busy, so every call needed a retry. A script could only reach the active document, and Claude couldn't see what it had drawn, so one misplaced line led to the next.
Moving inside AutoCAD
The plugin is a .NET 8 assembly built on ObjectARX, AutoCAD's own API, and it loads into AutoCAD itself. It listens on a local port for JSON requests, so each step is a single tool-style call like "add a layer", "draw this polyline" or "dimension these two points", not a typed command. AutoCAD only lets its main thread change a drawing, so the plugin queues requests and runs each one under a document lock and in its own transaction. A step that fails leaves the drawing as it was.
Checking before continuing
After each step, Claude looks at the drawing and reads back what is actually there, then compares it with what it meant to draw before adding more geometry. The drafting rules live in plain files: layer names, linetypes, dimension styles and a review checklist. When a drawing gets corrected by hand, the correction goes back into those rules, so the next drawing starts closer.
A test part
I tested it on a wing rib from my SAE Aero team's plane: a NACA 2412 section with a 180 mm chord, spar slots at 25% and 65% of the chord, and four lightening holes, each leaving at least 4 mm of material to the skin. The DWG is the drawing Claude produced. The animation above recreates its drafting sequence.