mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-03 18:45:55 +00:00
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:
+11
@@ -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
|
||||
}
|
||||
+42
@@ -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"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+10
@@ -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"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+10
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+14
@@ -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
|
||||
}
|
||||
+85
@@ -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
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+11
@@ -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"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+10
@@ -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
|
||||
}
|
||||
+39
@@ -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"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+10
@@ -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
|
||||
}
|
||||
+73
@@ -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"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+22
@@ -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
|
||||
]
|
||||
}
|
||||
}
|
||||
+69
@@ -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"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user