mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-03 18:45:55 +00:00
Kernel rig: 3841 is 168's rim touching its coin along a circle, and 4092's reduced recipe is its report less a flange clear of the failing join; the kept cases carry their sources
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#168"
|
||||
"tangency-labs/solidcraft#168",
|
||||
"tangency-labs/solidcraft#3841"
|
||||
],
|
||||
"what": "a rim on a coin's top face that meets the coin along one circle only (no shared area, no shared volume): it must not be joined into it",
|
||||
"source": "analytic",
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#3841",
|
||||
"tangency-labs/solidcraft#168"
|
||||
],
|
||||
"what": "Join of a ring (r10..15) onto a coin (r10) that touch only along a circle: no fusion that moves the ring",
|
||||
"source": "invariants",
|
||||
"outcome": "solid_or_refused",
|
||||
"method": "the bodies share one circular edge and no area, so a join has no single manifold solid to give: the right answer is a clean refusal, or the two bodies left as they are (body_count 2). Fusing them means the kernel moved or rotated the ring",
|
||||
"body_count": 2
|
||||
}
|
||||
@@ -1,112 +0,0 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 10
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"distance": 3,
|
||||
"operation": "new",
|
||||
"body_name": "Coin"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0,
|
||||
0,
|
||||
3
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 10
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 15
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"profiles": [
|
||||
{
|
||||
"point": [
|
||||
12,
|
||||
0
|
||||
]
|
||||
}
|
||||
],
|
||||
"distance": 3,
|
||||
"operation": "join",
|
||||
"targets": [
|
||||
"Coin"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4092"
|
||||
],
|
||||
"what": "the same without the top flange: the join fails with 'boolean Union: no result'",
|
||||
"source": "analytic",
|
||||
"method": "the pad (X -8..8, Y 18..25, Z 36..59) overlaps the body, ribs and ring, so the join is one connected solid; the join must succeed with one valid closed solid and no panic. Body: neck pi 18^2 21; the two-section loft is ruled, the circle r 18 paired with the 30 x 20 ellipse by their common angle parameter (the ellipse an affine image of the circle), so each section is an ellipse (18 + 12 l) x (18 + 2 l): 17 pi int (18 + 12 l)(18 + 2 l) dl = 7786 pi (pairing by normals instead, the largest any pairing gives, adds 17 pi * 1.5 = 80, inside the tolerance); the ellipse chamber pi*30*20*26 (z 38..64): 94844.68. The handle disc (r 12 about (y 30, z 47), x -5..5), the two ribs (the rounded profile, x -8..-4 and 4..8) and the pad (x -8..8, z 36..59 rounded r 3, y 18..25) add, by integrating over x -8..8, z 35..59 the length in y of the union of every part's y-interval less the body's own (grids 400^2..1600^2 agree to 2.4): 5347.9. V = 100192.6. Box: the chamber's x +-30, y -20 to the disc's 42, z 0..64",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 100192.6,
|
||||
"bbox": {
|
||||
"min": [
|
||||
-30.0,
|
||||
-20.0,
|
||||
0.0
|
||||
],
|
||||
"max": [
|
||||
30.0,
|
||||
42.0,
|
||||
64.0
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,508 +0,0 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "file.new",
|
||||
"params": {
|
||||
"name": "Native_loft_pad_union_repro"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "document.units",
|
||||
"params": {
|
||||
"units": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"diameter": "36 mm",
|
||||
"height": "21 mm",
|
||||
"base": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"operation": "new",
|
||||
"name": "01_Neck_outer_D36_H21",
|
||||
"body_name": "NATIVE_CAP_BODY"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"name": "02_Outer_transition_round",
|
||||
"plane": "XY",
|
||||
"offset": "21 mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"diameter": 36
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"name": "03_Outer_transition_ellipse",
|
||||
"plane": "XY",
|
||||
"offset": "38 mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.ellipse",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"major": [
|
||||
30.0,
|
||||
0
|
||||
],
|
||||
"minor_radius": 20.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.loft",
|
||||
"params": {
|
||||
"sections": [
|
||||
{
|
||||
"sketch": "02_Outer_transition_round"
|
||||
},
|
||||
{
|
||||
"sketch": "03_Outer_transition_ellipse"
|
||||
}
|
||||
],
|
||||
"operation": "join",
|
||||
"targets": [
|
||||
"NATIVE_CAP_BODY"
|
||||
],
|
||||
"name": "04_Outer_round_to_oval_transition"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"name": "05_Upper_chamber_60x40",
|
||||
"plane": "XY",
|
||||
"offset": "38 mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.ellipse",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"major": [
|
||||
30.0,
|
||||
0
|
||||
],
|
||||
"minor_radius": 20.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "05_Upper_chamber_60x40",
|
||||
"distance": 26,
|
||||
"operation": "join",
|
||||
"targets": [
|
||||
"NATIVE_CAP_BODY"
|
||||
],
|
||||
"name": "06_Upper_chamber_blank"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"name": "Handle_outer_D24",
|
||||
"plane": {
|
||||
"origin": [
|
||||
-5,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
30,
|
||||
47
|
||||
],
|
||||
"diameter": 24
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "Handle_outer_D24",
|
||||
"distance": 10,
|
||||
"operation": "join",
|
||||
"targets": [
|
||||
"NATIVE_CAP_BODY"
|
||||
],
|
||||
"name": "Handle_outer_D24_thickness10"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"name": "Handle_lower_rib_X-8",
|
||||
"plane": {
|
||||
"origin": [
|
||||
-8,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
18.0,
|
||||
37.5
|
||||
],
|
||||
"end": [
|
||||
19.5,
|
||||
36.0
|
||||
],
|
||||
"through": [
|
||||
18.439339828220177,
|
||||
36.43933982822018
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
19.5,
|
||||
36.0
|
||||
],
|
||||
[
|
||||
24.4516191451179,
|
||||
36.0
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
24.4516191451179,
|
||||
36.0
|
||||
],
|
||||
"end": [
|
||||
25.20742568340403,
|
||||
38.79566835134765
|
||||
],
|
||||
"through": [
|
||||
25.89963546529897,
|
||||
37.10853003117829
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
25.20742568340403,
|
||||
38.79566835134765
|
||||
],
|
||||
[
|
||||
20.25580653828613,
|
||||
41.68411285266642
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
20.25580653828613,
|
||||
41.68411285266642
|
||||
],
|
||||
"end": [
|
||||
18.0,
|
||||
40.38844450131877
|
||||
],
|
||||
"through": [
|
||||
18.75290891031588,
|
||||
41.68915773017231
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
18.0,
|
||||
40.38844450131877
|
||||
],
|
||||
[
|
||||
18.0,
|
||||
37.5
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "Handle_lower_rib_X-8",
|
||||
"distance": 4,
|
||||
"operation": "join",
|
||||
"targets": [
|
||||
"NATIVE_CAP_BODY"
|
||||
],
|
||||
"name": "Handle_lower_rib_X-8_R1p5_thickness4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"name": "Handle_lower_rib_X4",
|
||||
"plane": {
|
||||
"origin": [
|
||||
4,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
18.0,
|
||||
37.5
|
||||
],
|
||||
"end": [
|
||||
19.5,
|
||||
36.0
|
||||
],
|
||||
"through": [
|
||||
18.439339828220177,
|
||||
36.43933982822018
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
19.5,
|
||||
36.0
|
||||
],
|
||||
[
|
||||
24.4516191451179,
|
||||
36.0
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
24.4516191451179,
|
||||
36.0
|
||||
],
|
||||
"end": [
|
||||
25.20742568340403,
|
||||
38.79566835134765
|
||||
],
|
||||
"through": [
|
||||
25.89963546529897,
|
||||
37.10853003117829
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
25.20742568340403,
|
||||
38.79566835134765
|
||||
],
|
||||
[
|
||||
20.25580653828613,
|
||||
41.68411285266642
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
20.25580653828613,
|
||||
41.68411285266642
|
||||
],
|
||||
"end": [
|
||||
18.0,
|
||||
40.38844450131877
|
||||
],
|
||||
"through": [
|
||||
18.75290891031588,
|
||||
41.68915773017231
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
18.0,
|
||||
40.38844450131877
|
||||
],
|
||||
[
|
||||
18.0,
|
||||
37.5
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "Handle_lower_rib_X4",
|
||||
"distance": 4,
|
||||
"operation": "join",
|
||||
"targets": [
|
||||
"NATIVE_CAP_BODY"
|
||||
],
|
||||
"name": "Handle_lower_rib_X4_R1p5_thickness4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"name": "Handle_root_pad_R3",
|
||||
"plane": {
|
||||
"origin": [
|
||||
0,
|
||||
18,
|
||||
0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.rounded",
|
||||
"params": {
|
||||
"p0": [
|
||||
-8,
|
||||
36
|
||||
],
|
||||
"p1": [
|
||||
8,
|
||||
59
|
||||
],
|
||||
"radius": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "Handle_root_pad_R3",
|
||||
"distance": 7,
|
||||
"direction": "negative",
|
||||
"operation": "join",
|
||||
"targets": [
|
||||
"NATIVE_CAP_BODY"
|
||||
],
|
||||
"name": "Native_root_pad_R3"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user