An Autodesk Inventor add-in that turns a hopper configuration into a verified release package
- Problem
- Every rectangular transition hopper a plate shop builds is a different size, but the method is identical each time — develop four converging panels, choose formed flanges or a bolted angle frame, space the stiffeners, then produce the model, drawings, cut files and a bill of materials by hand.
- What was built
- An Autodesk Inventor 2026 add-in that takes eleven inputs and produces the part models, an assembly, drawings, flat-pattern DXF, PDF and a bill of materials, then validates them and refuses to release a package that fails a check.
- Result
- 64 engine rules across eight families, with a second implementation that agrees on all seven reference sizes; flat patterns read back within the 2.5% validation gate (about 1.2% on the nominal hopper); 111 automated tests pass and every release carries a SHA-256 manifest.
Problem
Every plate shop that makes hoppers redraws the same development for each new size. A rectangular inlet transitions to a smaller — sometimes offset — rectangular outlet through four converging sheet-metal panels. Each panel has to be developed flat, its bends and flange found and its bolt holes laid out; then the model, the drawings, the cut files and the bill of materials all have to agree. It is a half-day of careful, repetitive work per order, and the rules for it usually live in one senior designer's head and a spreadsheet.
The demonstration goal: show that the whole chain — from a configuration to a checked, releasable package — can be written once as tested software, with every rule identified and every output verified before it is allowed out.
Constraints
- The rules live in plain C#, outside the CAD system, so the same logic is tested without Inventor open and can be reused elsewhere.
- A second, independent implementation in Python re-derives the same rules from the specification and must agree.
- Every rule carries an identifier; the output is deterministic; nothing is produced or checked by a machine-learning model.
- Each job is a portable, self-contained folder — its own models, drawings, cut files, bill of materials, validation report and manifest.
- The release is fail-closed: it is refused unless every error-level check passes, and a refused release writes nothing.
- Drawings and cut files are demonstration documentation, not approved for fabrication.
Engineering logic
64 engine rules across eight families — validation, geometry, sheet metal, bolting, stiffeners,
angle frame, mass and naming — plus 5 drawing rules, each with an identifier and a formula,
labelled as a standard formula or a demonstration rule, and exercised by golden-configuration,
failure-case and fuzz tests. The valley angle that governs flow is GEO-008; the choice between a formed
flange and a bolted angle frame comes from the press-brake limit and a minimum wall angle
(SM-006, SM-008); the bend allowance uses a stated K-factor
(SM-005). Demonstration design rules are labelled as such and kept separate from
standard formulas, so a client's own rules can replace them one identifier at a time.
System
A pure C# rule engine — with no Inventor dependency — turns eleven inputs into a full derived design. The add-in then drives Autodesk Inventor to build it: one sheet-metal panel per face, an assembly of four grounded panels placed by computed transforms, a general-arrangement drawing and one flat-pattern sheet per panel, four flat DXF, five PDF, and the bill-of-materials, cut-list and blanks CSVs. A ribbon command opens a configuration window; the operator sees eleven plain inputs, never a CAD parameter name, and drives Configure → Validate → Generate → Release.
Validation
The point of the system is not that Inventor produced files — it is that two independent routes agree the files are right, and nothing ships until they do.
| Check | What it proves |
|---|---|
| Second implementation (Python) | Re-derives the 64 engine rules from the specification and agrees with the C# engine on all seven reference sizes. |
| Independent DXF read-back (ezdxf) | The flat-pattern outer profile, read back by a library that had no part in producing it, matches the computed blank area within the 2.5% validation gate — about 1.2% on the published nominal hopper, exactly for plain panels. |
| Deterministic drawing layout | Every sheet is placed by a layout model with its own collision checks — no view, table or note overlaps another and everything stays inside the sheet — re-run by the validator on a recorded layout report. |
| Fail-closed release | A release is refused unless every error-level check passes; each package carries a SHA-256 manifest of every file. |
| Automated suite | 111 tests across unit, rule-engine, live-CAD integration and end-to-end, all passing; the live-CAD integration tests confirm that the flat-pattern bend angles equal the computed face angles. |
Timings are measured on the development workstation with Inventor 2026.3, warm, three reps:
| Step | G1 | G3 | G4 |
|---|---|---|---|
| Full generation — models, assembly, 5 drawings, 4 DXF, 5 PDF, CSVs | 5.29 s | 4.15 s | 4.78 s |
| Validation, including the independent DXF read-back | 0.47 s | 0.47 s | 0.48 s |
| Fail-closed release — package, manifest and zip | 0.09 s | 0.07 s | 0.09 s |
Result
- 64 engine rules across eight families; a second implementation in Python agreeing with the C# engine on all seven reference configurations.
- 111 automated tests passing — 15 core, 84 product and rule-engine, 9 live-CAD integration and 3 end-to-end — plus the independent cross-check.
- Flat patterns read back by ezdxf within the 2.5% validation gate — about 1.2% on the published nominal hopper, and exactly for plain panels; the live-CAD integration tests confirm the flat bend angles equal the computed face angles.
- A complete package — models, assembly, five drawings, four DXF, five PDF, the CSVs, a validation report and a SHA-256 manifest — produced in about five seconds warm; validation about half a second; the fail-closed release about a tenth of a second.
- Every sheet placed by a deterministic layout with its own collision checks, so a public drawing reads as controlled documentation rather than dropped views; the offset-outlet case reads correctly on both the plan view and the flat pattern.
What is not claimed: that any part has been fabricated from these files, or that the drawings are approved for production. They are demonstration documentation; the shop verifies before anything is cut, and the disclaimer says so.
Responsibility
Self-owned demonstration: the rule engine, the add-in and the drawing-layout system were designed, built and verified by Ruthen Systems as its own software, from first-principles inputs; the CAD templates are Autodesk's stock metric templates. The design rules are demonstration rules; in a client engagement they are replaced by the client's own rules, each with a named owner and validated against the client's past jobs. Nothing here is a certification, approval or sign-off; design adequacy remains subject to review or approval by a licensed engineer. No client, employer or third-party material is involved.
Technology
C# / .NET 8 · Autodesk Inventor 2026 COM API · WPF · xUnit · Python (ezdxf, numpy) for the independent check
Download
- Sample release package (zip, 2.1 MB) — one generated hopper: part models, assembly, five drawings, four flat DXF, five PDF, the BOM/cut/blanks CSVs, the validation report and a SHA-256 manifest.
- General-arrangement drawing, nominal hopper (PDF)
- General-arrangement drawing, offset outlet (PDF)