test: failing regression test for #268: Panic from truck-topology lib.rs:186 when joining struts that end on a bore wall (#283)

* test: reproduce #268 (Panic from truck-topology lib.rs:186 when joining struts that end on a bore wall)

* Sew refuses edges whose ends weld to one vertex (#268)

The sewer welds vertices on a 1e-6 grid but only rejected edges shorter than
1e-9, so a sliver edge between the two welded its ends into one vertex and
truck-topology panicked ("Two same vertices cannot construct an edge") inside
the guard. Such an edge is now a degenerate-edge error before any truck call,
and the boolean takes its usual fallback.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

---------

Co-authored-by: bherbruck <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
This commit is contained in:
authored and GitHub committed 2026-10-12 11:18:24 -04:00
1 parent db6ecaf446
commit f525704192
3 files changed
+36 -1

No files matched your search

@@ -0,0 +1,10 @@
{
"description": "A 25 x 140 x 140 fan frame with an R68 bore and two crossing 4 x 4 struts whose ends lie on the bore wall, joined into the frame. truck-topology panicked twice (lib.rs:186 'Two same vertices cannot construct an edge'); the kernel guard caught it, but the panic hook printed it. Issue #268.",
"commands": [
{"command": "solid.box", "params": {"corner": [438, 50, 42], "length": 25, "width": 140, "height": 140, "operation": "new_body", "body_name": "Frame"}},
{"command": "solid.cylinder", "params": {"base": [438, 120, 112], "axis": "X", "radius": 68, "height": 25, "operation": "cut"}},
{"command": "solid.box", "params": {"corner": [459, 52, 110], "length": 4, "width": 136, "height": 4, "operation": "new_body", "body_name": "StrutH"}},
{"command": "solid.box", "params": {"corner": [459, 118, 44], "length": 4, "width": 4, "height": 136, "operation": "new_body", "body_name": "StrutV"}},
{"command": "solid.combine", "params": {"target": "Frame", "tools": ["StrutH", "StrutV"], "operation": "join"}}
]
}