kernel-cases: shell and offset from #12-#4144 (21 cases, 59 skipped)

4009 closed shell, 4010 shell open at a hole wall, 2531 point pick after an edit,
3468/3898 offset next to a fillet, 12 split face piece, 566 swept bar, 745/3893
freeform boss (two variants), 3103 tapered cylinder, 3669/2990 loft, 3283/3650
and 2939 curved offsets, 3506 and 1972 split then shell, 3576, 391, 1494, 1525.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
bherbruck
2026-10-21 05:42:46 -04:00
committed by jyviko
parent c3a0b09519
commit 771a48e4ff
37 changed files with 1858 additions and 0 deletions
@@ -0,0 +1,11 @@
{
"sources": [
"tangency-labs/solidcraft#12"
],
"what": "Offset Face on one piece of a split face moves only that piece, not the coplanar neighbour",
"source": "analytic",
"method": "box 40x30x10, top face split at x=20; the x<20 piece moves up 2 mm: V=12000+20*30*2=13200; faces: bottom, front, back, left, right, two top pieces, step wall at x=20 = 8; bbox z 0..12",
"body_count": 1,
"volume_mm3": 13200,
"faces": 8
}
@@ -0,0 +1,49 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"length": 40,
"width": 30,
"height": 10
}
},
{
"command": "solid.split_face",
"params": {
"faces": [
[
10,
15,
10
]
],
"plane": {
"origin": [
20,
0,
0
],
"normal": [
1,
0,
0
]
}
}
},
{
"command": "solid.offset_face",
"params": {
"faces": [
[
10,
15,
10
]
],
"distance": 2
}
}
]
}
@@ -0,0 +1,9 @@
{
"sources": [
"tangency-labs/solidcraft#1494"
],
"what": "a 47.5x45x30 box with a cylinder r7.5 joined on its side whose axis lies in the plane of the box's front face (y=0), shelled 1 mm open at the bottom",
"source": "invariants",
"method": "the cylinder wall's seam lies on the front plane, giving a five-face saddle corner at (47.5,0,2.5). No closed-form volume (the cavity corners follow the offset surfaces); the shell must succeed and give one valid closed body",
"body_count": 1
}
@@ -0,0 +1,43 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"height": 30.0,
"length": 47.5,
"width": 45.0
}
},
{
"command": "solid.cylinder",
"params": {
"axis": [
1.0,
0.0,
0.0
],
"base": [
47.5,
0.0,
10.0
],
"height": 30.0,
"operation": "join",
"radius": 7.5
}
},
{
"command": "solid.shell",
"params": {
"faces": [
[
23.75,
22.5,
0.0
]
],
"thickness": 1.0
}
}
]
}
@@ -0,0 +1,9 @@
{
"sources": [
"tangency-labs/solidcraft#1525"
],
"what": "a 50x50x30 box with r10 vertical rounds, a 5 mm chamfer round the base and a 4 mm fillet where the chamfer meets the wall, shelled 2 mm open at the top",
"source": "invariants",
"method": "every radius and the chamfer have room for a 2 mm wall, so the shell must succeed: one valid closed body (no closed-form volume with the blend patches)",
"body_count": 1
}
@@ -0,0 +1,154 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"corner": [
0,
0,
0
],
"length": 50,
"width": 50,
"height": 30
}
},
{
"command": "solid.fillet",
"params": {
"edges": [
[
0,
0,
15
],
[
50,
0,
15
],
[
0,
50,
15
],
[
50,
50,
15
]
],
"radius": 10
}
},
{
"command": "solid.chamfer",
"params": {
"edges": [
[
25,
0,
0
],
[
50,
25,
0
],
[
25,
50,
0
],
[
0,
25,
0
],
[
2.929,
2.929,
0
],
[
47.071,
2.929,
0
],
[
47.071,
47.071,
0
],
[
2.929,
47.071,
0
]
],
"distance": 5
}
},
{
"command": "solid.fillet",
"params": {
"edges": [
[
25,
0,
5
],
[
50,
25,
5
],
[
25,
50,
5
],
[
0,
25,
5
],
[
2.929,
2.929,
5
],
[
47.071,
2.929,
5
],
[
47.071,
47.071,
5
],
[
2.929,
47.071,
5
]
],
"radius": 4
}
},
{
"command": "solid.shell",
"params": {
"faces": [
[
25,
25,
30
]
],
"thickness": 2
}
}
]
}
@@ -0,0 +1,10 @@
{
"sources": [
"tangency-labs/solidcraft#1972"
],
"what": "a sphere split into two hemispheres; shelling the flat face of one must hollow that half only, the other half stays solid",
"source": "analytic",
"method": "two hemispheres r10, flat faces coincident at z=0. The pick (3,2,0) lies on both flat faces, so the body is named. The named half becomes a hollow hemisphere with cavity r8 open at the flat face: V=2/3*pi*(10^3-8^3); the other half is untouched: 2/3*pi*10^3. Total of two bodies",
"body_count": 2,
"volume_mm3": 3116.4599123610747
}
@@ -0,0 +1,43 @@
{
"commands": [
{
"command": "solid.sphere",
"params": {
"radius": 10,
"body_name": "Ball"
}
},
{
"command": "solid.split_body",
"params": {
"body": "Ball",
"plane": {
"origin": [
0,
0,
0
],
"normal": [
0,
0,
1
]
}
}
},
{
"command": "solid.shell",
"params": {
"faces": [
[
3,
2,
0
]
],
"thickness": 2,
"body": "Ball"
}
}
]
}
@@ -0,0 +1,11 @@
{
"sources": [
"tangency-labs/solidcraft#2531"
],
"what": "a shell opened by a point pick keeps opening only that face after a parameter edit moves the body under the stored point",
"source": "analytic",
"method": "after L=150, Y0=15 the bar is 150x20x20 at y 15..35, shelled 2 mm with only the right end (x=150) open: V=60000-148*16*16=22112; faces 5 outer + right-end ring + 5 inner = 11; the stored point (100,15,10) now lies in the bottom (y=15) face, which must stay closed",
"body_count": 1,
"volume_mm3": 22112,
"faces": 11
}
@@ -0,0 +1,123 @@
{
"commands": [
{
"command": "parameters.add",
"params": {
"name": "L",
"expression": "100 mm",
"unit": "mm"
}
},
{
"command": "parameters.add",
"params": {
"name": "Y0",
"expression": "5 mm",
"unit": "mm"
}
},
{
"command": "sketch.create",
"params": {
"plane": "XY",
"name": "S"
}
},
{
"command": "sketch.rectangle.two_point",
"params": {
"p0": [
0,
5
],
"p1": [
100,
25
]
}
},
{
"command": "sketch.constraint.horizontal_vertical",
"params": {
"points": [
"origin",
"l1.start"
],
"mode": "vertical"
}
},
{
"command": "sketch.dimension",
"params": {
"entities": [
"origin",
"l1.start"
],
"type": "vertical",
"value": "Y0"
}
},
{
"command": "sketch.dimension",
"params": {
"entities": [
"l1"
],
"type": "length",
"value": "L"
}
},
{
"command": "sketch.dimension",
"params": {
"entities": [
"l4"
],
"type": "length",
"value": "20 mm"
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"sketch": "S",
"distance": "20 mm",
"operation": "new",
"body_name": "Bar"
}
},
{
"command": "solid.shell",
"params": {
"faces": [
[
100,
15,
10
]
],
"thickness": "2 mm",
"direction": "inside",
"body": "Bar"
}
},
{
"command": "parameters.change",
"params": {
"name": "L",
"expression": "150 mm"
}
},
{
"command": "parameters.change",
"params": {
"name": "Y0",
"expression": "15 mm"
}
}
]
}
@@ -0,0 +1,17 @@
{
"sources": [
"tangency-labs/solidcraft#2939"
],
"what": "Offset Face on a sphere's round face",
"source": "analytic",
"method": "a sphere r10 whose face moves out 2 mm is a sphere r12: V=4/3*pi*12^3, area 4*pi*144, centroid at the origin, one face",
"body_count": 1,
"volume_mm3": 7238.229473870882,
"area_mm2": 1809.5573684677208,
"faces": 1,
"center_of_mass": [
0,
0,
0
]
}
@@ -0,0 +1,23 @@
{
"commands": [
{
"command": "solid.sphere",
"params": {
"radius": 10
}
},
{
"command": "solid.offset_face",
"params": {
"faces": [
[
10,
0,
0
]
],
"distance": "2 mm"
}
}
]
}
@@ -0,0 +1,10 @@
{
"sources": [
"tangency-labs/solidcraft#3103"
],
"what": "a cone frustum (r20 at the base, r15 at the top, 30 tall) shelled 2 mm open at the top",
"source": "analytic",
"method": "outer V=pi*30/3*(20^2+20*15+15^2). Wall offset 2 normal to the cone: half-angle a=atan(5/30), inner radius r(z)=20-z*tan(a)-2/cos(a), floor at z=2. Cavity frustum height 28 from r(2) to r(30). V=outer-pi*28/3*(ra^2+ra*rb+rb^2)",
"body_count": 1,
"volume_mm3": 8292.991685180048
}
@@ -0,0 +1,45 @@
{
"commands": [
{
"command": "sketch.create",
"params": {
"plane": "XY"
}
},
{
"command": "sketch.circle.center",
"params": {
"center": [
0,
0
],
"radius": 20
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"distance": 30,
"taper": "-9.4623222080 deg",
"operation": "new"
}
},
{
"command": "solid.shell",
"params": {
"faces": [
[
0,
0,
30
]
],
"thickness": 2
}
}
]
}
@@ -0,0 +1,17 @@
{
"sources": [
"tangency-labs/solidcraft#3283",
"tangency-labs/solidcraft#3650"
],
"what": "Offset Face on the outer cylindrical wall of a tube (the picker only accepted planar faces)",
"source": "analytic",
"method": "tube R20/r10 x 10 tall; the outer wall moves out 2 mm to R22: V=pi*(22^2-10^2)*10; faces 4 (outer, inner, top, bottom); centroid (0,0,5)",
"body_count": 1,
"volume_mm3": 12063.715789784805,
"faces": 4,
"center_of_mass": [
0,
0,
5
]
}
@@ -0,0 +1,62 @@
{
"commands": [
{
"command": "sketch.create",
"params": {
"plane": "XY"
}
},
{
"command": "sketch.circle.center",
"params": {
"center": [
0,
0
],
"radius": 20
}
},
{
"command": "sketch.circle.center",
"params": {
"center": [
0,
0
],
"radius": 10
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"distance": 10,
"operation": "new",
"profiles": [
{
"point": [
15,
0
]
}
]
}
},
{
"command": "solid.offset_face",
"params": {
"faces": [
[
20,
0,
5
]
],
"distance": "2 mm"
}
}
]
}
@@ -0,0 +1,12 @@
{
"sources": [
"tangency-labs/solidcraft#3468",
"tangency-labs/solidcraft#3898"
],
"what": "Offset Face on a boss wall whose base has a 2 mm fillet: the boss grows to r 11 and the fillet follows",
"source": "analytic",
"method": "box 60x40x10 + boss r11 x10 + concave base fillet r2 around the boss. V=24000+pi*11^2*10+2*pi*(R+d)*A with R=11, A=r^2(1-pi/4), d=r^3(5/6-pi/4)/A (Pappus, centroid of the corner region at distance d from the wall); faces: box bottom + 4 sides + top (annulus) + fillet + boss wall + boss cap = 9",
"body_count": 1,
"volume_mm3": 27863.06545197909,
"faces": 9
}
@@ -0,0 +1,51 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"length": 60,
"width": 40,
"height": 10
}
},
{
"command": "solid.cylinder",
"params": {
"radius": 10,
"height": 10,
"base": [
30,
20,
10
],
"operation": "join"
}
},
{
"command": "solid.fillet",
"params": {
"edges": [
[
40,
20,
10
]
],
"radius": 2
}
},
{
"command": "solid.offset_face",
"params": {
"faces": [
[
40,
20,
16
]
],
"distance": 1
}
}
]
}
@@ -0,0 +1,11 @@
{
"sources": [
"tangency-labs/solidcraft#3506"
],
"what": "a box split in two at z=10, then each half shelled 2 mm open on the mating face",
"source": "analytic",
"method": "two 40x30x10 halves; each shelled 2 mm open on the cut face: cavity 36x26x8 (the open side has no wall). V=2*(12000-7488)=9024; two bodies; faces 5+1 ring... each half has outer 5 + open-face ring 1 + cavity 5 = 11, so 22",
"body_count": 2,
"volume_mm3": 9024,
"faces": 22
}
@@ -0,0 +1,59 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"length": 40,
"width": 30,
"height": 20,
"body_name": "Blk"
}
},
{
"command": "solid.split_body",
"params": {
"body": "Blk",
"plane": {
"origin": [
0,
0,
10
],
"normal": [
0,
0,
1
]
}
}
},
{
"command": "solid.shell",
"params": {
"faces": [
[
20,
15,
10
]
],
"thickness": 2,
"body": "Blk"
}
},
{
"command": "solid.shell",
"params": {
"faces": [
[
20,
15,
10
]
],
"thickness": 2,
"body": "Blk (1)"
}
}
]
}
@@ -0,0 +1,9 @@
{
"sources": [
"tangency-labs/solidcraft#3576"
],
"what": "a 120x80x40 box drafted 5 degrees with 4 mm rounds on the sloping corners, shelled 2 mm open at the top: the inner rounds' edges must lie on their faces",
"source": "invariants",
"method": "no closed-form volume (tilted rounds). Invariants: the shell succeeds, one closed body, and the record's geometry check holds (every edge of the four inner rounds lies on its faces; the old offset left them up to 0.02 mm off, which other STEP readers reject)",
"body_count": 1
}
@@ -0,0 +1,76 @@
{
"commands": [
{
"command": "sketch.create",
"params": {
"plane": "XY"
}
},
{
"command": "sketch.rectangle.center",
"params": {
"center": [
0,
0
],
"corner": [
60,
40
]
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"distance": 40,
"taper": "-5 deg",
"operation": "new"
}
},
{
"command": "solid.fillet",
"params": {
"edges": [
[
58.25022672948152,
38.25022672948152,
20
],
[
58.25022672948152,
-38.25022672948152,
20
],
[
-58.25022672948152,
38.25022672948152,
20
],
[
-58.25022672948152,
-38.25022672948152,
20
]
],
"radius": 4
}
},
{
"command": "solid.shell",
"params": {
"faces": [
[
0,
0,
40
]
],
"thickness": 2
}
}
]
}
@@ -0,0 +1,12 @@
{
"sources": [
"tangency-labs/solidcraft#3669",
"tangency-labs/solidcraft#2990"
],
"what": "a loft between a 40 mm and a 20 mm square 80 mm apart, shelled 2 mm open at the small end",
"source": "analytic",
"method": "a ruled loft of two squares is a square pyramid frustum (4 planar walls). Outer V=80/3*(1600+800+400). Walls offset 2 normal to the faces: tan(a)=10/80, half-width w(z)=20-z/8-2/cos(a), floor at z=2, cavity a frustum of height 78 with areas (2w(2))^2 and (2w(80))^2: V=outer-78/3*(A1+sqrt(A1*A2)+A2); faces 4 outer walls + base + top ring + 4 inner walls + floor = 11",
"body_count": 1,
"volume_mm3": 20601.135771593457,
"faces": 11
}
@@ -0,0 +1,80 @@
{
"commands": [
{
"command": "sketch.create",
"params": {
"plane": "XY",
"offset": 0
}
},
{
"command": "sketch.rectangle.center",
"params": {
"center": [
0,
0
],
"corner": [
20,
20
]
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "sketch.create",
"params": {
"plane": "XY",
"offset": 80
}
},
{
"command": "sketch.rectangle.center",
"params": {
"center": [
0,
0
],
"corner": [
10,
10
]
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.loft",
"params": {
"sections": [
{
"sketch": "Sketch1"
},
{
"sketch": "Sketch2"
}
],
"operation": "new"
}
},
{
"command": "solid.shell",
"params": {
"faces": [
[
0,
0,
80
]
],
"thickness": 2,
"tangent_chain": false
}
}
]
}
@@ -0,0 +1,9 @@
{
"sources": [
"tangency-labs/solidcraft#391"
],
"what": "text debossed 0.6 mm into the flat flange top of a filleted and shelled tapered housing, well away from the curved walls",
"source": "invariants",
"method": "the flange top (z=6) is planar and the text is clear of the walls, so the deboss must succeed and leave one valid closed body; the letter area is font dependent, so only the outcome and validity are graded",
"body_count": 1
}
@@ -0,0 +1,152 @@
{
"commands": [
{
"command": "sketch.create",
"params": {
"plane": "XY"
}
},
{
"command": "sketch.rectangle.center",
"params": {
"center": [
0,
0
],
"corner": [
57,
42
]
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"distance": 6,
"body_name": "H"
}
},
{
"command": "sketch.create",
"params": {
"plane": "XY"
}
},
{
"command": "sketch.rectangle.center",
"params": {
"center": [
0,
0
],
"corner": [
45,
30
]
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"distance": 35,
"taper": "-2 deg",
"operation": "join",
"profiles": [
{
"point": [
0,
0
]
}
]
}
},
{
"command": "solid.fillet",
"params": {
"edges": [
[
45,
30,
20
],
[
-45,
30,
20
],
[
45,
-30,
20
],
[
-45,
-30,
20
]
],
"radius": 6
}
},
{
"command": "solid.shell",
"params": {
"faces": [
[
0,
0,
35
]
],
"thickness": 2.5
}
},
{
"command": "construct.plane.offset",
"params": {
"base": "XY",
"offset": 6,
"name": "P"
}
},
{
"command": "sketch.create",
"params": {
"plane": "P",
"name": "T"
}
},
{
"command": "sketch.text",
"params": {
"text": "AB",
"at": [
-5,
-39.5
],
"height": 4
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.emboss",
"params": {
"sketch": "T",
"depth": 0.6,
"mode": "deboss"
}
}
]
}
@@ -0,0 +1,17 @@
{
"sources": [
"tangency-labs/solidcraft#4009"
],
"what": "shell with no face removed: a closed hollow body with a sealed internal void",
"source": "analytic",
"method": "outer box 40x30x12.5, void = inward offset box 35x25x7.5 (2.5 wall every side). V=15000-6562.5=8437.5; area=outer 2(1200+500+375)=4150 + void 2(875+187.5+262.5)... computed in python; faces 6+6=12; one body with an outer and an inner shell; centroid (20,15,6.25) by symmetry",
"body_count": 1,
"volume_mm3": 8437.5,
"area_mm2": 6800.0,
"faces": 12,
"center_of_mass": [
20,
15,
6.25
]
}
@@ -0,0 +1,41 @@
{
"commands": [
{
"command": "sketch.create",
"params": {
"plane": "XY"
}
},
{
"command": "sketch.rectangle.two_point",
"params": {
"p0": [
0,
0
],
"p1": [
40,
30
]
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"distance": 12.5,
"operation": "new"
}
},
{
"command": "solid.shell",
"params": {
"faces": [],
"thickness": 2.5
}
}
]
}
@@ -0,0 +1,15 @@
{
"sources": [
"tangency-labs/solidcraft#4010"
],
"what": "plate with a through hole shelled 2.5 mm with only the hole's wall removed",
"source": "analytic",
"method": "plate 40x30x12.5 minus hole r5; cavity = inward offset box 35x25x7.5 minus the hole's cylinder (r=5 stays as the wall, height 7.5) open to the hole. V=(15000-pi*25*12.5)-(6562.5-pi*25*7.5); centroid (20,15,6.25) by symmetry",
"body_count": 1,
"volume_mm3": 8044.8009183012755,
"center_of_mass": [
20,
15,
6.25
]
}
@@ -0,0 +1,65 @@
{
"commands": [
{
"command": "sketch.create",
"params": {
"plane": "XY"
}
},
{
"command": "sketch.rectangle.two_point",
"params": {
"p0": [
0,
0
],
"p1": [
40,
30
]
}
},
{
"command": "sketch.circle.center",
"params": {
"center": [
20,
15
],
"radius": 5
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"distance": 12.5,
"operation": "new",
"profiles": [
{
"point": [
2,
2
]
}
]
}
},
{
"command": "solid.shell",
"params": {
"faces": [
[
25,
15,
6.25
]
],
"thickness": 2.5
}
}
]
}
@@ -0,0 +1,10 @@
{
"sources": [
"tangency-labs/solidcraft#566"
],
"what": "a 8x5 bar swept along a line-arc-line path (quarter circle r30 between two 30 mm legs), shelled 0.5 mm open at its start",
"source": "analytic",
"method": "path length L=30+15*pi+30. The section's centroid is on the path, so by Pappus V_bar=40*L. The cavity is the sweep of the 7x4 section (concentric offsets of the swept walls; the tightest radius 30-3.5 stays positive) from the open start to 0.5 mm short of the end: 28*(L-0.5). V=40*L-28*(L-0.5)",
"body_count": 1,
"volume_mm3": 1299.4866776461627
}
@@ -0,0 +1,112 @@
{
"commands": [
{
"command": "sketch.create",
"params": {
"plane": "XZ",
"name": "Path"
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
0,
0
],
[
0,
30
]
],
"ids": [
"l1"
]
}
},
{
"command": "sketch.arc.three_point",
"params": {
"start": "l1.end",
"through": [
8.787,
51.213
],
"end": [
30,
60
],
"id": "a1"
}
},
{
"command": "sketch.line",
"params": {
"points": [
"a1.end",
[
60,
60
]
],
"ids": [
"l2"
]
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "sketch.create",
"params": {
"plane": "XY",
"name": "Section"
}
},
{
"command": "sketch.rectangle.center",
"params": {
"center": [
0,
0
],
"corner": [
4,
2.5
]
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.sweep",
"params": {
"sketch": "Section",
"path_sketch": "Path",
"path": [
"l1",
"a1",
"l2"
]
}
},
{
"command": "solid.shell",
"params": {
"faces": [
[
0,
0,
0
]
],
"thickness": 0.5
}
}
]
}
@@ -0,0 +1,10 @@
{
"sources": [
"tangency-labs/solidcraft#745",
"tangency-labs/solidcraft#3893"
],
"what": "Offset Face on a planar end of a body that has a spline-outlined boss far from the moved face",
"source": "invariants",
"method": "the move is refused today only because the unrelated boss wall is freeform. The operation must succeed and give one valid closed solid; the box end at x=0 moves out by 1 mm (the boss area is a spline integral, so no absolute volume is asserted; the 200 mm3 change is graded in the cut-away variant 745-offset-face-then-cut-boss-away)",
"body_count": 1
}
@@ -0,0 +1,107 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"corner": [
0,
0,
0
],
"length": 40,
"width": 20,
"height": 10,
"body_name": "B"
}
},
{
"command": "sketch.create",
"params": {
"plane": {
"origin": [
0,
0,
10
],
"x_dir": [
1,
0,
0
],
"y_dir": [
0,
1,
0
]
},
"name": "S"
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
25,
5
],
[
35,
5
]
]
}
},
{
"command": "sketch.spline.fit_point",
"params": {
"points": [
[
35,
5
],
[
37,
10
],
[
30,
15
],
[
25,
5
]
]
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"sketch": "S",
"distance": 5,
"operation": "join",
"targets": [
"B"
]
}
},
{
"command": "solid.offset_face",
"params": {
"faces": [
[
0,
10,
5
]
],
"distance": "1 mm"
}
}
]
}
@@ -0,0 +1,12 @@
{
"sources": [
"tangency-labs/solidcraft#745",
"tangency-labs/solidcraft#3893"
],
"what": "the same end offset, then the boss and the box beyond x=24 cut away, which leaves an analytic body",
"source": "analytic",
"method": "after the end moves to x=-1 and the cut removes everything at x>=24 (the spline boss lies at x 25..37.x, inside the cut): a box x -1..24, 20 wide, 10 tall: V=25*20*10=5000; 6 faces",
"body_count": 1,
"volume_mm3": 5000,
"faces": 6
}
@@ -0,0 +1,124 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"corner": [
0,
0,
0
],
"length": 40,
"width": 20,
"height": 10,
"body_name": "B"
}
},
{
"command": "sketch.create",
"params": {
"plane": {
"origin": [
0,
0,
10
],
"x_dir": [
1,
0,
0
],
"y_dir": [
0,
1,
0
]
},
"name": "S"
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
25,
5
],
[
35,
5
]
]
}
},
{
"command": "sketch.spline.fit_point",
"params": {
"points": [
[
35,
5
],
[
37,
10
],
[
30,
15
],
[
25,
5
]
]
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"sketch": "S",
"distance": 5,
"operation": "join",
"targets": [
"B"
]
}
},
{
"command": "solid.offset_face",
"params": {
"faces": [
[
0,
10,
5
]
],
"distance": "1 mm"
}
},
{
"command": "solid.box",
"params": {
"corner": [
24,
-1,
-1
],
"length": 30,
"width": 22,
"height": 30,
"operation": "cut",
"targets": [
"B"
]
}
}
]
}
+238
View File
@@ -0,0 +1,238 @@
[
{
"source": "tangency-labs/solidcraft#142",
"why": "no concrete recipe: a general saddle/four-face corner construction request; its geometry is exercised by case 1494"
},
{
"source": "tangency-labs/solidcraft#209",
"why": "no geometry given (a screenshot and 'the shell removed everything'); needs the user's design"
},
{
"source": "tangency-labs/solidcraft#451",
"why": "other area: booleans (cut with a hollow spherical-shell tool)"
},
{
"source": "tangency-labs/solidcraft#1107",
"why": "other area: booleans (combine of a hollow hub with 9 lofted blades; cavity ownership)"
},
{
"source": "tangency-labs/solidcraft#1140",
"why": "other area: booleans (cutting a hollow lofted tube in half; a vertex a hair inside an edge)"
},
{
"source": "tangency-labs/solidcraft#1379",
"why": "needs the user's design; the refusal ('rim would have no thickness': round r2 tangent to the open face, shell 2 mm) is also the intended clean refusal, so no wrong result is recorded"
},
{
"source": "tangency-labs/solidcraft#1969",
"why": "needs the user's design (a sphere split into 6 faces picked by point); a closed hollow sphere is the same operation as case 4009"
},
{
"source": "tangency-labs/solidcraft#1996",
"why": "needs the user's design (only the failing pick and error text are given); no synthetic geometry can be inferred (offset of a snap-fit bottom face in an 8-body design)"
},
{
"source": "tangency-labs/solidcraft#2259",
"why": "other area: booleans (second cut beside an earlier cut through a shelled arched block; mesh edge snapping, seed 61)"
},
{
"source": "tangency-labs/solidcraft#2421",
"why": "needs the user's design (only the failing pick and error text are given); no synthetic geometry can be inferred"
},
{
"source": "tangency-labs/solidcraft#2432",
"why": "needs the user's design (only the failing pick and error text are given); no synthetic geometry can be inferred"
},
{
"source": "tangency-labs/solidcraft#2445",
"why": "no body or recipe given (a screenshot only)"
},
{
"source": "tangency-labs/solidcraft#2452",
"why": "no body or recipe given ('complex body' only)"
},
{
"source": "tangency-labs/solidcraft#2478",
"why": "not geometry: construction-plane attachment to a face that cannot keep its name (history/attachment), no wrong shape"
},
{
"source": "tangency-labs/solidcraft#2480",
"why": "needs the user's design (only the failing pick and error text are given); no synthetic geometry can be inferred (a revolved profile with a freeform face)"
},
{
"source": "tangency-labs/solidcraft#2493",
"why": "not geometry: construction-plane attachment to a face that cannot keep its name (history/attachment)"
},
{
"source": "tangency-labs/solidcraft#2556",
"why": "empty report: no body, pick or error given"
},
{
"source": "tangency-labs/solidcraft#2557",
"why": "needs the user's design (only the failing pick and error text are given); no synthetic geometry can be inferred (error: move larger than the wall; thickness 12 on an 8-body design)"
},
{
"source": "tangency-labs/solidcraft#2745",
"why": "needs the user's design (only the failing pick and error text are given); no synthetic geometry can be inferred (error: move larger than the wall; thickness 11)"
},
{
"source": "tangency-labs/solidcraft#2761",
"why": "other area: 2D sketch offset of text outlines (sketch.offset), not a solid operation"
},
{
"source": "tangency-labs/solidcraft#2795",
"why": "not geometry: UI, the plane editor says 'select a plane first' when editing an offset plane"
},
{
"source": "tangency-labs/solidcraft#2886",
"why": "needs the user's design (only the failing pick and error text are given); no synthetic geometry can be inferred"
},
{
"source": "tangency-labs/solidcraft#2905",
"why": "needs the user's design (only the failing pick and error text are given); no synthetic geometry can be inferred (shell .125 in on an 8-feature part)"
},
{
"source": "tangency-labs/solidcraft#2917",
"why": "needs the user's design (only the failing pick and error text are given); no synthetic geometry can be inferred"
},
{
"source": "tangency-labs/solidcraft#2928",
"why": "other area: booleans (join of cap-touching prisms with slightly offset cylinder walls)"
},
{
"source": "tangency-labs/solidcraft#2935",
"why": "empty report: no body, pick or error given"
},
{
"source": "tangency-labs/solidcraft#2978",
"why": "not geometry: UI, the mouse position is offset from the buttons"
},
{
"source": "tangency-labs/solidcraft#3000",
"why": "needs the user's design (only the failing pick and error text are given); no synthetic geometry can be inferred (shell direction both)"
},
{
"source": "tangency-labs/solidcraft#3031",
"why": "needs the user's design (only the failing pick and error text are given); no synthetic geometry can be inferred"
},
{
"source": "tangency-labs/solidcraft#3074",
"why": "needs the user's design (2 bodies, the face pick is not resolved: 'select at least one face'); a pick-resolution defect, not a shape with a known answer"
},
{
"source": "tangency-labs/solidcraft#3105",
"why": "needs the user's design (only the failing pick and error text are given); no synthetic geometry can be inferred (two opposite faces of a box in a 2-body design; the pick missed the faces)"
},
{
"source": "tangency-labs/solidcraft#3158",
"why": "empty report: no body, pick or error given"
},
{
"source": "tangency-labs/solidcraft#3159",
"why": "other area: 2D sketch offset of a spline (sketch.offset), not a solid operation"
},
{
"source": "tangency-labs/solidcraft#3161",
"why": "needs the user's design (only the failing pick and error text are given); no synthetic geometry can be inferred"
},
{
"source": "tangency-labs/solidcraft#3163",
"why": "empty report: no body, pick or error given"
},
{
"source": "tangency-labs/solidcraft#3181",
"why": "empty report: no body, pick or error given"
},
{
"source": "tangency-labs/solidcraft#3290",
"why": "needs the user's design (only the failing pick and error text are given); no synthetic geometry can be inferred (offset face on a 13-feature, 2-body design)"
},
{
"source": "tangency-labs/solidcraft#3341",
"why": "needs the user's design (only the failing pick and error text are given); no synthetic geometry can be inferred"
},
{
"source": "tangency-labs/solidcraft#3346",
"why": "needs the user's design (only the failing pick and error text are given); no synthetic geometry can be inferred"
},
{
"source": "tangency-labs/solidcraft#3492",
"why": "not geometry: UI, 'select the curves to offset first' (sketch offset with an empty selection)"
},
{
"source": "tangency-labs/solidcraft#3524",
"why": "needs the user's design (only the failing pick and error text are given); no synthetic geometry can be inferred (a 3 mm shell of a body with 41 cylinder faces; the failure is in an internal boolean cut)"
},
{
"source": "tangency-labs/solidcraft#3567",
"why": "not geometry: construction-plane editing, 'plane offsets nested too deeply'"
},
{
"source": "tangency-labs/solidcraft#3574",
"why": "other area: 2D sketch offset of a spline (sketch.offset), not a solid operation"
},
{
"source": "tangency-labs/solidcraft#3585",
"why": "needs the user's design (only the failing pick and error text are given); no synthetic geometry can be inferred"
},
{
"source": "tangency-labs/solidcraft#3603",
"why": "not geometry: construction-plane attachment to a face that cannot keep its name (history/attachment)"
},
{
"source": "tangency-labs/solidcraft#3621",
"why": "not geometry: construction-plane attachment to a face that cannot keep its name (history/attachment)"
},
{
"source": "tangency-labs/solidcraft#3672",
"why": "needs the user's design (only the failing pick and error text are given); no synthetic geometry can be inferred (surface.thicken of a 9-feature body)"
},
{
"source": "tangency-labs/solidcraft#3721",
"why": "needs the user's design (only the failing pick and error text are given); no synthetic geometry can be inferred (filleted extruded box in a 2-body design)"
},
{
"source": "tangency-labs/solidcraft#3742",
"why": "other area: 2D sketch offset (sketch.offset, 'collapses an arc'), not a solid operation"
},
{
"source": "tangency-labs/solidcraft#3774",
"why": "not geometry: a feature request (clearance input on Combine cut)"
},
{
"source": "tangency-labs/solidcraft#3795",
"why": "needs the user's design (only the failing pick and error text are given); no synthetic geometry can be inferred (two faces, 4 mm; only a screenshot of the result)"
},
{
"source": "tangency-labs/solidcraft#3828",
"why": "other area: 2D sketch offset of splines (sketch.offset), not a solid operation"
},
{
"source": "tangency-labs/solidcraft#3850",
"why": "other area: booleans (cut whose end face touches a round side leaves an empty shell)"
},
{
"source": "tangency-labs/solidcraft#3933",
"why": "needs the user's design; the refusal ('rim would have no thickness': round r2 tangent to the open face, shell 2 mm) is also the intended clean refusal"
},
{
"source": "tangency-labs/solidcraft#4029",
"why": "not geometry: construction-plane attachment jumps to another face after editing the offset"
},
{
"source": "tangency-labs/solidcraft#4052",
"why": "needs the user's design (only the failing pick and error text are given); no synthetic geometry can be inferred (0.1 mm shell of a chamfered and filleted part)"
},
{
"source": "tangency-labs/solidcraft#4073",
"why": "empty report: no body, pick or error given"
},
{
"source": "tangency-labs/solidcraft#4120",
"why": "needs the user's design (3-body design; the pick is not resolved: 'select at least one face')"
},
{
"source": "tangency-labs/solidcraft#4144",
"why": "needs the user's design (only the failing pick and error text are given); no synthetic geometry can be inferred (three faces, 2 mm; move larger than the wall)"
}
]