← BeidPrep: checked against tests

Automatic midsurface on eight thin-walled test parts: 97–99.6 % of the true midsurface on six of them

Summary

I ran BeidPrep's midsurface engine (release engine 8cefff4, 27 Oct 2026) on eight moulded and cast test parts that I designed myself, and compared each result with the part's designed mid-surface. On six of the eight parts the result covers 97.3–99.6 % of the true midsurface with a mean thickness error of 0.015–0.030 mm, and 0.9–4.2 % of the mesh elements fail a crash-quality check (one part: 9.7 %). The two free-form gear housings are the weak spot: 72–74 %, because the engine leaves out curved walls whose thickness changes along the wall.

The test parts

All eight parts are my own synthetic parts, built for this test; none is a client part. Each is one closed, valid solid, built from simple solids and boolean operations in CadQuery / OpenCascade, with no wall thinner than 1.0 mm. Wall sizes follow common injection-moulding design rules (rib root 0.5–0.7 × wall, draft 0.5–1.5° per side, root fillets about 0.25 × wall).

PartWhat it isSize (mm)Walls (mm)
1 Gearbox coverplate with a stepped zone, domed boss rings, honeycomb and straight ribs, bosses with gussets, flange136 × 146 × 301.2–3.0
2 Carrier traydecks, skirt, tower, mounting lugs, snap hooks224 × 143 × 1211.2–2.5
3 Gear housingwalls, two floor levels, partitions, stepped bosses, rim tongue234 × 140 × 751.2–3.0
3B Gear housing, free-formPart 3 with curved (free-form) walls and floor236 × 141 × 851.2–3.0
3C Gear housing, free-form with root fillets3B with R1 fillets at every rib root236 × 141 × 851.2–3.0
4 Blower scrollspiral scroll wall, box, ribbed panel, ears260 × 326 × 811.2–3.0
5 Pedal bracketweb with a rib truss, rims, fins, mount flange256 × 204 × 361.4–3.0
6 Hinge bracketasymmetric bracket: web joggled up to a deck, two hinge lugs, rib truss, bosses, bolt-down ears294 × 150 × 601.4–4.0

Ground truth. I do not compare against another midsurface program. While each part is built, every wall, rib, boss and gusset also records its designed mid-surface (the surface halfway through the wall, as drawn) and its design thickness. These surfaces are trimmed to the part (holes and windows cut out) and each ends exactly where it meets its neighbour's mid-surface; the curves where two of them meet are the expected junctions. For curved shells the mid-surface is the part's own outer skin moved inward by half the wall thickness, so fillets are exact; drafted ribs keep their tapering thickness. Two simplifications: a boss's mid-cylinder runs through its solid core down to the plate, and the R1 root fillets of 3C are not part of its ground truth (the band at each filleted root is left out of the thickness check).

How I measured

Each part goes through the engine exactly as BeidPrep runs it: one run, in its own process, with a 300 s time limit. I do no manual clean-up, repair or re-run on any part. The same fixed scoring script is used for every engine version.

Results per part

Engine 8cefff4. Pictures: the CAD solid, then the midsurface (one colour per thickness) with its 2 mm mesh.

Totals. Mean coverage over the eight parts 92.2 % (six parts 97.3–99.6 %); junctions found 991 of 1,298; no face of any result fails OpenCascade's validity check in memory.

PartCoverageThickness error mean / max (mm)JunctionsElements failing any checkElements < 5°Unmeshed facesGap spots (open edge)
1 Gearbox cover98.06 %0.017 / 1.18362 / 4509.65 % of 10,94927172 (701 mm)
2 Carrier tray99.25 %0.022 / 1.64123 / 1291.90 % of 23,4193017 (520 mm)
3 Gear housing99.63 %0.030 / 2.62176 / 1843.00 % of 24,51568950 (1,072 mm)
3B Free-form housing73.67 %0.048 / 2.5746 / 1281.05 % of 17,8945274 (2,254 mm)
3C Free-form, root fillets72.32 %0.041 / 2.5740 / 1281.37 % of 17,5343284 (2,445 mm)
4 Blower scroll97.30 %0.015 / 2.85107 / 1400.86 % of 30,6625030 (2,562 mm)
5 Pedal bracket98.87 %0.023 / 3.8985 / 864.21 % of 11,3455028 (1,136 mm)
6 Hinge bracket98.20 %0.020 / 2.7952 / 531.40 % of 15,1201217 (906 mm)

Share of elements failing each check (%):

PartAngleAspectWarpageSkewJacobianTaperShort edge
1 Gearbox cover4.181.420.011.403.950.916.30
2 Carrier tray0.610.060.000.051.050.091.00
3 Gear housing1.440.660.000.650.930.092.20
3B Free-form housing0.450.110.000.100.250.040.74
3C Free-form, root fillets0.390.100.000.070.430.090.97
4 Blower scroll0.330.090.000.120.390.070.56
5 Pedal bracket1.000.370.000.281.210.173.23
6 Hinge bracket0.690.090.000.070.290.051.05

Part 1 — Gearbox cover

Gearbox cover, CAD solid
Gearbox cover, midsurface and mesh

98.06 % coverage, 362 of 450 junctions. Left: the short honeycomb ribs next to the wall (several of them under 30 % covered) and two small regions the engine reports as not made (74 mm² of varying thickness, 20 mm² without a steady opposite wall). The many short ribs give the most small elements of the eight parts: 9.65 % fail a check, mostly the short-edge and angle checks.

Part 2 — Carrier tray

Carrier tray, CAD solid
Carrier tray, midsurface and mesh

99.25 % coverage, 123 of 129 junctions, every face meshed. Left: the snap hooks (58–62 % covered) and part of the shell blend (86 %).

Part 3 — Gear housing

Gear housing, CAD solid
Gear housing, midsurface and mesh

99.63 % coverage, 176 of 184 junctions. Left: the 1.2 mm rim tongue (76 %) and some gusset ends. 9 small faces are not meshed and 68 elements have a corner under 5°; after the STEP round trip the scorer finds 3 faces that fail its validity check.

Part 3B — Gear housing, free-form

Free-form gear housing, CAD solid
Free-form gear housing, midsurface and mesh

73.67 % coverage, 46 of 128 junctions. The free-form floor (2.57–3.0 mm thick, 15 % spread) and most gussets are left out and reported: 19 regions, 18 of them "varying thickness". The walls that are made are accurate (mean thickness error 0.048 mm) and mesh well (1.05 % failing).

Part 3C — Gear housing, free-form with root fillets

Free-form gear housing with root fillets, CAD solid
Free-form gear housing with root fillets, midsurface and mesh

72.32 % coverage, 40 of 128 junctions: as 3B, plus the R1 root fillets, which cost six more junctions. 15 regions reported not made.

Part 4 — Blower scroll

Blower scroll, CAD solid
Blower scroll, midsurface and mesh

97.30 % coverage, 107 of 140 junctions, every face meshed, 0.86 % of elements failing. Left: the shell blend between walls of different thickness (70 %) and the short strips joining three bosses to the scroll wall (66–71 %).

Part 5 — Pedal bracket

Pedal bracket, CAD solid
Pedal bracket, midsurface and mesh

98.87 % coverage, 85 of 86 junctions, every face meshed. Left: part of the outer wall and its blend (97 and 98 %). The largest thickness reading (3.9 mm off, on one rib) is local: the part's mean error is 0.023 mm.

Part 6 — Hinge bracket

Hinge bracket, CAD solid
Hinge bracket, midsurface and mesh

98.20 % coverage, 52 of 53 junctions. Left: the shell blend along the joggle (the white strip in the picture, 396 mm², reported as not made: its thickness varies by 9.9 %). Two faces are not meshed.

Where it's weak and why

Limits

Get in touch