Adds oracle case 81 (a box edge rounded at a clamped cubic B-spline radius) with analytic expected values, and passes spline fillets through recipes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
21 lines
1.3 KiB
Markdown
21 lines
1.3 KiB
Markdown
# Analytic reference values
|
|
|
|
Closed-form expected values for the cases in [`tests/oracle/`](../../tests/oracle/) whose shape
|
|
has one: prisms, cylinders, cones and frustums, spheres and caps, tori and solids of revolution
|
|
(Pappus), fillets on straight edges (a constant radius, or one varying along the edge), shells,
|
|
patterns of these, and folded sheet metal (flats plus bends as annular sectors). Each script is
|
|
plain Python 3 (standard library only) with one function per case. Running a script from the repository root rewrites the
|
|
`expected.json` of its cases with `"source": "analytic"` and a `method` string giving the formulas:
|
|
|
|
```sh
|
|
python3 tools/oracle-analytic/cases_basic.py # 01-29: boxes, holes, revolves, sketches
|
|
python3 tools/oracle-analytic/cases_features.py # 32-66: fillets, shells, sweeps, patterns
|
|
python3 tools/oracle-analytic/cases_sheet_metal.py # 67-76: sheet metal
|
|
python3 tools/oracle-analytic/cases_fillets.py # 77-81: variable, chord-length, tapered and spline fillets
|
|
```
|
|
|
|
Where a value depends on a SolidCraft convention rather than on geometry alone (a shell's sharp
|
|
inner corner, a sheet-metal corner relief, where a flange height is measured), `method` or
|
|
`note` says which convention is used. Never change a value to match SolidCraft's output: if they
|
|
disagree, find out which one is wrong.
|