Headless CAD
Driving Vivado, Fusion, and EasyEDA Pro from outside the GUI
Three CAD tools, three ways in, and a catalogue of everything that turned out to be broken.
Vivado, Fusion, and EasyEDA Pro are built for a human holding a mouse. This is the record of driving all three from an external process instead — no screen scraping, no clicking robots. Find the scripting mechanism the application already has inside it, and push code straight into that, so failures come back as failures.
Three methods, in rising order of difficulty
- Vivado — the official batch entry point, and the wrapper worth building around it
- Autodesk Fusion — a resident add-in speaking HTTP, marshalling onto the main thread, because touching the API from a worker thread kills the application outright
- EasyEDA Pro — CDP into the Electron renderer, reaching a 703-method extension API with no extension installed
The part that is not in any documentation
Connecting is not the hard part. Catching the lies is. A function that returns
true and does nothing. One that returns undefined and
stays quiet. One whose promise never settles. A bounding box padded by 0.01 mm, so
the enclosure never quite fits. Chapter 5 sorts every broken call I hit into four
kinds by how it fails and how dangerous each kind is.
What this is not
Not a book about design. How to route a board or write timing constraints is not here — that is not my field. What I did was take the steps an expert performs by hand and translate them into something callable from outside. The design itself and the plumbing that drives the design tools are different skills.
Format
PDF (A5, 19,000 words, 8 chapters) and EPUB. Chapters 1 and 2 are free.
The Japanese edition is on Zenn: GUI しかない CAD を、エージェントに操作させる
A related free article: Automating EasyEDA Pro Externally Without Extensions (machine-translated by Zenn)