fix(compose): detect central bore on plane-only disc flanges (refs Mark/pc2cad#76) #82
No reviewers
Labels
No labels
blocked:needs-decision
blocked:preflight
bug
in-progress
in-progress
lint-cleanup
needs-decompose
quickfix
triage-approved
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/pc2cad!82
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "kilo-gsd-76-fix"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
The landed fix in
becf5afaddressed the central bore on a thin plate flange, butc6f901f(#81) then added a coarsehas_curved_primitivegate that disabled the body-aware feature sweep on plane-only bodies. This re-disabled bore detection onmethodology_flange.ply(a disc with only two plane primitives in its compose body), leaving the reconstruction as a solid disc with no central bore and no bolt-circle. Coverage 0.875 (passes the gate) but the geometric match is wrong.Three coupled fixes
The
c6f901fgate is removed. The compose-engine path now always runs_find_feature_cylinders. The assembly-regression case (box-edge noise admitting 60+ inliers per "cylinder" peak) is handled by the new angular-uniformity gate in_accept_candidateinstead of a coarse body-level gate._find_feature_cylindersgains amulti_features_per_axisflag. The compose-engine path passesTrue: it accepts MULTIPLE passing candidates per axis (e.g. central bore + bolt-circle annulus on the same disc Z-axis). The legacy path keeps the defaultFalse: single-feature-per-axis, which preserves thetest_plate_hole_detected_and_exportedregression (strategy_plate_with_hole.plyhas a real 10mm hole at r=9.72mm and a phantom 1mm-chamfered-edge ring at r=18.98mm; only the real hole should be exported)._accept_candidategains the angular-uniformity gate. Real cylindrical features have inliers spread around the full 360° circumference (8-sector std/mean ≈ 0.18 on flange bolt-circle, ≈ 0.15 on flange bore, ≈ 0.15 on plate hole). Spurious "cylinders" from box edges have inliers concentrated at the box corners (8-sector std/mean ≈ 1.5 on assembly r=10.4mm, ≈ 1.1 on r=12.7mm). The 0.25 threshold rejects the box-edge noise while keeping real features.Acceptance
samples/methodology_flange.plyreconstruction now contains the bolt-hole pattern AND the central bore.render_comparereports coverage 0.875 (≥0.85) and the STEP contains 2 hole features.Verified
Refs Mark/pc2cad#76.