kernel-cases: booleans from #13-#2534, first half (30 cases, 73 skipped)

Spheres cut twice (#1717), box/cylinder intersect (#1647), crossing cylinders
moved far (#1649), coaxial cut from a thin disc (#500), coincident cylinder
walls (#114, #2008, #1910, #1865), rim touching a coin (#168), holes along
walls and beside rounds (#559, #562, #1279, #1355, #2055), tangent holes
(#307), blind cut in a cylinder (#308), through-all cut (#423), shallow cuts
(#1858), skin left by a short cut (#1730), delete face (#1927), collinear
extrude sides (#1949), hidden bodies (#2464), mirror and patterns (#2003,
#2524, #2076), tapered extrudes (#831), text cut (#1195), split (#13).
Every other item in the bundle is in skipped-a.json with its reason.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
bherbruck
2026-10-21 05:49:10 -04:00
committed by jyviko
parent 035aa6512e
commit 48db4fa2cf
61 changed files with 2413 additions and 0 deletions
@@ -0,0 +1,11 @@
{
"sources": [
"tangency-labs/solidcraft#114"
],
"what": "extruding a profile onto a cylinder with zero taper: the new wall is the old wall continued (coincident cylindrical faces), join failed",
"source": "analytic",
"method": "cylinder r10 h10 joined with an r10 circle extruded 5 from its top: one cylinder r10 h15; V = pi*100*15 = 1500 pi = 4712.389; faces: 2 caps and one side = 3",
"body_count": 1,
"volume_mm3": 4712.38898038469,
"faces": 3
}
@@ -0,0 +1,42 @@
{
"commands": [
{
"command": "solid.cylinder",
"params": {
"radius": 10,
"height": 10,
"body_name": "Base"
}
},
{
"command": "sketch.create",
"params": {
"plane": "XY",
"name": "Top",
"offset": 10
}
},
{
"command": "sketch.circle.center",
"params": {
"center": [
0,
0
],
"radius": 10
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"sketch": "Top",
"distance": 5,
"operation": "join"
}
}
]
}
@@ -0,0 +1,21 @@
{
"sources": [
"tangency-labs/solidcraft#1195"
],
"what": "text cut into a plate: a boundary curve's end meeting a point whatever its parameter (glyph outlines through a text cut)",
"source": "invariants",
"method": "cutting engraved text 1 mm deep into a 60x20x5 plate keeps one valid closed solid with less volume than the plate (V < 6000) ; a clean solid, no refusal",
"body_count": 1,
"bbox": {
"min": [
0,
0,
0
],
"max": [
60,
20,
5
]
}
}
@@ -0,0 +1,44 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"length": 60,
"width": 20,
"height": 5,
"body_name": "Plate"
}
},
{
"command": "sketch.create",
"params": {
"plane": "XY",
"offset": 5,
"name": "Label"
}
},
{
"command": "sketch.text",
"params": {
"text": "SOLID 391",
"at": [
3,
5
],
"height": 8
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"sketch": "Label",
"distance": -1,
"operation": "cut"
}
}
]
}
@@ -0,0 +1,10 @@
{
"sources": [
"tangency-labs/solidcraft#1279"
],
"what": "a corner piece (square column minus a quarter disc r1.5, 0.0003 off the axis) cut out of a part with a blind r1.6 hole on the same axis: the tool's r1.5 face sits 0.1 mm inside the hole wall; 'no result'",
"source": "analytic",
"method": "part 12x12x5.1 = 734.4 minus the hole pi*1.6^2*4.1 = 32.97 (hole z -4..0.1, part top z 0.1). The tool (z -3.9..3.2, the square 1.5x1.5 where r >= 1.5) overlaps solid only where r >= 1.6: area A1 = integral_0^1.5 (1.5 - min(1.5, sqrt(2.56-x^2))) dx = 0.31409, over the 4.0 mm of shared z: 1.25638 mm3 (the 0.0003 offset moves this by about 3e-3). V = 734.4 - 32.9662 - 1.2564 = 700.1695. Reduced from the report's STEP geometry (no pocket or rotation); the answer is for this geometry",
"body_count": 1,
"volume_mm3": 700.1694662079215
}
@@ -0,0 +1,72 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"corner": [
-6,
-6,
-5
],
"length": 12,
"width": 12,
"height": 5.1,
"body_name": "Part"
}
},
{
"command": "solid.cylinder",
"params": {
"base": [
0,
0,
-4
],
"radius": 1.6,
"height": 4.1,
"operation": "cut"
}
},
{
"command": "solid.box",
"params": {
"corner": [
0,
0,
-3.9
],
"length": 1.5,
"width": 1.5,
"height": 7.1,
"operation": "new",
"body_name": "Tool"
}
},
{
"command": "solid.cylinder",
"params": {
"base": [
0.0003,
0,
-4
],
"radius": 1.5,
"height": 7.5,
"operation": "cut",
"targets": [
"Tool"
]
}
},
{
"command": "solid.combine",
"params": {
"target": "Part",
"tools": [
"Tool"
],
"operation": "cut"
}
}
]
}
@@ -0,0 +1,10 @@
{
"sources": [
"tangency-labs/solidcraft#13"
],
"what": "split a body by a plane (the split-by-a-face path tripped a debug assertion, 'Two same vertices cannot construct an edge')",
"source": "analytic",
"method": "20 cube split by z=10 into two 20x20x10 blocks: total V = 8000, two bodies",
"body_count": 2,
"volume_mm3": 8000.0
}
@@ -0,0 +1,31 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"length": 20,
"width": 20,
"height": 20,
"body_name": "Block"
}
},
{
"command": "solid.split_body",
"params": {
"body": "Block",
"plane": {
"origin": [
0,
0,
10
],
"normal": [
0,
0,
1
]
}
}
}
]
}
@@ -0,0 +1,11 @@
{
"sources": [
"tangency-labs/solidcraft#1355",
"tangency-labs/solidcraft#1736"
],
"what": "a drilled O8.5 recess (118 deg drill point) in a plate, then a O4 hole through its centre: the second cut 'does not work'",
"source": "analytic",
"method": "plate 30x30x10 = 9000. Hole 1: cylinder O8.5 depth 5 plus the drill point cone (height r/tan(59deg) = 2.55366): V1 = pi r^2 (5 + H/3) = 332.0275. Hole 2: O4 through all, V2 = 40 pi = 125.664. Their overlap = the O4 cylinder over the 5 mm of the recess plus, below it, the part of the cone inside r=2: cone of height 2/(r/H) = 1.20180 (volume pi*4*1.2018/3) and the O4 cylinder over the rest of the cone height: total 84.8545. Removed = V1 + V2 - overlap = 372.8367; V = 9000 - 372.8367 = 8627.1633",
"body_count": 1,
"volume_mm3": 8627.163303492243
}
@@ -0,0 +1,56 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"center": [
0,
0,
5
],
"length": 30,
"width": 30,
"height": 10,
"body_name": "Plate"
}
},
{
"command": "sketch.create",
"params": {
"plane": "XY",
"offset": 10,
"name": "Pt"
}
},
{
"command": "sketch.point",
"params": {
"point": [
0,
0
]
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.hole",
"params": {
"sketch": "Pt",
"type": "drilled",
"diameter": 8.5,
"depth": 5,
"tip_angle": "118 deg"
}
},
{
"command": "solid.hole",
"params": {
"sketch": "Pt",
"diameter": 4
}
}
]
}
@@ -0,0 +1,10 @@
{
"sources": [
"tangency-labs/solidcraft#1647"
],
"what": "a box and a cylinder in general position (nothing coincident or tangent): Intersect refused as an implausible volume",
"source": "analytic",
"method": "axis along z, so V = (area of the box's xy rectangle inside the cylinder's disc) * (z overlap). Rectangle x 11.4838..16.2729, y 4.8016..7.8016; disc centre (29.2481, 8.3683) r 13.5029; area = integral over x of the y-length inside both (clipped chord) = 1.019217 mm2 (integrated with 4e6 midpoint steps and cross-checked with Simpson). z overlap: max(3.6313, 6.9479)=6.9479 .. min(14.0507, 26.667)=14.0507 -> 7.102761. V = 1.019217 * 7.102761 = 7.2393",
"body_count": 1,
"volume_mm3": 7.2392536
}
@@ -0,0 +1,43 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"corner": [
11.483767761089219,
4.801612107504224,
3.6313476467611787
],
"length": 4.789088988834864,
"width": 3.0,
"height": 10.419335961063835,
"body_name": "Box"
}
},
{
"command": "solid.cylinder",
"params": {
"base": [
29.2480632732879,
8.3683289461485,
6.947922225984966
],
"axis": "Z",
"radius": 13.502884497756853,
"height": 19.719218725477496,
"operation": "new",
"body_name": "Cyl"
}
},
{
"command": "solid.combine",
"params": {
"target": "Box",
"tools": [
"Cyl"
],
"operation": "intersect"
}
}
]
}
@@ -0,0 +1,10 @@
{
"sources": [
"tangency-labs/solidcraft#1649"
],
"what": "union of two crossing cylinders, both moved (1000,-700,300) mm: volume lost with position",
"source": "analytic",
"method": "A: axis x, r5, x 17.5..27.5 about (y,z)=(30,7.5); B: axis y, r12.5, y 30..35 about (x,z)=(17.5,15). V = Va + Vb - Vint, Va=pi*25*10=785.398, Vb=pi*156.25*5=2454.369. Vint = integral over z in [2.5,12.5] of L(z)*min(10,w(z)) dz with L=sqrt(25-(z-7.5)^2) (A's y half-chord, B only has y>=30) and w=sqrt(156.25-(z-15)^2) (B's x reach from x=17.5, A spans 10) = 346.31 (substitution z=7.5+5 sin t, Simpson; cross-checked by a 400^3 midpoint grid: 346.36). V = 3239.767 - 346.31 = 2893.46. The translation does not change it",
"body_count": 1,
"volume_mm3": 2893.458
}
@@ -0,0 +1,43 @@
{
"commands": [
{
"command": "solid.cylinder",
"params": {
"base": [
1017.5,
-670,
307.5
],
"axis": "X",
"radius": 5,
"height": 10,
"body_name": "A"
}
},
{
"command": "solid.cylinder",
"params": {
"base": [
1017.5,
-670,
315
],
"axis": "Y",
"radius": 12.5,
"height": 5,
"operation": "new",
"body_name": "B"
}
},
{
"command": "solid.combine",
"params": {
"target": "A",
"tools": [
"B"
],
"operation": "join"
}
}
]
}
@@ -0,0 +1,10 @@
{
"sources": [
"tangency-labs/solidcraft#168"
],
"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",
"method": "coin r10 h5: 500 pi; rim = ring r10..14 standing on z=5 for 3: pi*(196-100)*3 = 288 pi. They share only the circle r10 at z=5, so the result is two bodies (or a refusal, never one joined body); volume 788 pi = 2475.664. body_count 2",
"body_count": 2,
"volume_mm3": 2475.5750110287568
}
@@ -0,0 +1,60 @@
{
"commands": [
{
"command": "solid.cylinder",
"params": {
"radius": 10,
"height": 5,
"body_name": "Coin"
}
},
{
"command": "sketch.create",
"params": {
"plane": "XY",
"offset": 5,
"name": "Rim"
}
},
{
"command": "sketch.circle.center",
"params": {
"center": [
0,
0
],
"radius": 14
}
},
{
"command": "sketch.circle.center",
"params": {
"center": [
0,
0
],
"radius": 10
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"sketch": "Rim",
"profiles": [
{
"point": [
12,
0
]
}
],
"distance": 3,
"operation": "join"
}
}
]
}
@@ -0,0 +1,11 @@
{
"sources": [
"tangency-labs/solidcraft#1717",
"tangency-labs/solidcraft#2158"
],
"what": "a second sphere cut overlapping an earlier sphere cut on a box edge: 'no result'",
"source": "analytic",
"method": "box 30x20x5 (V=3000). Each sphere r=10 centred on the back-bottom edge removes the quarter of the ball between z=-5..5: pi(r^2 h - h^3/3)/2 with h=5 -> 1375*pi/6 = 719.95. The two balls' common lens (centres 5 apart) over the slab, halved by the y<=20 half-space: 1/2 * integral_0^5 [2 rho^2 acos(d/2rho) - (d/2) sqrt(4 rho^2 - d^2)] dz with rho^2=100-z^2, d=5 -> 483.551. Removed = 2*719.95 - 483.551 = 956.345; V = 3000 - 956.345 = 2043.655",
"body_count": 1,
"volume_mm3": 2043.6548
}
@@ -0,0 +1,36 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"length": 30,
"width": 20,
"height": 5
}
},
{
"command": "solid.sphere",
"params": {
"center": [
12,
20,
0
],
"operation": "cut",
"radius": 10
}
},
{
"command": "solid.sphere",
"params": {
"center": [
17,
20,
0
],
"operation": "cut",
"radius": 10
}
}
]
}
@@ -0,0 +1,10 @@
{
"sources": [
"tangency-labs/solidcraft#1730"
],
"what": "an extrude cut whose profile stops 0.25 mm short of a wall's far face must leave that skin (it was grown through)",
"source": "analytic",
"method": "wall 200 x 3.75 x 95 = 71250. The profile (x -24..24, y -0.5..3.5) extruded 91 from z=-1 covers z 0..90 of the wall and y 0..3.5 of its 3.75: removes 48*3.5*90 = 15120. V = 56130",
"body_count": 1,
"volume_mm3": 56130.0
}
@@ -0,0 +1,52 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"corner": [
-100,
0,
0
],
"length": 200,
"width": 3.75,
"height": 95,
"body_name": "Wall"
}
},
{
"command": "sketch.create",
"params": {
"plane": "XY",
"offset": -1
}
},
{
"command": "sketch.rectangle.two_point",
"params": {
"p0": [
-24,
-0.5
],
"p1": [
24,
3.5
]
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"distance": 91,
"operation": "cut",
"targets": [
"Wall"
]
}
}
]
}
@@ -0,0 +1,11 @@
{
"sources": [
"tangency-labs/solidcraft#1765",
"tangency-labs/solidcraft#1858"
],
"what": "two 1.5 mm circular cuts overlapping an earlier 0.75 mm pocket (timeline roll-back, insert, redefine): the cut came out empty",
"source": "analytic",
"method": "plate 40x30x10 = 12000 minus the 2 mm round on its top-front edge (1-pi/4)*4*40 = 34.336, minus the 30x10x0.75 pocket (225), minus per circle (r5, centred y=15, so its upper half lies under the pocket): upper half 0.5*25pi*(1.5-0.75) + lower half 0.5*25pi*1.5 = 29.45 + 58.90 = 88.36 each (circles are 16 apart, so they do not meet). V = 12000 - 34.336 - 225 - 176.71 = 11563.95",
"body_count": 1,
"volume_mm3": 11563.949119379165
}
@@ -0,0 +1,131 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"length": 40,
"width": 30,
"height": 10,
"body_name": "Plate",
"name": "Plate"
}
},
{
"command": "solid.fillet",
"params": {
"edges": [
[
20,
0,
10
]
],
"radius": 2,
"name": "Rim"
}
},
{
"command": "sketch.create",
"params": {
"plane": "XY",
"offset": 10,
"name": "Circles"
}
},
{
"command": "sketch.circle.center",
"params": {
"center": [
12,
15
],
"radius": 5
}
},
{
"command": "sketch.circle.center",
"params": {
"center": [
28,
15
],
"radius": 5
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"sketch": "Circles",
"distance": -1.5,
"operation": "cut",
"name": "ShallowCuts"
}
},
{
"command": "timeline.rollback",
"params": {
"position": 2
}
},
{
"command": "sketch.create",
"params": {
"plane": "XY",
"offset": 10,
"name": "PocketOutline"
}
},
{
"command": "sketch.rectangle.two_point",
"params": {
"p0": [
5,
15
],
"p1": [
35,
25
]
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"sketch": "PocketOutline",
"distance": -0.75,
"operation": "cut",
"name": "EarlierPocket"
}
},
{
"command": "timeline.rollback",
"params": {}
},
{
"command": "timeline.redefine",
"params": {
"feature": "ShallowCuts",
"command": "solid.extrude",
"params": {
"sketch": "Circles",
"profiles": [
0,
1
],
"distance": "-1.5",
"direction": "positive",
"convention": "total_distance",
"operation": "cut"
}
}
}
]
}
@@ -0,0 +1,14 @@
{
"sources": [
"tangency-labs/solidcraft#1865",
"tangency-labs/solidcraft#1910",
"tangency-labs/solidcraft#1983",
"tangency-labs/solidcraft#2034"
],
"what": "a union of two solids that meet along cylindrical faces: a tube (r10..12, z 0..20) and a 90 deg ring sector (same radii, z 10..30) whose curved faces are the tube's own, overlapping it axially; refused ('planar faces only') or, by the faceted fallback, left 1710 faceted faces",
"source": "analytic",
"method": "tube pi(144-100)*20 = 880 pi; sector pi(144-100)/4*20 = 220 pi, of which z 10..20 (110 pi) lies in the tube. V = 880 pi + 110 pi = 990 pi = 3110.18. Faces by merged count: bottom annulus, 3/4 top annulus at z=20, sector top at z=30, two radial planes (x=0, y=0, z 20..30), one outer and one inner cylinder = 7; never a faceted body",
"body_count": 1,
"volume_mm3": 3110.1767270538953,
"faces": 7
}
@@ -0,0 +1,85 @@
{
"commands": [
{
"command": "solid.cylinder",
"params": {
"radius": 12,
"height": 20,
"body_name": "Tube"
}
},
{
"command": "solid.cylinder",
"params": {
"base": [
0,
0,
-1
],
"radius": 10,
"height": 22,
"operation": "cut",
"targets": [
"Tube"
]
}
},
{
"command": "solid.cylinder",
"params": {
"base": [
0,
0,
10
],
"radius": 12,
"height": 20,
"operation": "new",
"body_name": "Sector"
}
},
{
"command": "solid.cylinder",
"params": {
"base": [
0,
0,
9
],
"radius": 10,
"height": 22,
"operation": "cut",
"targets": [
"Sector"
]
}
},
{
"command": "solid.box",
"params": {
"corner": [
0,
0,
9
],
"length": 20,
"width": 20,
"height": 22,
"operation": "intersect",
"targets": [
"Sector"
]
}
},
{
"command": "solid.combine",
"params": {
"target": "Tube",
"tools": [
"Sector"
],
"operation": "join"
}
}
]
}
@@ -0,0 +1,12 @@
{
"sources": [
"tangency-labs/solidcraft#1910",
"tangency-labs/solidcraft#1865"
],
"what": "intersection of two cylinders of one radius on one axis (z 0..30 and 22..46) whose round sides lie in each other over the shared 8 mm",
"source": "analytic",
"method": "common part is the cylinder r25.6 over z 22..30: V = pi*25.6^2*8 = 5242.88 pi = 16471.0; faces 3",
"body_count": 1,
"volume_mm3": 16470.993291652856,
"faces": 3
}
@@ -0,0 +1,36 @@
{
"commands": [
{
"command": "solid.cylinder",
"params": {
"radius": 25.6,
"height": 30,
"body_name": "A"
}
},
{
"command": "solid.cylinder",
"params": {
"base": [
0,
0,
22
],
"radius": 25.6,
"height": 24,
"operation": "new",
"body_name": "B"
}
},
{
"command": "solid.combine",
"params": {
"target": "A",
"tools": [
"B"
],
"operation": "intersect"
}
}
]
}
@@ -0,0 +1,11 @@
{
"sources": [
"tangency-labs/solidcraft#1927"
],
"what": "Delete Face on the 0.5 mm deep O15 recess of a plate: the face around the gap must keep its surface",
"source": "analytic",
"method": "100x100x10 plate with a O15x0.5 recess; deleting the recess floor (and, with heal, its wall) restores the plain plate: V = 100000, six faces",
"body_count": 1,
"volume_mm3": 100000.0,
"faces": 6
}
@@ -0,0 +1,60 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"length": 100,
"width": 100,
"height": 10,
"body_name": "Plate"
}
},
{
"command": "sketch.create",
"params": {
"plane": "XY",
"name": "Pocket",
"offset": 10
}
},
{
"command": "sketch.circle.center",
"params": {
"center": [
50,
50
],
"radius": 7.5
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"sketch": "Pocket",
"distance": -0.5,
"operation": "cut"
}
},
{
"command": "face.delete",
"params": {
"faces": [
[
50,
50,
9.5
],
[
57.5,
50,
9.75
]
]
}
}
]
}
@@ -0,0 +1,13 @@
{
"sources": [
"tangency-labs/solidcraft#1949"
],
"what": "a profile side drawn as two collinear lines extrudes into one flat face, not two with an edge between them",
"source": "analytic",
"method": "polyline 0,0 -> 10,0 -> 20,0 -> 20,10 -> 0,10 -> 0,0 is the rectangle 20x10 with a point on the bottom side; extruded 5: V = 1000; merged faces = 6 (the collinear pieces are one side), edges 12, vertices 8",
"body_count": 1,
"volume_mm3": 1000.0,
"faces": 6,
"edges": 12,
"vertices": 8
}
@@ -0,0 +1,51 @@
{
"commands": [
{
"command": "sketch.create",
"params": {
"plane": "XY"
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
0,
0
],
[
10,
0
],
[
20,
0
],
[
20,
10
],
[
0,
10
],
[
0,
0
]
]
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"distance": 5
}
}
]
}
@@ -0,0 +1,11 @@
{
"sources": [
"tangency-labs/solidcraft#1949"
],
"what": "with a taper too, a side drawn in two collinear pieces is one face",
"source": "analytic",
"method": "rectangle 20x10 (with a point on a long side) extruded 5 with +5 deg taper (grows outward): frustum of rectangles; offset t=5*tan(5deg): top (20+2t)x(10+2t). V = h/3 (A0 + A1 + sqrt(A0 A1)); faces 6",
"body_count": 1,
"volume_mm3": 1066.8173784443,
"faces": 6
}
@@ -0,0 +1,52 @@
{
"commands": [
{
"command": "sketch.create",
"params": {
"plane": "XY"
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
0,
0
],
[
10,
0
],
[
20,
0
],
[
20,
10
],
[
0,
10
],
[
0,
0
]
]
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"distance": 5,
"taper": "5 deg"
}
}
]
}
@@ -0,0 +1,10 @@
{
"sources": [
"tangency-labs/solidcraft#2003"
],
"what": "mirror a feature with Join: the image meets its original along the mirror plane and the join was refused for its volume",
"source": "analytic",
"method": "base 20x20x10 = 4000; pad 10x10x5 on top at x 0..10 flush with the mirror plane x=0; its image (x -10..0) shares the x=0 face with it. Union pad+image = 20x10x5 = 1000; V = 5000",
"body_count": 1,
"volume_mm3": 5000.0
}
@@ -0,0 +1,39 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"length": 20,
"width": 20,
"height": 10,
"body_name": "Base",
"name": "Base"
}
},
{
"command": "solid.box",
"params": {
"corner": [
0,
5,
10
],
"length": 10,
"width": 10,
"height": 5,
"operation": "join",
"name": "Pad"
}
},
{
"command": "solid.mirror",
"params": {
"features": [
"Pad"
],
"plane": "YZ",
"combine": true
}
}
]
}
@@ -0,0 +1,12 @@
{
"sources": [
"tangency-labs/solidcraft#2008",
"tangency-labs/solidcraft#1986"
],
"what": "a join of coaxial cylinders of one radius whose walls overlap leaves one cylindrical wall in one face (it came out as a stack of faces, so a later chamfer on its top edge refused)",
"source": "analytic",
"method": "cylinder r25.6 over z 0..46: V = pi*655.36*46 = 30146.56 pi = 94711; faces 3 (two caps, one wall)",
"body_count": 1,
"volume_mm3": 94708.21142700392,
"faces": 3
}
@@ -0,0 +1,36 @@
{
"commands": [
{
"command": "solid.cylinder",
"params": {
"radius": 25.6,
"height": 30,
"body_name": "A"
}
},
{
"command": "solid.cylinder",
"params": {
"base": [
0,
0,
22
],
"radius": 25.6,
"height": 24,
"operation": "new",
"body_name": "B"
}
},
{
"command": "solid.combine",
"params": {
"target": "A",
"tools": [
"B"
],
"operation": "join"
}
}
]
}
@@ -0,0 +1,10 @@
{
"sources": [
"tangency-labs/solidcraft#2055"
],
"what": "a countersunk hole at two sketch points at once, in a design with several bodies: 'there is no body to cut or intersect' (one point works)",
"source": "analytic",
"method": "plate 40x20x10 = 8000 and a separate 10x10x10 block (1000). Each hole: O5 cylinder through 10 mm (62.5 pi) plus the 90 deg countersink to O10 (depth 2.5, frustum pi*2.5/3*(25+12.5+6.25) = 36.458 pi, of which 15.625 pi lies in the cylinder): 83.333 pi. Two holes: 166.667 pi = 523.60; total V = 9000 - 523.60 = 8476.40. Two bodies",
"body_count": 2,
"volume_mm3": 8476.401224401701
}
@@ -0,0 +1,73 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"center": [
0,
0,
5
],
"length": 40,
"width": 20,
"height": 10,
"body_name": "Plate"
}
},
{
"command": "solid.box",
"params": {
"center": [
100,
0,
5
],
"length": 10,
"width": 10,
"height": 10,
"operation": "new",
"body_name": "Other"
}
},
{
"command": "sketch.create",
"params": {
"plane": "XY",
"offset": 10,
"name": "Pts"
}
},
{
"command": "sketch.point",
"params": {
"point": [
-10,
0
]
}
},
{
"command": "sketch.point",
"params": {
"point": [
10,
0
]
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.hole",
"params": {
"sketch": "Pts",
"type": "countersink",
"diameter": 5,
"cs_diameter": 10,
"cs_angle": "90 deg"
}
}
]
}
@@ -0,0 +1,10 @@
{
"sources": [
"tangency-labs/solidcraft#2076"
],
"what": "a rectangular pattern of a cylinder join (pin-fin plate) scales quadratically in time",
"source": "analytic",
"method": "plate 52x52x3 = 8112 plus 25 pins O1.4x3.5 standing on it, 2.6 apart (none touch): 8112 + 25*pi*0.49*3.5 = 8246.696. Result must also come in a reasonable time (the case has the runner's time limit)",
"body_count": 1,
"volume_mm3": 8246.695785022663
}
@@ -0,0 +1,56 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"center": [
0,
0,
1.5
],
"length": 52,
"width": 52,
"height": 3,
"body_name": "Plate",
"name": "Plate"
}
},
{
"command": "solid.cylinder",
"params": {
"base": [
-5.2,
-5.2,
3
],
"radius": 0.7,
"height": 3.5,
"operation": "join",
"name": "Pin"
}
},
{
"command": "solid.pattern.rectangular",
"params": {
"features": [
"Pin"
],
"dir1": [
1,
0,
0
],
"count1": 5,
"spacing1": 2.6,
"dir2": [
0,
1,
0
],
"count2": 5,
"spacing2": 2.6,
"name": "Pins"
}
}
]
}
@@ -0,0 +1,11 @@
{
"sources": [
"tangency-labs/solidcraft#2464",
"tangency-labs/solidcraft#2465"
],
"what": "an Extrude Join onto a plate with a hidden coincident copy: the hidden body must not be joined in",
"source": "analytic",
"method": "two 40x40x5 plates (8000 each), the copy hidden. The 2 mm wide ring rim (36x36 minus 32x32 = 272 mm2) extruded 3 joins the visible plate only: 8000 + 816 + 8000 = 16816. Two bodies remain",
"body_count": 2,
"volume_mm3": 16816.0
}
@@ -0,0 +1,85 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"length": 40,
"width": 40,
"height": 5,
"body_name": "Plate"
}
},
{
"command": "solid.move",
"params": {
"bodies": [
"Plate"
],
"copy": true
}
},
{
"command": "browser.visibility",
"params": {
"items": [
"Plate (2)"
],
"visible": false
}
},
{
"command": "sketch.create",
"params": {
"plane": "XY",
"offset": 5,
"name": "Rim"
}
},
{
"command": "sketch.rectangle.two_point",
"params": {
"p0": [
2,
2
],
"p1": [
38,
38
]
}
},
{
"command": "sketch.rectangle.two_point",
"params": {
"p0": [
4,
4
],
"p1": [
36,
36
]
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"sketch": "Rim",
"profiles": [
{
"point": [
3,
3
]
}
],
"distance": 3,
"operation": "join"
}
}
]
}
@@ -0,0 +1,10 @@
{
"sources": [
"tangency-labs/solidcraft#2524"
],
"what": "a circular pattern (count 2, 360 deg, about Y) of a cut made off-axis: 'boolean Cut: no result'",
"source": "analytic",
"method": "block 40x20x40 = 32000 centred on the Y axis; a through bore r3 along Y at x=10 and its half-turn copy at x=-10 (they do not meet): V = 32000 - 2*pi*9*20 = 32000 - 360 pi",
"body_count": 1,
"volume_mm3": 30869.026644707676
}
@@ -0,0 +1,44 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"center": [
0,
10,
0
],
"length": 40,
"width": 20,
"height": 40,
"body_name": "Block"
}
},
{
"command": "solid.cylinder",
"params": {
"base": [
10,
-1,
0
],
"axis": "Y",
"radius": 3,
"height": 22,
"operation": "cut",
"name": "Bore"
}
},
{
"command": "solid.pattern.circular",
"params": {
"features": [
"Bore"
],
"axis": "Y",
"count": 2,
"angle": "360 deg"
}
}
]
}
@@ -0,0 +1,11 @@
{
"sources": [
"tangency-labs/solidcraft#307"
],
"what": "four pairs of through holes whose circles touch at exactly one point (ring holes at (+-25,0),(0,+-25) against grid holes at (+-15,0),(0,+-15)); the symmetric contacts must be treated alike and split no cylinder face",
"source": "analytic",
"method": "plate 100x100x5 minus eight O10 through holes (centres 10 apart = 2r in the four pairs, so they only touch along a line): V = 50000 - 8*pi*25*5 = 50000 - 1000 pi = 46858.41. Faces by merged count: 6 planes + 8 cylinders = 14, a tangent line contact splits nothing. NOT SURE: the touching holes leave the plate pinched along four vertical lines, so a strict manifold check may reject the right answer",
"body_count": 1,
"volume_mm3": 46858.407346410204,
"faces": 14
}
@@ -0,0 +1,122 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"corner": [
-50,
-50,
0
],
"length": 100,
"width": 100,
"height": 5,
"body_name": "Plate"
}
},
{
"command": "solid.cylinder",
"params": {
"base": [
25,
0,
-1
],
"radius": 5,
"height": 7,
"operation": "cut"
}
},
{
"command": "solid.cylinder",
"params": {
"base": [
-25,
0,
-1
],
"radius": 5,
"height": 7,
"operation": "cut"
}
},
{
"command": "solid.cylinder",
"params": {
"base": [
0,
25,
-1
],
"radius": 5,
"height": 7,
"operation": "cut"
}
},
{
"command": "solid.cylinder",
"params": {
"base": [
0,
-25,
-1
],
"radius": 5,
"height": 7,
"operation": "cut"
}
},
{
"command": "solid.cylinder",
"params": {
"base": [
15,
0,
-1
],
"radius": 5,
"height": 7,
"operation": "cut"
}
},
{
"command": "solid.cylinder",
"params": {
"base": [
-15,
0,
-1
],
"radius": 5,
"height": 7,
"operation": "cut"
}
},
{
"command": "solid.cylinder",
"params": {
"base": [
0,
15,
-1
],
"radius": 5,
"height": 7,
"operation": "cut"
}
},
{
"command": "solid.cylinder",
"params": {
"base": [
0,
-15,
-1
],
"radius": 5,
"height": 7,
"operation": "cut"
}
}
]
}
@@ -0,0 +1,10 @@
{
"sources": [
"tangency-labs/solidcraft#308"
],
"what": "a hinge leaf (40x30x3) with a joined r4 knuckle cylinder along X and a O4 pin hole, then a 3.3 mm blind cut of x 12..28, y 29..40 ending inside the cylinder: the result grew a sphere and a freeform face",
"source": "analytic",
"method": "all walls are planes or cylinders along X, so V = 40*A - 16*B with A = area of the section (leaf y 0..30,z 0..3 union disc centre (y=33,z=4) r4, minus the pin disc r2) = 126.8438 mm2 (integrated over y, exact chords), B = the part of A with y>=29, z<=3.3 = 18.1650 mm2 (the gap, 16 long). V = 5073.752 - 290.640 = 4783.112. No sphere or freeform face can occur: only planes and cylinders",
"body_count": 1,
"volume_mm3": 4783.1123
}
@@ -0,0 +1,145 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"length": 40,
"width": 30,
"height": 3,
"body_name": "Hinge"
}
},
{
"command": "sketch.create",
"params": {
"name": "Knuckle",
"plane": {
"origin": [
0,
0,
0
],
"x_dir": [
0,
0,
-1
],
"y_dir": [
0,
1,
0
]
}
}
},
{
"command": "sketch.circle.center",
"params": {
"center": [
-4,
33
],
"radius": 4
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"sketch": "Knuckle",
"distance": 40,
"operation": "join",
"body_names": [
"Hinge"
]
}
},
{
"command": "sketch.create",
"params": {
"name": "Pin",
"plane": {
"origin": [
0,
0,
0
],
"x_dir": [
0,
0,
-1
],
"y_dir": [
0,
1,
0
]
}
}
},
{
"command": "sketch.circle.center",
"params": {
"center": [
-4,
33
],
"radius": 2
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"sketch": "Pin",
"distance": 100,
"direction": "symmetric",
"operation": "cut",
"body_names": [
"Hinge"
]
}
},
{
"command": "sketch.create",
"params": {
"name": "Gap",
"plane": "XY"
}
},
{
"command": "sketch.rectangle.two_point",
"params": {
"p0": [
12,
29
],
"p1": [
28,
40
]
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"sketch": "Gap",
"distance": 3.3,
"operation": "cut",
"body_names": [
"Hinge"
]
}
}
]
}
@@ -0,0 +1,22 @@
{
"sources": [
"tangency-labs/solidcraft#423"
],
"what": "a one-sided Through All cut from a sketch plane at x=98 toward -x, with its wall 0.0022 mm from a face of a notch beyond the plane: the cut must remove nothing at x > 98",
"source": "analytic",
"method": "frame 100x14.5x10 = 14500 with a 1.5x2x10 end notch (x 98.5..100, y 0..2) = 30 removed. The cut tool is y -0.0022..3 for the full height, from x=98 to x=0: 98*3.0022*10 = 2942.156. It never reaches x>98, so the notch is untouched: V = 14500 - 30 - 2942.156 = 11527.844. Reduced from a STEP frame (not committed)",
"body_count": 1,
"volume_mm3": 11527.844000000001,
"bbox": {
"min": [
0,
-7.25,
0
],
"max": [
100,
7.25,
10
]
}
}
@@ -0,0 +1,69 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"corner": [
0,
-7.25,
0
],
"length": 100,
"width": 14.5,
"height": 10,
"body_name": "Frame"
}
},
{
"command": "solid.box",
"params": {
"corner": [
98.5,
0,
-1
],
"length": 2,
"width": 2,
"height": 12,
"operation": "cut"
}
},
{
"command": "sketch.create",
"params": {
"plane": "YZ",
"offset": 98,
"name": "Cutter"
}
},
{
"command": "sketch.rectangle.two_point",
"params": {
"p0": [
-0.0022,
-1
],
"p1": [
3,
11
]
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"sketch": "Cutter",
"through_all": true,
"direction": "negative",
"operation": "cut",
"targets": [
"Frame"
]
}
}
]
}
@@ -0,0 +1,11 @@
{
"sources": [
"tangency-labs/solidcraft#500"
],
"what": "a radius 20 cylinder cut out of a coaxial radius 40 disc spanning x -1..1 lost about 2.6% of the volume",
"source": "analytic",
"method": "disc r40 thickness 2 minus the through bore r20: V = pi (40^2 - 20^2) * 2 = 2400 pi = 7539.822; faces: two annular ends, outer and inner cylinder = 4",
"body_count": 1,
"volume_mm3": 7539.822368615503,
"faces": 4
}
@@ -0,0 +1,32 @@
{
"commands": [
{
"command": "solid.cylinder",
"params": {
"base": [
-1,
0,
0
],
"axis": "X",
"radius": 40,
"height": 2,
"body_name": "Disc"
}
},
{
"command": "solid.cylinder",
"params": {
"base": [
-3,
0,
0
],
"axis": "X",
"radius": 20,
"height": 6,
"operation": "cut"
}
}
]
}
@@ -0,0 +1,10 @@
{
"sources": [
"tangency-labs/solidcraft#559"
],
"what": "a 1 mm through-all hole straight down into the 2 mm rim of a shelled box: 'implausible volume' / no result",
"source": "analytic",
"method": "box 70x50x30 shelled 2 mm inward, top open: 105000 - 66*46*28 = 19992. The hole (r 0.5) at y=24 lies inside the wall y 23..25 and runs all 30 mm (wall, then floor): pi*0.25*30 = 23.562. V = 19992 - 23.562 = 19968.438",
"body_count": 1,
"volume_mm3": 19968.438055098075
}
@@ -0,0 +1,41 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"corner": [
-35,
-25,
0
],
"length": 70,
"width": 50,
"height": 30
}
},
{
"command": "solid.shell",
"params": {
"faces": [
[
0,
0,
30
]
],
"thickness": 2
}
},
{
"command": "solid.hole",
"params": {
"position": [
0,
24,
30
],
"diameter": 1
}
}
]
}
@@ -0,0 +1,10 @@
{
"sources": [
"tangency-labs/solidcraft#562"
],
"what": "Press Pull of a floor whose neighbours are rounds (vertical corner fillets): 'a neighbouring edge is not straight'",
"source": "analytic",
"method": "60x40x10 box with four vertical edges rounded r3: floor area 2400 - 4*(1-pi/4)*9 = 2400 - 9*(4-pi) = 2392.274. Pulling the floor 1 mm outward adds a prism of the floor's outline: V = 2392.274 * 11 = 26315.018",
"body_count": 1,
"volume_mm3": 26315.017672705388
}
@@ -0,0 +1,52 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"length": 60,
"width": 40,
"height": 10,
"body_name": "Case"
}
},
{
"command": "solid.fillet",
"params": {
"edges": [
[
0,
0,
5
],
[
60,
0,
5
],
[
60,
40,
5
],
[
0,
40,
5
]
],
"radius": 3
}
},
{
"command": "solid.press_pull",
"params": {
"face": [
30,
20,
0
],
"distance": 1
}
}
]
}
@@ -0,0 +1,10 @@
{
"sources": [
"tangency-labs/solidcraft#831"
],
"what": "tapered extrude of a D shape (an arc meeting a line at a sharp corner): refused as 'tapered profiles where an arc meets another edge at a corner'",
"source": "analytic",
"method": "half disc r5 (x>=0) with a -10 deg taper (shrinks inward), 2 mm: the section at height z is the eroded D = disc r=5-d cut at x>=d, d=z tan10deg (erosion of a convex intersection is the intersection of the erosions). Area(d) = rho^2 acos(d/rho) - d sqrt(rho^2-d^2), rho=5-d; V = integral_0^2 Area(z tan10) dz = 69.7714 (Simpson; Area(0) = 12.5 pi = 39.27 at the base)",
"body_count": 1,
"volume_mm3": 69.77140599276278
}
@@ -0,0 +1,55 @@
{
"commands": [
{
"command": "sketch.create",
"params": {
"plane": "XY",
"name": "D"
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
0,
-5
],
[
0,
5
]
]
}
},
{
"command": "sketch.arc.three_point",
"params": {
"start": [
0,
5
],
"end": [
0,
-5
],
"through": [
5,
0
]
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"sketch": "D",
"distance": "2 mm",
"taper": "-10 deg"
}
}
]
}
@@ -0,0 +1,9 @@
{
"sources": [
"tangency-labs/solidcraft#831"
],
"what": "tapered extrude of a text glyph (Bezier outline): refused with a misleading 'mixing lines and arcs' error",
"source": "invariants",
"method": "the letter S, 1 mm tall with -10 deg draft, is one valid closed solid (the glyph is one connected region); no number is derived because the glyph outline is the font's. Its volume is positive and below the plain extrusion's",
"body_count": 1
}
@@ -0,0 +1,34 @@
{
"commands": [
{
"command": "sketch.create",
"params": {
"plane": "XY",
"name": "T"
}
},
{
"command": "sketch.text",
"params": {
"text": "S",
"at": [
0,
0
],
"height": 10
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"sketch": "T",
"distance": "1 mm",
"taper": "-10 deg"
}
}
]
}
+294
View File
@@ -0,0 +1,294 @@
[
{
"source": "tangency-labs/solidcraft#24",
"why": "not geometry: a diagnostics/warning feature (report which boolean fallback ran and by how much), no wrong result"
},
{
"source": "tangency-labs/solidcraft#141",
"why": "needs the basin design (a floor of four 0.5 degree facets around a drain with a boss ring, from #119/#126); not attached, no recipe in the issue"
},
{
"source": "tangency-labs/solidcraft#206",
"why": "no design attached (a 146-curved-face target); only the join's params and the failure text"
},
{
"source": "tangency-labs/solidcraft#367",
"why": "needs the example plastic enclosure (not attached); only the drilled-hole params and the failure text"
},
{
"source": "tangency-labs/solidcraft#456",
"why": "no design attached (cut with a freeform tool from a sketch 'to' a point); only the params and failure text"
},
{
"source": "tangency-labs/solidcraft#458",
"why": "no design attached: a cut from a sketch that projects the body's top edges; the steps in the report are not enough to rebuild it"
},
{
"source": "tangency-labs/solidcraft#522",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#586",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#608",
"why": "no design attached: a second cut onto a face with an existing cut leaving a tiny edge; only the extrude cut's parameters"
},
{
"source": "tangency-labs/solidcraft#632",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#746",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#823",
"why": "other area: import (an imported STEP body: 'lumps: nested shells do not alternate material and void'); the file is not attached"
},
{
"source": "tangency-labs/solidcraft#858",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#864",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#873",
"why": "the hexagon positions 'next to' the screw are not given, so the touching contact cannot be rebuilt faithfully; the report has only the join's params"
},
{
"source": "tangency-labs/solidcraft#887",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#938",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#953",
"why": "no design attached: a cup with a square on its inside floor; the square's size and position are not given"
},
{
"source": "tangency-labs/solidcraft#967",
"why": "tracking issue for the Hole tool audit; its open refusals (slanted faces, #559) are covered by the case 559-through-hole-into-shelled-box-rim and the hole matrix; the rest is UI"
},
{
"source": "tangency-labs/solidcraft#990",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#999",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#1002",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#1025",
"why": "private design not attached (join of 23 cone/cylinder tools); no recipe"
},
{
"source": "tangency-labs/solidcraft#1125",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#1126",
"why": "no design attached: a Draft of a face with non-perpendicular neighbours about a custom neutral plane; only the Draft parameters"
},
{
"source": "tangency-labs/solidcraft#1133",
"why": "no design attached (a text sketch extruded from another object, tool with 21 freeform faces)"
},
{
"source": "tangency-labs/solidcraft#1137",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#1216",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#1225",
"why": "needs the user's design (extrudecrash.txt attachment): tapered extrude of tangent circles on an existing body; steps not reproducible from the text"
},
{
"source": "tangency-labs/solidcraft#1253",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#1343",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#1409",
"why": "feature request: Emboss on non-planar ('complex') faces; the current refusal is documented, and no geometry or design is given"
},
{
"source": "tangency-labs/solidcraft#1436",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#1440",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#1441",
"why": "no design attached and the report text is empty beyond the feature's parameters"
},
{
"source": "tangency-labs/solidcraft#1451",
"why": "other area: import (a STEP model from a public site, not attached; join of a 1 mm extrusion refused)"
},
{
"source": "tangency-labs/solidcraft#1467",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#1471",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#1511",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#1552",
"why": "feature request: sketch entities as Split Body tools; not a wrong result"
},
{
"source": "tangency-labs/solidcraft#1662",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#1672",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#1760",
"why": "no design attached ('CPR Sensor' split by a construction plane: 'Intersect: no result')"
},
{
"source": "tangency-labs/solidcraft#1807",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#1834",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#1848",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#1882",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#1926",
"why": "no design attached; a freeze in a symmetric cut, only a screenshot"
},
{
"source": "tangency-labs/solidcraft#1944",
"why": "empty report: no parameters, no text"
},
{
"source": "tangency-labs/solidcraft#1946",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#1963",
"why": "empty report: no parameters, no text"
},
{
"source": "tangency-labs/solidcraft#1964",
"why": "screenshot only, no parameters or text; no recipe"
},
{
"source": "tangency-labs/solidcraft#1965",
"why": "not a geometry failure: booleans on mesh bodies are refused by design ('a boolean needs a solid body')"
},
{
"source": "tangency-labs/solidcraft#2048",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#2059",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#2073",
"why": "not boolean geometry: inspect.hole_stacks (an inspection command for aligned holes), no wrong kernel result"
},
{
"source": "tangency-labs/solidcraft#2075",
"why": "not boolean geometry: parts.fasten (assembly fasteners sized to hole stacks)"
},
{
"source": "tangency-labs/solidcraft#2090",
"why": "not boolean geometry: inspect.clearance measuring (a shared volume against the union), a measurement feature"
},
{
"source": "tangency-labs/solidcraft#2156",
"why": "clearance/interference measurement of a pin in its bore (inspect.clearance), not a modelling boolean; the facet crossing tolerance is not a right-answer number a recipe can state"
},
{
"source": "tangency-labs/solidcraft#2205",
"why": "persistent face names (exact history of a prism boolean) only; the solid it gives is already right, so no geometry answer to grade"
},
{
"source": "tangency-labs/solidcraft#2407",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#2418",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#2450",
"why": "other area: tessellation (Section Analysis shows a white line at the part's edge; display only)"
},
{
"source": "tangency-labs/solidcraft#2454",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#2461",
"why": "other area: sheet metal ('this machining intersects a folded bend or a nonparallel panel')"
},
{
"source": "tangency-labs/solidcraft#2466",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#2495",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#2497",
"why": "not boolean geometry: assembly joint relations (parallel, angle, point on plane)"
},
{
"source": "tangency-labs/solidcraft#2503",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#2522",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#2525",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#2527",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
},
{
"source": "tangency-labs/solidcraft#2534",
"why": "no design or file attached: the report carries only the failure text and the feature's parameters, so no synthetic geometry can be rebuilt from it"
}
]