mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-03 02:25:55 +00:00
kernel-cases: #4432–#4829 triaged: 21 cases, 175 skipped
Cases from the issues filed after #4160, each a synthetic recipe with its own answer (analysis or invariants); every other issue in the range is listed with why it was skipped. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4468"
|
||||
],
|
||||
"what": "a 20x15x5 box minus an r3 through bore: truck's measure read 1.66e-4 of the removed volume too much (1358.6518 for 1358.6283) while the geometry was exact",
|
||||
"source": "analytic",
|
||||
"method": "V = 20*15*5 - pi*3^2*5 = 1358.628331; A = 2*(300 - 9 pi) + 2*(20+15)*5 + 2*pi*3*5 = 993.226. Graded to 1e-6 relative, below the reported error (1.7e-5 of the result)",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 1358.628331,
|
||||
"area_mm2": 987.699112,
|
||||
"tolerance": {
|
||||
"rel": 1e-06
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"corner": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"length": 20,
|
||||
"width": 15,
|
||||
"height": 5,
|
||||
"body_name": "Box"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 3,
|
||||
"height": 7,
|
||||
"base": [
|
||||
10,
|
||||
7.5,
|
||||
-1
|
||||
],
|
||||
"body_name": "Bore"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.combine",
|
||||
"params": {
|
||||
"target": "Box",
|
||||
"tools": [
|
||||
"Bore"
|
||||
],
|
||||
"operation": "cut"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4505",
|
||||
"tangency-labs/solidcraft#3636"
|
||||
],
|
||||
"what": "a coil (diameter 151, pitch 10, 80 high, 5 mm round section) whose section runs through a diameter-152 cylinder's wall, joined to it: truck ground for 125-296 s, then 'boolean Union: no result'",
|
||||
"source": "invariants",
|
||||
"method": "the coil's section crosses the wall along its whole length, so the union is one connected solid: one valid closed body. The helical sweep's part outside r 76 has no closed-form volume (the triage's script)",
|
||||
"body_count": 1
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"diameter": 152,
|
||||
"height": 100,
|
||||
"body_name": "Cyl"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.coil",
|
||||
"params": {
|
||||
"diameter": 151,
|
||||
"pitch": 10,
|
||||
"height": 80,
|
||||
"section_size": 5,
|
||||
"base": [
|
||||
0,
|
||||
0,
|
||||
10
|
||||
],
|
||||
"operation": "new",
|
||||
"body_name": "Coil"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.combine",
|
||||
"params": {
|
||||
"target": "Cyl",
|
||||
"tools": [
|
||||
"Coil"
|
||||
],
|
||||
"operation": "join"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4558"
|
||||
],
|
||||
"what": "a 10 mm join on a block's top face whose sketch is then edited out past the block on every side (60 x 50 on a 40 x 30 top): truck refused the rebuilt join ('join cannot preserve the original faces') and dropped it",
|
||||
"source": "analytic",
|
||||
"method": "block 40x30x20 = 24000 plus the slab 60x50x10 = 30000 standing on it: V = 54000. Faces: block bottom and 4 sides, the slab's under face (60x50 less 40x30), its 4 sides and top = 11. Area 1200 + 2800 + 1800 + 2200 + 3000 = 11000. The sketch is made without projected face edges, so its rectangle is one region",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 54000.0,
|
||||
"area_mm2": 11000.0,
|
||||
"faces": 11
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "XY"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.two_point",
|
||||
"params": {
|
||||
"p0": [
|
||||
-20,
|
||||
-15
|
||||
],
|
||||
"p1": [
|
||||
20,
|
||||
15
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"distance": 20
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"face": [
|
||||
0,
|
||||
0,
|
||||
20
|
||||
]
|
||||
},
|
||||
"project_edges": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.two_point",
|
||||
"params": {
|
||||
"p0": [
|
||||
-10,
|
||||
-5
|
||||
],
|
||||
"p1": [
|
||||
10,
|
||||
5
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"distance": 10,
|
||||
"operation": "join",
|
||||
"profiles": [
|
||||
{
|
||||
"curves": [
|
||||
"l1",
|
||||
"l2",
|
||||
"l3",
|
||||
"l4"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.edit",
|
||||
"params": {
|
||||
"sketch": "Sketch2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.move_point",
|
||||
"params": {
|
||||
"point": "p3",
|
||||
"to": [
|
||||
30,
|
||||
25
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.move_point",
|
||||
"params": {
|
||||
"point": "p1",
|
||||
"to": [
|
||||
-30,
|
||||
-25
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4623",
|
||||
"tangency-labs/solidcraft#4180",
|
||||
"tangency-labs/solidcraft#4881"
|
||||
],
|
||||
"what": "a join of two pleated skins (lofts between 24-pleat star outlines, less the same loft moved in 1.1 mm) that cross along a ring near their bottoms: truck panicked ('tolerance must be no less than 1e-6') or gave no result",
|
||||
"source": "invariants",
|
||||
"method": "the narrowing cone skin and the flaring lip skin cross at z = -0.3, so their union is one connected solid: one valid closed body, no panic. The reporter's own script (pleated_union.py, 24 pleats)",
|
||||
"body_count": 1
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4654"
|
||||
],
|
||||
"what": "Split Body of an L-shaped body with one of its own faces as the tool (the column's side x = 15, its surface extended through the base): truck panicked ('split body: Option::unwrap() on None')",
|
||||
"source": "analytic",
|
||||
"method": "the plane x = 15 cuts the base under the column: the column with the base's left part (15*20*30 = 9000) and the base's right part (25*20*10 = 5000). Two bodies, V = 14000",
|
||||
"body_count": 2,
|
||||
"volume_mm3": 14000.0
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"corner": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"length": 40,
|
||||
"width": 20,
|
||||
"height": 10,
|
||||
"body_name": "L"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"corner": [
|
||||
0,
|
||||
0,
|
||||
10
|
||||
],
|
||||
"length": 15,
|
||||
"width": 20,
|
||||
"height": 20,
|
||||
"operation": "join",
|
||||
"targets": [
|
||||
"L"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.split_body",
|
||||
"params": {
|
||||
"body": "L",
|
||||
"tool": {
|
||||
"body": "L",
|
||||
"point": [
|
||||
15,
|
||||
10,
|
||||
20
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4701"
|
||||
],
|
||||
"what": "a 3 mm disc (r23) joined on the top face of a ring extruded 14 mm with a 10 deg outward taper (r 18.5 growing, bore 13.75 shrinking): 202 s in truck before the right result",
|
||||
"source": "analytic",
|
||||
"method": "the ring: frustum r 18.5 -> 18.5 + 14 tan10 less frustum r 13.75 -> 13.75 - 14 tan10, both 14 high (pi h/3 (a^2+ab+b^2)); the cap pi 23^2 3 covers the ring's top (r 11.28..20.97) and its bore",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 15224.7481
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "XY",
|
||||
"name": "Outer"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 18.5
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "Outer",
|
||||
"distance": 14,
|
||||
"taper": "10 deg",
|
||||
"body_name": "Ring"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "XY",
|
||||
"name": "Inner"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 13.75
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "Inner",
|
||||
"distance": 14,
|
||||
"taper": "-10 deg",
|
||||
"operation": "cut",
|
||||
"targets": [
|
||||
"Ring"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"face": [
|
||||
16,
|
||||
0,
|
||||
14
|
||||
]
|
||||
},
|
||||
"name": "Cap",
|
||||
"project_edges": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 23
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "Cap",
|
||||
"distance": 3,
|
||||
"operation": "join",
|
||||
"targets": [
|
||||
"Ring"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4825"
|
||||
],
|
||||
"what": "a 5 mm pocket cut from a hull's top face with a 30 deg taper (growing with depth) from a 282x176 outline with r2 corners: truck refused it ('the taper closes the profile'), as its run-on behind the start face narrowed past the corner radius",
|
||||
"source": "analytic",
|
||||
"method": "hull 318x212 r8 corners, z 46..156: (318*212 - (4-pi)*64)*110. The pocket at depth t is the outline offset by s = t*tan30: area (282+2s)(176+2s) - (4-pi)(2+s)^2, integrated over t 0..5 = 254772.3456. Faces: hull 4 sides + 4 corner cylinders + top + bottom, pocket 4 sloped planes + 4 cones + floor = 19",
|
||||
"body_count": 1,
|
||||
"faces": 19,
|
||||
"volume_mm3": 7154944.467
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "XY",
|
||||
"name": "Outline",
|
||||
"offset": 46,
|
||||
"project_edges": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.rounded",
|
||||
"params": {
|
||||
"p0": [
|
||||
-159,
|
||||
-106
|
||||
],
|
||||
"p1": [
|
||||
159,
|
||||
106
|
||||
],
|
||||
"radius": 8
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "Outline",
|
||||
"distance": 110,
|
||||
"body_name": "Hull"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "XY",
|
||||
"name": "Ledge",
|
||||
"offset": 156,
|
||||
"project_edges": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.rounded",
|
||||
"params": {
|
||||
"p0": [
|
||||
-141,
|
||||
-88
|
||||
],
|
||||
"p1": [
|
||||
141,
|
||||
88
|
||||
],
|
||||
"radius": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "Ledge",
|
||||
"distance": 5,
|
||||
"direction": "negative",
|
||||
"taper": "30 deg",
|
||||
"profiles": [
|
||||
{
|
||||
"point": [
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
],
|
||||
"operation": "cut",
|
||||
"targets": [
|
||||
"Hull"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4829"
|
||||
],
|
||||
"what": "a cylinder r10 x 40 with its top edge filleted r2, cut 14 mm down from its flat top face (the R8 disc, bounded by the fillet's edge): ~30 s, then 'boolean Cut: no result'",
|
||||
"source": "analytic",
|
||||
"method": "the round removes the corner region (1-pi/4) 2^2 at radius 10 - (2 - (2/6)/(1-pi/4)) (Pappus); the cut removes the R8 disc x 14: V = pi 100 40 - removed - pi 64 14. The top face is used up: faces side, bottom, round, pocket wall, pocket floor = 5",
|
||||
"body_count": 1,
|
||||
"faces": 5,
|
||||
"volume_mm3": 9699.9778
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 10,
|
||||
"height": 40,
|
||||
"body_name": "Body1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.fillet",
|
||||
"params": {
|
||||
"edges": [
|
||||
[
|
||||
10,
|
||||
0,
|
||||
40
|
||||
]
|
||||
],
|
||||
"radius": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"face": [
|
||||
1.77,
|
||||
1.39,
|
||||
40
|
||||
],
|
||||
"face_body": "Body1",
|
||||
"direction": "negative",
|
||||
"distance": 14,
|
||||
"operation": "cut"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -142,5 +142,253 @@
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4424",
|
||||
"why": "no geometry: a cut in a component other than the active one (document, dup of #4639)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4433",
|
||||
"why": "no geometry: a sheet-metal hole the flat pattern can't keep is refused by design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4434",
|
||||
"why": "duplicate of the rig's join-that-meets-nothing case (#2896): a join apart from the body keeps it as a lump, without a warning"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4435",
|
||||
"why": "no geometry: a sketch pattern's count parameter link not kept (sketch)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4437",
|
||||
"why": "no reproduction: a screenshot of an unknown part, no message"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4443",
|
||||
"why": "no geometry: a saved model cache refused after a boolean retry (document)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4448",
|
||||
"why": "no reproduction: a body patterned about a tilted axis, the body and the wrong result not described"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4458",
|
||||
"why": "no reproduction: a mirror redefined on an unknown part, the result not described"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4477",
|
||||
"why": "no geometry: the report arrived empty"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4481",
|
||||
"why": "no reproduction: last command only (a hole), the unexpected result not described"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4488",
|
||||
"why": "no kernel geometry: Emboss refuses a concave cylinder face (the emboss command's stated limit)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4489",
|
||||
"why": "UI only: Move point-to-point takes the rim point of a picked circle"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4502",
|
||||
"why": "render: the sketch viewport turns blue on old Intel graphics"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4509",
|
||||
"why": "no geometry: an offset plane can't attach to a face whose history is ambiguous (document, dup of #4325)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4516",
|
||||
"why": "no reproduction: a sketch loop past the profile curve budget; 400- and 600-segment loops extrude, the sketch is not given"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4523",
|
||||
"why": "no geometry: a join onto a mesh body is refused by design (dup of #3038)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4530",
|
||||
"why": "no reproduction: last command only (a join of two bodies), no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4532",
|
||||
"why": "no geometry: the report arrived empty"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4534",
|
||||
"why": "no reproduction: \"profile loop is not closed\" on an unknown sketch"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4544",
|
||||
"why": "UI only: a Norwegian translation"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4551",
|
||||
"why": "no reproduction: last command and a screenshot of an unknown part"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4557",
|
||||
"why": "no reproduction: STL export T-junctions on a user's STEP-imported part (the file is the reporter's)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4563",
|
||||
"why": "UI only: a section hatch option"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4572",
|
||||
"why": "no kernel geometry: a join from a sketch on a face defaults to that face's body (target choice)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4582",
|
||||
"why": "UI only: shortcut names"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4584",
|
||||
"why": "no geometry: an offset plane can't attach to a face whose history is ambiguous (document, dup of #4325)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4589",
|
||||
"why": "UI only: expression suggestions over a slider"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4593",
|
||||
"why": "no geometry: a Rib can't be patterned yet (a stated limit)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4594",
|
||||
"why": "no reproduction: a projected-face warning in a sketch, no steps or design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4597",
|
||||
"why": "no reproduction: last command only (a 20 mm cut), no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4600",
|
||||
"why": "no reproduction: last command only (a 20 mm cut), no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4619",
|
||||
"why": "no kernel geometry: Emboss on a cylinder takes lines square to the axis only (the emboss command's stated limit)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4621",
|
||||
"why": "render: section caps of touching bodies drawn in patches"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4624",
|
||||
"why": "no reproduction: last command only (a two-sided join), no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4636",
|
||||
"why": "UI only: 3D mouse navigation"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4639",
|
||||
"why": "no geometry: a cut in a component other than the active one (document)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4643",
|
||||
"why": "UI only: extrude dialog keyboard focus after a profile click"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4658",
|
||||
"why": "UI only: ribbon recomputes its panels every frame"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4685",
|
||||
"why": "needs the user design: a 20-feature shelled part cut by a 2.7 mm3 body; no small stand-in"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4706",
|
||||
"why": "needs the user design: a housing of tangent arcs with cut pockets; no small stand-in shows the same geometry"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4714",
|
||||
"why": "no reproduction: Snap Fit on one half of a split user part, the position not on the named body"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4723",
|
||||
"why": "no geometry: holes on an unfolded sheet-metal flat pattern are refused by design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4728",
|
||||
"why": "no reproduction: a test hinge of two bodies from one sketch, screenshots only"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4731",
|
||||
"why": "no geometry: a sheet-metal cut the flat pattern can't keep is refused by design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4733",
|
||||
"why": "no reproduction: last command only (a face cut on an unknown part)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4741",
|
||||
"why": "no geometry: a construction axis as the pattern axis (command parameters, dup of #2885)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4750",
|
||||
"why": "no geometry: a two-curve sketch extend (feature request)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4753",
|
||||
"why": "no geometry: five text profiles were picked where one was meant (user selection)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4755",
|
||||
"why": "no reproduction: last command only (a fender cut on an unknown part)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4756",
|
||||
"why": "no reproduction: a DXF logo cut from a user's curved face (105 freeform faces), no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4760",
|
||||
"why": "no geometry: a sketch weld tool (feature request)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4761",
|
||||
"why": "no kernel geometry: Emboss refuses a conical face (the emboss command's stated limit)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4763",
|
||||
"why": "no kernel geometry: path pattern copies placed in the wrong frame (pattern placement, engine)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4783",
|
||||
"why": "no geometry: material name and density looked up apart (document)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4798",
|
||||
"why": "no geometry: an edge-midpoint rectangle (feature request)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4800",
|
||||
"why": "no reproduction: a cut not updating after a sketch edit, no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4803",
|
||||
"why": "no reproduction: the second defect is shown only by screenshots of the user's part"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4805",
|
||||
"why": "no geometry: an offset plane can't attach to a face whose history is ambiguous (document, dup of #4325)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4807",
|
||||
"why": "UI only: a placed hole shows a drag cursor"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4810",
|
||||
"why": "no geometry: no circle-to-circle sketch dimension (dup of #4064)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4818",
|
||||
"why": "UI only: first-run setup (feature request)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4826",
|
||||
"why": "no geometry: user error (a line not horizontal), withdrawn"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4827",
|
||||
"why": "UI only: draft corner rules in the dialog (feature request)"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4542"
|
||||
],
|
||||
"what": "a fluted cup wall (a 72-point periodic fit spline round r 31.5..32.5 outside, a circle r 25 inside) extruded 90 mm as a join onto the top face of a revolved base disc of r 32: the app hung in the boolean",
|
||||
"source": "invariants",
|
||||
"method": "the wall's ring stands on the base's top face (z = 7), overlapping it between r 25 and the disc's rim and overhanging it where the flutes pass r 32, so the join is one connected solid: one valid closed body. The spline's area is not closed-form, so the volume is not graded",
|
||||
"body_count": 1
|
||||
}
|
||||
@@ -0,0 +1,419 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
},
|
||||
"name": "Base"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
25,
|
||||
0
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
25,
|
||||
0
|
||||
],
|
||||
"through": [
|
||||
29.5,
|
||||
1.5
|
||||
],
|
||||
"end": [
|
||||
32,
|
||||
7
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
32,
|
||||
7
|
||||
],
|
||||
[
|
||||
0,
|
||||
7
|
||||
],
|
||||
[
|
||||
0,
|
||||
0
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.revolve",
|
||||
"params": {
|
||||
"sketch": "Base",
|
||||
"axis": "y",
|
||||
"body_name": "Cup"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "XY",
|
||||
"name": "Wall",
|
||||
"offset": 7
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.spline.fit_point",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
32.5,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
32.127,
|
||||
2.811
|
||||
],
|
||||
[
|
||||
31.268,
|
||||
5.513
|
||||
],
|
||||
[
|
||||
30.427,
|
||||
8.153
|
||||
],
|
||||
[
|
||||
29.835,
|
||||
10.859
|
||||
],
|
||||
[
|
||||
29.228,
|
||||
13.629
|
||||
],
|
||||
[
|
||||
28.146,
|
||||
16.25
|
||||
],
|
||||
[
|
||||
26.418,
|
||||
18.498
|
||||
],
|
||||
[
|
||||
24.322,
|
||||
20.409
|
||||
],
|
||||
[
|
||||
22.274,
|
||||
22.274
|
||||
],
|
||||
[
|
||||
20.409,
|
||||
24.322
|
||||
],
|
||||
[
|
||||
18.498,
|
||||
26.418
|
||||
],
|
||||
[
|
||||
16.25,
|
||||
28.146
|
||||
],
|
||||
[
|
||||
13.629,
|
||||
29.228
|
||||
],
|
||||
[
|
||||
10.859,
|
||||
29.835
|
||||
],
|
||||
[
|
||||
8.153,
|
||||
30.427
|
||||
],
|
||||
[
|
||||
5.513,
|
||||
31.268
|
||||
],
|
||||
[
|
||||
2.811,
|
||||
32.127
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
32.5
|
||||
],
|
||||
[
|
||||
-2.811,
|
||||
32.127
|
||||
],
|
||||
[
|
||||
-5.513,
|
||||
31.268
|
||||
],
|
||||
[
|
||||
-8.153,
|
||||
30.427
|
||||
],
|
||||
[
|
||||
-10.859,
|
||||
29.835
|
||||
],
|
||||
[
|
||||
-13.629,
|
||||
29.228
|
||||
],
|
||||
[
|
||||
-16.25,
|
||||
28.146
|
||||
],
|
||||
[
|
||||
-18.498,
|
||||
26.418
|
||||
],
|
||||
[
|
||||
-20.409,
|
||||
24.322
|
||||
],
|
||||
[
|
||||
-22.274,
|
||||
22.274
|
||||
],
|
||||
[
|
||||
-24.322,
|
||||
20.409
|
||||
],
|
||||
[
|
||||
-26.418,
|
||||
18.498
|
||||
],
|
||||
[
|
||||
-28.146,
|
||||
16.25
|
||||
],
|
||||
[
|
||||
-29.228,
|
||||
13.629
|
||||
],
|
||||
[
|
||||
-29.835,
|
||||
10.859
|
||||
],
|
||||
[
|
||||
-30.427,
|
||||
8.153
|
||||
],
|
||||
[
|
||||
-31.268,
|
||||
5.513
|
||||
],
|
||||
[
|
||||
-32.127,
|
||||
2.811
|
||||
],
|
||||
[
|
||||
-32.5,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
-32.127,
|
||||
-2.811
|
||||
],
|
||||
[
|
||||
-31.268,
|
||||
-5.513
|
||||
],
|
||||
[
|
||||
-30.427,
|
||||
-8.153
|
||||
],
|
||||
[
|
||||
-29.835,
|
||||
-10.859
|
||||
],
|
||||
[
|
||||
-29.228,
|
||||
-13.629
|
||||
],
|
||||
[
|
||||
-28.146,
|
||||
-16.25
|
||||
],
|
||||
[
|
||||
-26.418,
|
||||
-18.498
|
||||
],
|
||||
[
|
||||
-24.322,
|
||||
-20.409
|
||||
],
|
||||
[
|
||||
-22.274,
|
||||
-22.274
|
||||
],
|
||||
[
|
||||
-20.409,
|
||||
-24.322
|
||||
],
|
||||
[
|
||||
-18.498,
|
||||
-26.418
|
||||
],
|
||||
[
|
||||
-16.25,
|
||||
-28.146
|
||||
],
|
||||
[
|
||||
-13.629,
|
||||
-29.228
|
||||
],
|
||||
[
|
||||
-10.859,
|
||||
-29.835
|
||||
],
|
||||
[
|
||||
-8.153,
|
||||
-30.427
|
||||
],
|
||||
[
|
||||
-5.513,
|
||||
-31.268
|
||||
],
|
||||
[
|
||||
-2.811,
|
||||
-32.127
|
||||
],
|
||||
[
|
||||
-0.0,
|
||||
-32.5
|
||||
],
|
||||
[
|
||||
2.811,
|
||||
-32.127
|
||||
],
|
||||
[
|
||||
5.513,
|
||||
-31.268
|
||||
],
|
||||
[
|
||||
8.153,
|
||||
-30.427
|
||||
],
|
||||
[
|
||||
10.859,
|
||||
-29.835
|
||||
],
|
||||
[
|
||||
13.629,
|
||||
-29.228
|
||||
],
|
||||
[
|
||||
16.25,
|
||||
-28.146
|
||||
],
|
||||
[
|
||||
18.498,
|
||||
-26.418
|
||||
],
|
||||
[
|
||||
20.409,
|
||||
-24.322
|
||||
],
|
||||
[
|
||||
22.274,
|
||||
-22.274
|
||||
],
|
||||
[
|
||||
24.322,
|
||||
-20.409
|
||||
],
|
||||
[
|
||||
26.418,
|
||||
-18.498
|
||||
],
|
||||
[
|
||||
28.146,
|
||||
-16.25
|
||||
],
|
||||
[
|
||||
29.228,
|
||||
-13.629
|
||||
],
|
||||
[
|
||||
29.835,
|
||||
-10.859
|
||||
],
|
||||
[
|
||||
30.427,
|
||||
-8.153
|
||||
],
|
||||
[
|
||||
31.268,
|
||||
-5.513
|
||||
],
|
||||
[
|
||||
32.127,
|
||||
-2.811
|
||||
]
|
||||
],
|
||||
"periodic": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 25
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "Wall",
|
||||
"distance": 90,
|
||||
"operation": "join",
|
||||
"targets": [
|
||||
"Cup"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4547",
|
||||
"tangency-labs/solidcraft#4542"
|
||||
],
|
||||
"what": "a join of two revolved rings that touch only along a circle (r 20.5 at z 4: the corner of one ring on the corner of the other): the app hung in the boolean",
|
||||
"source": "analytic",
|
||||
"method": "ring A r 20..20.5, z 0..4: pi*(20.5^2-20^2)*4 = 254.469; ring B r 20.5..28, z 4..18: pi*(28^2-20.5^2)*14 = 15997.83. They share only the circle r 20.5, z 4, so the join keeps them as two bodies (touching: separate, the default) or refuses cleanly; never a hang",
|
||||
"outcome": "solid_or_refused",
|
||||
"body_count": 2,
|
||||
"volume_mm3": 16253.0296
|
||||
}
|
||||
+110
@@ -0,0 +1,110 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
},
|
||||
"name": "A"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.two_point",
|
||||
"params": {
|
||||
"p0": [
|
||||
20,
|
||||
0
|
||||
],
|
||||
"p1": [
|
||||
20.5,
|
||||
4
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.revolve",
|
||||
"params": {
|
||||
"sketch": "A",
|
||||
"axis": "y",
|
||||
"body_name": "RingA"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
},
|
||||
"name": "B"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.two_point",
|
||||
"params": {
|
||||
"p0": [
|
||||
20.5,
|
||||
4
|
||||
],
|
||||
"p1": [
|
||||
28,
|
||||
18
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.revolve",
|
||||
"params": {
|
||||
"sketch": "B",
|
||||
"axis": "y",
|
||||
"body_name": "RingB"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.combine",
|
||||
"params": {
|
||||
"target": "RingB",
|
||||
"tools": [
|
||||
"RingA"
|
||||
],
|
||||
"operation": "join"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -78,5 +78,53 @@
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4422",
|
||||
"why": "render: wgpu surface not configured, no geometry"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4469",
|
||||
"why": "the recipe needs sketch.offset of a free-form chain (PR #4156), refused on this branch before the kernel is reached; the two-distance chamfer of a spline rim is fillets/4332-two-distance-chamfer-of-spline-rim"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4476",
|
||||
"why": "no geometry: unclean exit in timeline.dependents (document), the design is not given"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4478",
|
||||
"why": "no reproduction: the display triangulation library's assertion, title only"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4491",
|
||||
"why": "render: blank or corrupted offscreen captures, no geometry"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4559",
|
||||
"why": "no geometry: unclean exit with no command running (an agent driving the app)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4599",
|
||||
"why": "render: a GPU hang (Intel/Mesa); the replay rebuilds cleanly"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4604",
|
||||
"why": "no geometry: measuring a large assembly runs on the window thread (document/UI)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4605",
|
||||
"why": "render: startup failure creating the graphics device on macOS"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4627",
|
||||
"why": "render: crash inside the NVIDIA driver, no command"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4709",
|
||||
"why": "no reproduction: a slow extrude shown by screenshot only"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4777",
|
||||
"why": "no geometry: unclean exit with no command and no replay"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4791",
|
||||
"why": "render: capture buffer and GPU hang on Intel/Mesa, no geometry"
|
||||
}
|
||||
]
|
||||
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4702"
|
||||
],
|
||||
"what": "a disc (r16 x 5) with a radial slot cut 3.2 down (65..115 deg, r 10 out through the rim): the vertical edge where a slot wall meets the outer cylinder chamfered 0.4: refused ('both faces next to the edge must be planar')",
|
||||
"source": "analytic",
|
||||
"method": "disc pi 256 5 less the slot sector (50/360) pi (16^2 - 10^2) 3.2. The chamfer cuts the corner between the radial wall and the cylinder: from 0.4 in along the wall to 0.4 round the cylinder, i.e. the triangle (corner, the two points) plus the circular segment r^2/2 (d - sin d), d = 0.4/16, over the 3.2 mm edge. Faces: top, bottom, outer cylinder, slot floor, two walls, inner wall, chamfer = 8. Graded to 1e-5 relative: the chamfer is 7e-5 of the volume, and how a distance is measured round the cylinder (along it, or to the offset surfaces' intersection) moves it by up to 4% of itself",
|
||||
"body_count": 1,
|
||||
"faces": 8,
|
||||
"volume_mm3": 3803.164466,
|
||||
"tolerance": {
|
||||
"rel": 1e-05
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,119 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 16,
|
||||
"height": 5,
|
||||
"body_name": "Adapter"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"face": [
|
||||
0,
|
||||
0,
|
||||
5
|
||||
]
|
||||
},
|
||||
"name": "Slot",
|
||||
"project_edges": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
4.226183,
|
||||
9.063078
|
||||
],
|
||||
[
|
||||
8.452365,
|
||||
18.126156
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
8.452365,
|
||||
18.126156
|
||||
],
|
||||
"through": [
|
||||
0.0,
|
||||
20.0
|
||||
],
|
||||
"end": [
|
||||
-8.452365,
|
||||
18.126156
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
-8.452365,
|
||||
18.126156
|
||||
],
|
||||
[
|
||||
-4.226183,
|
||||
9.063078
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
-4.226183,
|
||||
9.063078
|
||||
],
|
||||
"through": [
|
||||
0.0,
|
||||
10.0
|
||||
],
|
||||
"end": [
|
||||
4.226183,
|
||||
9.063078
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "Slot",
|
||||
"distance": 3.2,
|
||||
"direction": "negative",
|
||||
"operation": "cut",
|
||||
"targets": [
|
||||
"Adapter"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.chamfer",
|
||||
"params": {
|
||||
"edges": [
|
||||
[
|
||||
6.761892,
|
||||
14.500925,
|
||||
3.4
|
||||
]
|
||||
],
|
||||
"distance": 0.4
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -54,5 +54,97 @@
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4429",
|
||||
"why": "needs the user design: a damper of joined extrudes with six chamfers; the failing chain is not reproducible from the report"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4444",
|
||||
"why": "no reproduction: a variable-radius fillet on an unknown part with curved faces, no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4472",
|
||||
"why": "no geometry: the report arrived empty"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4474",
|
||||
"why": "no geometry: a sketch fillet at a zero-length line (sketch command)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4495",
|
||||
"why": "needs the user design: a drafted boss whose corner runs onto a 17 deg face; not reproducible from the screenshot"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4496",
|
||||
"why": "no geometry: the report arrived empty"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4498",
|
||||
"why": "no geometry: distance-and-angle chamfer exists (UI question)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4499",
|
||||
"why": "needs the user design: a battery caddy with 40 features; the 8-edge outline is not reproducible alone"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4518",
|
||||
"why": "no single right answer: a second concave fillet ending on an earlier one's round (how they meet is the method's choice)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4543",
|
||||
"why": "no geometry: the report arrived empty"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4550",
|
||||
"why": "no reproduction: one edge on an unknown large part, screenshot only"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4569",
|
||||
"why": "no reproduction: an unequal chamfer round a loop on an unknown part (a stated limit)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4575",
|
||||
"why": "no geometry: the reporter withdrew it (chamfer preview works)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4661",
|
||||
"why": "no reproduction: vertical-edge fillets meeting earlier top fillets on an unknown part, no message or design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4681",
|
||||
"why": "no geometry: sketch fillet radius rejects an expression (sketch)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4690",
|
||||
"why": "needs the user design: a 19-feature, 2-body mount; the two edges are not reproducible from the report"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4703",
|
||||
"why": "UI only: a hole edge counts as \"2 selected\" (a seam-split circle)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4716",
|
||||
"why": "no reproduction: a 10 mm chamfer beside a circle cuts the far side too, unknown part (0.18.3), no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4744",
|
||||
"why": "no reproduction: a curved 8-edge chain on an unknown part (0.18.4), no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4772",
|
||||
"why": "needs the user design: a 26-feature handle (poignee.json) with a fillet along a curve; no small stand-in"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4782",
|
||||
"why": "no geometry: a fillet rolling over onto the next face (feature request)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4793",
|
||||
"why": "no reproduction: a 9 mm chamfer of one curved edge on an unknown part (0.18.4)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4795",
|
||||
"why": "needs the user design: a hook of filleted extrudes; the refusal depends on one earlier distance (11+3 vs 12.7+3)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4806",
|
||||
"why": "no reproduction: a 0.2 mm chamfer chain on an unknown part, no design"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4438"
|
||||
],
|
||||
"what": "a whole torus (R 15, r 5) exported to STEP and read back: truck wrote it as two faces on one shared loop with no seam edges (V-E+F = 2), which other readers took as a sphere-like shell of volume 0",
|
||||
"source": "analytic",
|
||||
"method": "V = 2*pi^2*R*r^2 = 7402.203, A = 4*pi^2*R*r = 2960.881. The re-imported body is graded, not the exported one (the design holds only the import)",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 7402.2033,
|
||||
"area_mm2": 2960.8813
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.torus",
|
||||
"params": {
|
||||
"major": 15,
|
||||
"minor": 5,
|
||||
"body_name": "Torus"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.export",
|
||||
"params": {
|
||||
"path": "$OUT/kernel-case-4438.step",
|
||||
"format": "step"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.new",
|
||||
"params": {
|
||||
"name": "Reimported"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.insert_step",
|
||||
"params": {
|
||||
"path": "$OUT/kernel-case-4438.step"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+93
@@ -0,0 +1,93 @@
|
||||
solid box_degenerate
|
||||
facet normal 0 0 -1
|
||||
outer loop
|
||||
vertex 0 0 0
|
||||
vertex 20 10 0
|
||||
vertex 20 0 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 -1
|
||||
outer loop
|
||||
vertex 0 0 0
|
||||
vertex 0 10 0
|
||||
vertex 20 10 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex 0 0 5
|
||||
vertex 20 0 5
|
||||
vertex 20 10 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex 0 0 5
|
||||
vertex 20 10 5
|
||||
vertex 0 10 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 -1 0
|
||||
outer loop
|
||||
vertex 0 0 0
|
||||
vertex 20 0 0
|
||||
vertex 20 0 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 -1 0
|
||||
outer loop
|
||||
vertex 0 0 0
|
||||
vertex 20 0 5
|
||||
vertex 0 0 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1 0 0
|
||||
outer loop
|
||||
vertex 20 0 0
|
||||
vertex 20 10 0
|
||||
vertex 20 10 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1 0 0
|
||||
outer loop
|
||||
vertex 20 0 0
|
||||
vertex 20 10 5
|
||||
vertex 20 0 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 1 0
|
||||
outer loop
|
||||
vertex 20 10 0
|
||||
vertex 0 10 0
|
||||
vertex 0 10 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 1 0
|
||||
outer loop
|
||||
vertex 20 10 0
|
||||
vertex 0 10 5
|
||||
vertex 20 10 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -1 0 0
|
||||
outer loop
|
||||
vertex 0 10 0
|
||||
vertex 0 0 0
|
||||
vertex 0 0 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -1 0 0
|
||||
outer loop
|
||||
vertex 0 10 0
|
||||
vertex 0 0 5
|
||||
vertex 0 10 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 0
|
||||
outer loop
|
||||
vertex 0 0 0
|
||||
vertex 10 0 0
|
||||
vertex 20 0 0
|
||||
endloop
|
||||
endfacet
|
||||
endsolid box_degenerate
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4561"
|
||||
],
|
||||
"what": "Convert Mesh of a 20x10x5 box STL (12 triangles) with one extra zero-area triangle lying on an edge ((0,0,0) (10,0,0) (20,0,0)): refused with 'mesh conversion: degenerate triangle'",
|
||||
"source": "analytic",
|
||||
"method": "the zero-area triangle adds no surface; the mesh is the closed box, a constant-section prism, so it converts: V = 20*10*5 = 1000, 6 faces. The STL is written by hand (box-degenerate.stl, the triage's mesh)",
|
||||
"body_count": 1,
|
||||
"faces": 6,
|
||||
"volume_mm3": 1000.0
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "file.insert_mesh",
|
||||
"params": {
|
||||
"path": "$CASE/box-degenerate.stl"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "component.activate",
|
||||
"params": {
|
||||
"component": "box-degenerate"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "mesh.convert",
|
||||
"params": {
|
||||
"body": "box-degenerate"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4598"
|
||||
],
|
||||
"what": "an O40 x 60 rod with a blind O8 cross bore from its side (x 10..25 at mid height), moved 100 mm, exported to STEP and read back: the body came in empty with no warning (truck's exported edges had 1399 control points)",
|
||||
"source": "analytic",
|
||||
"method": "the bore runs from the wall (x = sqrt(400 - y^2)) in to its flat end at x = 10: removed = Int_-4^4 2 sqrt(16-y^2) (sqrt(400-y^2) - 10) dy (python quadrature) = 497.6028. V = pi*20^2*60 - removed. Faces: top, bottom, side, bore wall, bore end = 5. Moved 100 in x: bbox x 80..120",
|
||||
"body_count": 1,
|
||||
"faces": 5,
|
||||
"volume_mm3": 74900.6209,
|
||||
"bbox": {
|
||||
"min": [
|
||||
80.0,
|
||||
-20.0,
|
||||
0.0
|
||||
],
|
||||
"max": [
|
||||
120.0,
|
||||
20.0,
|
||||
60.0
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"diameter": 40,
|
||||
"height": 60,
|
||||
"body_name": "Rod"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"diameter": 8,
|
||||
"height": 15,
|
||||
"base": [
|
||||
10,
|
||||
0,
|
||||
30
|
||||
],
|
||||
"axis": "X",
|
||||
"operation": "cut",
|
||||
"targets": [
|
||||
"Rod"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.move",
|
||||
"params": {
|
||||
"bodies": [
|
||||
"Rod"
|
||||
],
|
||||
"translate": [
|
||||
100,
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.export",
|
||||
"params": {
|
||||
"path": "$OUT/kernel-case-4598.step",
|
||||
"format": "step",
|
||||
"bodies": [
|
||||
"Rod"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.new",
|
||||
"params": {
|
||||
"name": "Reimported"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.insert_step",
|
||||
"params": {
|
||||
"path": "$OUT/kernel-case-4598.step"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -6,5 +6,109 @@
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4274",
|
||||
"why": "UI only: image canvas in sketches (feature request)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4451",
|
||||
"why": "no kernel geometry: OBJ export writes unshared vertices (file export)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4483",
|
||||
"why": "no reproduction: operations on a user's 51-body STEP assembly (mostly working on 0.20.0)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4485",
|
||||
"why": "no geometry: the report arrived empty"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4500",
|
||||
"why": "no geometry: the report arrived empty"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4552",
|
||||
"why": "no reproduction: a user's STEP wheels import with holes (the STEP is the reporter's)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4553",
|
||||
"why": "no geometry: FreeCAD history import (feature request)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4554",
|
||||
"why": "no geometry: History hover stalls on large assemblies (render)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4560",
|
||||
"why": "no geometry: Convert Mesh's 50 000 triangle limit, as designed (dup of #346)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4564",
|
||||
"why": "no geometry: Convert Mesh takes constant-section prisms only, as designed (dup of #358)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4586",
|
||||
"why": "no geometry: Convert Mesh takes constant-section prisms only, as designed (dup of #358)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4609",
|
||||
"why": "no geometry: Convert Mesh needs the mesh's component active (document)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4616",
|
||||
"why": "no geometry: viewport memory for repeated placements (render)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4632",
|
||||
"why": "no geometry: Convert Mesh takes constant-section prisms only, as designed (dup of #358)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4633",
|
||||
"why": "no geometry: Convert Mesh run without a mesh body selected (user error)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4637",
|
||||
"why": "no geometry: viewport mesh indexing (render)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4646",
|
||||
"why": "no geometry: viewport culling of instanced placements (render)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4662",
|
||||
"why": "no geometry: mesh body size measured every frame (performance)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4668",
|
||||
"why": "no geometry: hover highlight rebuilt per pointer move (render)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4673",
|
||||
"why": "no geometry: undo history copies imported meshes (memory)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4676",
|
||||
"why": "no kernel geometry: Insert STEP ignores its matrix parameter (placement)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4679",
|
||||
"why": "no geometry: welding a large mesh for display stalls a frame (render)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4700",
|
||||
"why": "no geometry: Convert Mesh takes constant-section prisms only, as designed (dup of #358)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4722",
|
||||
"why": "no geometry: a freeform STL refused by Convert Mesh, as designed (dup of #358 and #4609)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4724",
|
||||
"why": "no geometry: display levels of detail (render)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4768",
|
||||
"why": "no kernel geometry: moving repeated STEP placements moves the shared definition (placement)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4814",
|
||||
"why": "no geometry: Convert Mesh needs the mesh's component active (dup of #4609)"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -14,5 +14,21 @@
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4301",
|
||||
"why": "no geometry: Flange on a body that isn't sheet metal (dup of #2987)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4440",
|
||||
"why": "UI only: the flat pattern view doesn't draw perforations"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4514",
|
||||
"why": "no geometry: Flange on a body that isn't sheet metal (dup of #2987)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4713",
|
||||
"why": "no reproduction: Press Pull on a user's sheet-metal part runs a solid extrude (tool choice)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4720",
|
||||
"why": "no geometry: two sheet-metal bodies combined lose their flat pattern, as warned (feature request)"
|
||||
}
|
||||
]
|
||||
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4492"
|
||||
],
|
||||
"what": "the top face of a 40x30x10 block whose four top edges are rounded r3, offset 19 mm up: truck refused it ('a corner whose faces don't meet the same way after the move')",
|
||||
"source": "invariants",
|
||||
"method": "the top face's neighbours are the rounds, tangent to it, which cannot extend to meet a plane 19 mm higher; how the gap closes (the rounds carried up with the face, or walls standing on the old face) is the method's choice, so only the outcome is graded: the offset succeeds with one valid closed body",
|
||||
"body_count": 1
|
||||
}
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"corner": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"length": 40,
|
||||
"width": 30,
|
||||
"height": 10,
|
||||
"body_name": "Block"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.fillet",
|
||||
"params": {
|
||||
"edges": [
|
||||
[
|
||||
20,
|
||||
0,
|
||||
10
|
||||
],
|
||||
[
|
||||
20,
|
||||
30,
|
||||
10
|
||||
],
|
||||
[
|
||||
0,
|
||||
15,
|
||||
10
|
||||
],
|
||||
[
|
||||
40,
|
||||
15,
|
||||
10
|
||||
]
|
||||
],
|
||||
"radius": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.offset_face",
|
||||
"params": {
|
||||
"faces": [
|
||||
[
|
||||
20,
|
||||
15,
|
||||
10
|
||||
]
|
||||
],
|
||||
"distance": 19
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4567",
|
||||
"tangency-labs/solidcraft#5076",
|
||||
"tangency-labs/solidcraft#5050",
|
||||
"tangency-labs/solidcraft#4743"
|
||||
],
|
||||
"what": "a vase revolved from a fit-point spline wall, shelled 2 mm from its flat top: truck refused any free-form wall ('offset: only bodies with planes, cylinders, cones, spheres and tori')",
|
||||
"source": "invariants",
|
||||
"method": "the spline wall's curvature radius stays well above 2 mm, so the inward 2 mm offset exists: one valid closed body, open at the top. The offset of a spline surface has no closed-form volume, so only the outcome is graded (the reporter's 7-command repro; the removed face is the flat top at y = 46)",
|
||||
"body_count": 1
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "XY"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.spline.fit_point",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
14,
|
||||
3
|
||||
],
|
||||
[
|
||||
22,
|
||||
14
|
||||
],
|
||||
[
|
||||
22,
|
||||
26
|
||||
],
|
||||
[
|
||||
14,
|
||||
36
|
||||
],
|
||||
[
|
||||
6,
|
||||
40
|
||||
],
|
||||
[
|
||||
6,
|
||||
46
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
6,
|
||||
46
|
||||
],
|
||||
[
|
||||
0,
|
||||
46
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
46
|
||||
],
|
||||
[
|
||||
0,
|
||||
0
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.revolve",
|
||||
"params": {
|
||||
"axis": "y",
|
||||
"angle": "360 deg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.shell",
|
||||
"params": {
|
||||
"faces": [
|
||||
[
|
||||
0,
|
||||
46,
|
||||
3
|
||||
]
|
||||
],
|
||||
"thickness": "2 mm"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4711"
|
||||
],
|
||||
"what": "a 2 mm shell, open at the bottom, of a 60x40x10 block whose r3 through hole breaks out into a 10x10 notch at its edge: truck took 75 s and failed ('boolean Cut: no result')",
|
||||
"source": "invariants",
|
||||
"method": "every wall has room for 2 mm (the thinnest, between the hole and the block's side, is 4 mm), so the shell exists: one valid closed body with one shell, open at the bottom. The cavity's corners at the hole's break-out follow the offset surfaces, so the volume is not closed-form (the reporter's script)",
|
||||
"body_count": 1,
|
||||
"shells": 1
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 60,
|
||||
"width": 40,
|
||||
"height": 10
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 3,
|
||||
"height": 20,
|
||||
"base": [
|
||||
22.5,
|
||||
7,
|
||||
-5
|
||||
],
|
||||
"operation": "cut"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 10,
|
||||
"width": 10,
|
||||
"height": 20,
|
||||
"corner": [
|
||||
25,
|
||||
-5,
|
||||
-5
|
||||
],
|
||||
"operation": "cut"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.shell",
|
||||
"params": {
|
||||
"faces": [
|
||||
[
|
||||
50,
|
||||
30,
|
||||
0
|
||||
]
|
||||
],
|
||||
"thickness": 2
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -30,5 +30,61 @@
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4385",
|
||||
"why": "UI only: sketch offset's second distance dimension"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4464",
|
||||
"why": "no geometry: sketch offset removes degrees of freedom (sketch solver)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4467",
|
||||
"why": "no reproduction: shell removing six faces of a user's 4-feature part, no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4484",
|
||||
"why": "duplicate of #4879: the thicken now builds; the cut into it is #4879's case"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4503",
|
||||
"why": "no reproduction: shell of a user's twisted swept slot (free-form, dup of #2432), screenshots only"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4510",
|
||||
"why": "no geometry: delete face in the surface workspace heals instead of opening (feature request)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4522",
|
||||
"why": "no geometry: the report arrived empty"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4555",
|
||||
"why": "no kernel geometry: a face given by a point resolves to the other body's coplanar face (engine face lookup)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4573",
|
||||
"why": "no kernel geometry: \"select at least one face to remove\" on a picked face (dup of #4555, engine face lookup)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4574",
|
||||
"why": "no reproduction: shell beside a tangent face of an unknown part, screenshot only"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4583",
|
||||
"why": "no geometry: sketch offset with unsolved constraints (sketch)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4742",
|
||||
"why": "no reproduction: a 0.1 mm shell after a draft and fillets on an unknown part, no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4743",
|
||||
"why": "duplicate of the free-form shell case from #4567 (a loft's walls instead of a revolve's)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4775",
|
||||
"why": "no geometry: Offset Face run with no faces picked (user error)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4822",
|
||||
"why": "no reproduction: a screenshot only"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1683,5 +1683,201 @@
|
||||
"4424": "issue, open",
|
||||
"4428": "issue, open",
|
||||
"4429": "issue, open",
|
||||
"4431": "issue, open"
|
||||
"4431": "issue, open",
|
||||
"4433": "issue, closed",
|
||||
"4434": "issue, closed",
|
||||
"4435": "issue, closed",
|
||||
"4437": "issue, open",
|
||||
"4438": "issue, open",
|
||||
"4440": "issue, closed",
|
||||
"4443": "issue, open",
|
||||
"4444": "issue, open",
|
||||
"4448": "issue, open",
|
||||
"4451": "issue, open",
|
||||
"4454": "issue, open",
|
||||
"4458": "issue, open",
|
||||
"4464": "issue, closed",
|
||||
"4465": "issue, open",
|
||||
"4467": "issue, open",
|
||||
"4468": "issue, open",
|
||||
"4469": "issue, open",
|
||||
"4472": "issue, open",
|
||||
"4474": "issue, open",
|
||||
"4476": "issue, open",
|
||||
"4477": "issue, open",
|
||||
"4478": "issue, closed",
|
||||
"4481": "issue, open",
|
||||
"4483": "issue, open",
|
||||
"4484": "issue, open",
|
||||
"4485": "issue, open",
|
||||
"4488": "issue, open",
|
||||
"4489": "issue, open",
|
||||
"4491": "issue, open",
|
||||
"4492": "issue, open",
|
||||
"4494": "issue, open",
|
||||
"4495": "issue, open",
|
||||
"4496": "issue, open",
|
||||
"4498": "issue, open",
|
||||
"4499": "issue, open",
|
||||
"4500": "issue, open",
|
||||
"4502": "issue, open",
|
||||
"4503": "issue, open",
|
||||
"4505": "issue, open",
|
||||
"4506": "issue, closed",
|
||||
"4509": "issue, open",
|
||||
"4510": "issue, open",
|
||||
"4514": "issue, closed",
|
||||
"4516": "issue, open",
|
||||
"4518": "issue, open",
|
||||
"4521": "issue, open",
|
||||
"4522": "issue, open",
|
||||
"4523": "issue, open",
|
||||
"4524": "issue, open",
|
||||
"4525": "issue, open",
|
||||
"4528": "issue, open",
|
||||
"4530": "issue, open",
|
||||
"4532": "issue, open",
|
||||
"4534": "issue, closed",
|
||||
"4537": "issue, open",
|
||||
"4542": "issue, open",
|
||||
"4543": "issue, open",
|
||||
"4544": "issue, open",
|
||||
"4547": "issue, open",
|
||||
"4550": "issue, open",
|
||||
"4551": "issue, open",
|
||||
"4552": "issue, open",
|
||||
"4553": "issue, open",
|
||||
"4554": "issue, open",
|
||||
"4555": "issue, closed",
|
||||
"4557": "issue, open",
|
||||
"4558": "issue, closed",
|
||||
"4559": "issue, open",
|
||||
"4560": "issue, open",
|
||||
"4561": "issue, open",
|
||||
"4563": "issue, closed",
|
||||
"4564": "issue, closed",
|
||||
"4567": "issue, open",
|
||||
"4569": "issue, open",
|
||||
"4572": "issue, open",
|
||||
"4573": "issue, open",
|
||||
"4574": "issue, open",
|
||||
"4575": "issue, closed",
|
||||
"4576": "issue, closed",
|
||||
"4577": "issue, open",
|
||||
"4579": "issue, open",
|
||||
"4582": "issue, closed",
|
||||
"4583": "issue, open",
|
||||
"4584": "issue, open",
|
||||
"4586": "issue, open",
|
||||
"4589": "issue, closed",
|
||||
"4593": "issue, closed",
|
||||
"4594": "issue, open",
|
||||
"4597": "issue, open",
|
||||
"4598": "issue, open",
|
||||
"4599": "issue, closed",
|
||||
"4600": "issue, open",
|
||||
"4604": "issue, closed",
|
||||
"4605": "issue, open",
|
||||
"4606": "issue, open",
|
||||
"4609": "issue, closed",
|
||||
"4616": "issue, open",
|
||||
"4619": "issue, open",
|
||||
"4621": "issue, open",
|
||||
"4623": "issue, closed",
|
||||
"4624": "issue, open",
|
||||
"4627": "issue, open",
|
||||
"4631": "issue, open",
|
||||
"4632": "issue, open",
|
||||
"4633": "issue, open",
|
||||
"4636": "issue, open",
|
||||
"4637": "issue, open",
|
||||
"4639": "issue, open",
|
||||
"4643": "issue, open",
|
||||
"4644": "issue, open",
|
||||
"4646": "issue, closed",
|
||||
"4654": "issue, open",
|
||||
"4658": "issue, closed",
|
||||
"4661": "issue, open",
|
||||
"4662": "issue, closed",
|
||||
"4665": "issue, closed",
|
||||
"4668": "issue, closed",
|
||||
"4672": "issue, open",
|
||||
"4673": "issue, closed",
|
||||
"4676": "issue, closed",
|
||||
"4679": "issue, closed",
|
||||
"4681": "issue, closed",
|
||||
"4683": "issue, open",
|
||||
"4684": "issue, open",
|
||||
"4685": "issue, open",
|
||||
"4689": "issue, open",
|
||||
"4690": "issue, open",
|
||||
"4694": "issue, open",
|
||||
"4696": "issue, open",
|
||||
"4697": "issue, open",
|
||||
"4699": "issue, open",
|
||||
"4700": "issue, open",
|
||||
"4701": "issue, closed",
|
||||
"4702": "issue, open",
|
||||
"4703": "issue, open",
|
||||
"4704": "issue, open",
|
||||
"4706": "issue, open",
|
||||
"4708": "issue, open",
|
||||
"4709": "issue, open",
|
||||
"4711": "issue, open",
|
||||
"4713": "issue, open",
|
||||
"4714": "issue, open",
|
||||
"4715": "issue, open",
|
||||
"4716": "issue, open",
|
||||
"4720": "issue, open",
|
||||
"4722": "issue, closed",
|
||||
"4723": "issue, open",
|
||||
"4724": "issue, closed",
|
||||
"4726": "issue, open",
|
||||
"4727": "issue, open",
|
||||
"4728": "issue, open",
|
||||
"4729": "issue, open",
|
||||
"4730": "issue, open",
|
||||
"4731": "issue, open",
|
||||
"4733": "issue, open",
|
||||
"4734": "issue, closed",
|
||||
"4735": "issue, open",
|
||||
"4736": "issue, open",
|
||||
"4737": "issue, open",
|
||||
"4738": "issue, closed",
|
||||
"4741": "issue, closed",
|
||||
"4742": "issue, open",
|
||||
"4743": "issue, open",
|
||||
"4744": "issue, open",
|
||||
"4750": "issue, open",
|
||||
"4753": "issue, open",
|
||||
"4755": "issue, open",
|
||||
"4756": "issue, open",
|
||||
"4760": "issue, open",
|
||||
"4761": "issue, open",
|
||||
"4763": "issue, open",
|
||||
"4768": "issue, open",
|
||||
"4772": "issue, open",
|
||||
"4775": "issue, open",
|
||||
"4777": "issue, open",
|
||||
"4782": "issue, open",
|
||||
"4783": "issue, closed",
|
||||
"4791": "issue, open",
|
||||
"4793": "issue, open",
|
||||
"4795": "issue, open",
|
||||
"4798": "issue, open",
|
||||
"4799": "issue, open",
|
||||
"4800": "issue, closed",
|
||||
"4803": "issue, open",
|
||||
"4805": "issue, open",
|
||||
"4806": "issue, open",
|
||||
"4807": "issue, open",
|
||||
"4810": "issue, open",
|
||||
"4814": "issue, closed",
|
||||
"4818": "issue, open",
|
||||
"4822": "issue, open",
|
||||
"4825": "issue, closed",
|
||||
"4826": "issue, open",
|
||||
"4827": "issue, open",
|
||||
"4828": "issue, open",
|
||||
"4829": "issue, open"
|
||||
}
|
||||
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4683"
|
||||
],
|
||||
"what": "a box cut from a 6-section loft (spline crown and a flat bottom at z = -1) whose last section lies on a plane tilted 2 deg off its neighbours', mirrored into one body; the box crosses the tilted end and reaches below the bottom face: truck's result shell was missing a face ('no result')",
|
||||
"source": "invariants",
|
||||
"method": "the mirrored loft is one solid symmetric about YZ, x -149..149; the box (x 91..240, y 90..210, z -2..118) cuts through its tilted end and out of its flat bottom, so the cut leaves one valid closed body. The loft's free-form volume is not closed-form. Synthetic sections of the report's shape (a crowned spline over a flat base, narrowing along x), not its numbers",
|
||||
"body_count": 1
|
||||
}
|
||||
+584
@@ -0,0 +1,584 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "construct.plane.offset",
|
||||
"params": {
|
||||
"base": "YZ",
|
||||
"offset": "0 mm",
|
||||
"name": "P0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "P0",
|
||||
"name": "S0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.spline.fit_point",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
300.0,
|
||||
2.0
|
||||
],
|
||||
[
|
||||
225.0,
|
||||
41.375
|
||||
],
|
||||
[
|
||||
150.0,
|
||||
69.5
|
||||
],
|
||||
[
|
||||
75.0,
|
||||
86.375
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
92.0
|
||||
],
|
||||
[
|
||||
-75.0,
|
||||
86.375
|
||||
],
|
||||
[
|
||||
-150.0,
|
||||
69.5
|
||||
],
|
||||
[
|
||||
-225.0,
|
||||
41.375
|
||||
],
|
||||
[
|
||||
-300.0,
|
||||
2.0
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
-300.0,
|
||||
2.0
|
||||
],
|
||||
[
|
||||
-303.0,
|
||||
-1
|
||||
],
|
||||
[
|
||||
303.0,
|
||||
-1
|
||||
],
|
||||
[
|
||||
300.0,
|
||||
2.0
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "construct.plane.offset",
|
||||
"params": {
|
||||
"base": "YZ",
|
||||
"offset": "30 mm",
|
||||
"name": "P30"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "P30",
|
||||
"name": "S30"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.spline.fit_point",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
282.0,
|
||||
2.0
|
||||
],
|
||||
[
|
||||
211.5,
|
||||
36.7812
|
||||
],
|
||||
[
|
||||
141.0,
|
||||
61.625
|
||||
],
|
||||
[
|
||||
70.5,
|
||||
76.5312
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
81.5
|
||||
],
|
||||
[
|
||||
-70.5,
|
||||
76.5312
|
||||
],
|
||||
[
|
||||
-141.0,
|
||||
61.625
|
||||
],
|
||||
[
|
||||
-211.5,
|
||||
36.7812
|
||||
],
|
||||
[
|
||||
-282.0,
|
||||
2.0
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
-282.0,
|
||||
2.0
|
||||
],
|
||||
[
|
||||
-285.0,
|
||||
-1
|
||||
],
|
||||
[
|
||||
285.0,
|
||||
-1
|
||||
],
|
||||
[
|
||||
282.0,
|
||||
2.0
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "construct.plane.offset",
|
||||
"params": {
|
||||
"base": "YZ",
|
||||
"offset": "60 mm",
|
||||
"name": "P60"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "P60",
|
||||
"name": "S60"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.spline.fit_point",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
264.0,
|
||||
2.0
|
||||
],
|
||||
[
|
||||
198.0,
|
||||
32.1875
|
||||
],
|
||||
[
|
||||
132.0,
|
||||
53.75
|
||||
],
|
||||
[
|
||||
66.0,
|
||||
66.6875
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
71.0
|
||||
],
|
||||
[
|
||||
-66.0,
|
||||
66.6875
|
||||
],
|
||||
[
|
||||
-132.0,
|
||||
53.75
|
||||
],
|
||||
[
|
||||
-198.0,
|
||||
32.1875
|
||||
],
|
||||
[
|
||||
-264.0,
|
||||
2.0
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
-264.0,
|
||||
2.0
|
||||
],
|
||||
[
|
||||
-267.0,
|
||||
-1
|
||||
],
|
||||
[
|
||||
267.0,
|
||||
-1
|
||||
],
|
||||
[
|
||||
264.0,
|
||||
2.0
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "construct.plane.offset",
|
||||
"params": {
|
||||
"base": "YZ",
|
||||
"offset": "100 mm",
|
||||
"name": "P100"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "P100",
|
||||
"name": "S100"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.spline.fit_point",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
240.0,
|
||||
2.0
|
||||
],
|
||||
[
|
||||
180.0,
|
||||
26.0625
|
||||
],
|
||||
[
|
||||
120.0,
|
||||
43.25
|
||||
],
|
||||
[
|
||||
60.0,
|
||||
53.5625
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
57.0
|
||||
],
|
||||
[
|
||||
-60.0,
|
||||
53.5625
|
||||
],
|
||||
[
|
||||
-120.0,
|
||||
43.25
|
||||
],
|
||||
[
|
||||
-180.0,
|
||||
26.0625
|
||||
],
|
||||
[
|
||||
-240.0,
|
||||
2.0
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
-240.0,
|
||||
2.0
|
||||
],
|
||||
[
|
||||
-243.0,
|
||||
-1
|
||||
],
|
||||
[
|
||||
243.0,
|
||||
-1
|
||||
],
|
||||
[
|
||||
240.0,
|
||||
2.0
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "construct.plane.offset",
|
||||
"params": {
|
||||
"base": "YZ",
|
||||
"offset": "130 mm",
|
||||
"name": "P130"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "P130",
|
||||
"name": "S130"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.spline.fit_point",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
222.0,
|
||||
2.0
|
||||
],
|
||||
[
|
||||
166.5,
|
||||
21.4688
|
||||
],
|
||||
[
|
||||
111.0,
|
||||
35.375
|
||||
],
|
||||
[
|
||||
55.5,
|
||||
43.7188
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
46.5
|
||||
],
|
||||
[
|
||||
-55.5,
|
||||
43.7188
|
||||
],
|
||||
[
|
||||
-111.0,
|
||||
35.375
|
||||
],
|
||||
[
|
||||
-166.5,
|
||||
21.4688
|
||||
],
|
||||
[
|
||||
-222.0,
|
||||
2.0
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
-222.0,
|
||||
2.0
|
||||
],
|
||||
[
|
||||
-225.0,
|
||||
-1
|
||||
],
|
||||
[
|
||||
225.0,
|
||||
-1
|
||||
],
|
||||
[
|
||||
222.0,
|
||||
2.0
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
149.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"y_dir": [
|
||||
-0.034899,
|
||||
0.0,
|
||||
0.999391
|
||||
]
|
||||
},
|
||||
"name": "S149"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.spline.fit_point",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
210.6,
|
||||
2.0
|
||||
],
|
||||
[
|
||||
157.95,
|
||||
18.5594
|
||||
],
|
||||
[
|
||||
105.3,
|
||||
30.3875
|
||||
],
|
||||
[
|
||||
52.65,
|
||||
37.4844
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
39.85
|
||||
],
|
||||
[
|
||||
-52.65,
|
||||
37.4844
|
||||
],
|
||||
[
|
||||
-105.3,
|
||||
30.3875
|
||||
],
|
||||
[
|
||||
-157.95,
|
||||
18.5594
|
||||
],
|
||||
[
|
||||
-210.6,
|
||||
2.0
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
-210.6,
|
||||
2.0
|
||||
],
|
||||
[
|
||||
-213.6,
|
||||
-1
|
||||
],
|
||||
[
|
||||
213.6,
|
||||
-1
|
||||
],
|
||||
[
|
||||
210.6,
|
||||
2.0
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.loft",
|
||||
"params": {
|
||||
"sections": [
|
||||
{
|
||||
"sketch": "S0"
|
||||
},
|
||||
{
|
||||
"sketch": "S30"
|
||||
},
|
||||
{
|
||||
"sketch": "S60"
|
||||
},
|
||||
{
|
||||
"sketch": "S100"
|
||||
},
|
||||
{
|
||||
"sketch": "S130"
|
||||
},
|
||||
{
|
||||
"sketch": "S149"
|
||||
}
|
||||
],
|
||||
"body_name": "Top",
|
||||
"name": "Top"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.mirror",
|
||||
"params": {
|
||||
"bodies": [
|
||||
"Top"
|
||||
],
|
||||
"plane": "YZ",
|
||||
"combine": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 149,
|
||||
"width": 120,
|
||||
"height": 120,
|
||||
"center": [
|
||||
165.5,
|
||||
150.0,
|
||||
58.0
|
||||
],
|
||||
"operation": "new",
|
||||
"body_name": "K"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.combine",
|
||||
"params": {
|
||||
"target": "Top",
|
||||
"tools": [
|
||||
"K"
|
||||
],
|
||||
"operation": "cut"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4689",
|
||||
"tangency-labs/solidcraft#5317",
|
||||
"tangency-labs/solidcraft#4521"
|
||||
],
|
||||
"what": "an L profile whose long leg lies on the revolve axis (the axis is the profile's own line), revolved 360 deg: the flat faces came out split into three 120 deg sectors",
|
||||
"source": "analytic",
|
||||
"method": "a disc r20 x 5 under a post r5 x 25: V = pi 400 5 + pi 25 25 = 8246.681. Faces: bottom, disc side, the ring on its top, post side, post top = 5 (each flat face one face)",
|
||||
"body_count": 1,
|
||||
"faces": 5,
|
||||
"volume_mm3": 8246.6807
|
||||
}
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
},
|
||||
"name": "Profile"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
20,
|
||||
0
|
||||
],
|
||||
[
|
||||
20,
|
||||
5
|
||||
],
|
||||
[
|
||||
5,
|
||||
5
|
||||
],
|
||||
[
|
||||
5,
|
||||
30
|
||||
],
|
||||
[
|
||||
0,
|
||||
30
|
||||
]
|
||||
],
|
||||
"closed": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.revolve",
|
||||
"params": {
|
||||
"sketch": "Profile",
|
||||
"axis": "l6",
|
||||
"angle": "360 deg"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4708"
|
||||
],
|
||||
"what": "a slot revolve-cut through the wall of a shelled cup (r 22.5, 2 mm walls) over 30 deg: the revolve cut (and the same cut as a combine) did nothing (synthetic: the report's cup also had a chamfer and a fillet)",
|
||||
"source": "analytic",
|
||||
"method": "cup pi 22.5^2 10 - pi 20.5^2 8; the slot's section (r 19..24, z 5..8) crosses the wall r 20.5..22.5: it removes (30/360) pi (22.5^2 - 20.5^2) 3",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 5274.7341
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 22.5,
|
||||
"height": 10,
|
||||
"body_name": "Cup"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.shell",
|
||||
"params": {
|
||||
"faces": [
|
||||
[
|
||||
0,
|
||||
0,
|
||||
10
|
||||
]
|
||||
],
|
||||
"thickness": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
},
|
||||
"name": "Slot",
|
||||
"project_edges": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.two_point",
|
||||
"params": {
|
||||
"p0": [
|
||||
19,
|
||||
5
|
||||
],
|
||||
"p1": [
|
||||
24,
|
||||
8
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.revolve",
|
||||
"params": {
|
||||
"sketch": "Slot",
|
||||
"axis": "y",
|
||||
"angle": "30 deg",
|
||||
"operation": "cut",
|
||||
"targets": [
|
||||
"Cup"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -18,5 +18,97 @@
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4358",
|
||||
"why": "no kernel geometry: surface loft picks lost between copied sketches with the same curve ids (selection)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4454",
|
||||
"why": "no geometry: a profile that crosses the revolve axis is refused by design (bisecting it at the axis works)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4465",
|
||||
"why": "no kernel geometry: a surface pick kept by curve id resolves to the newest sketch (selection, dup of #4579)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4506",
|
||||
"why": "no geometry: Revolve about a construction axis is not looked up (\"unknown sketch line\", command parameters)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4521",
|
||||
"why": "duplicate of #4689: a profile edge on the revolve axis splits the flat faces"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4524",
|
||||
"why": "no reproduction: last command only (a loft join, 0.18.3), no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4525",
|
||||
"why": "no kernel geometry: boundary surface picks a curve by id from the wrong place (selection)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4528",
|
||||
"why": "no reproduction: a join of two user lofts, no message or design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4576",
|
||||
"why": "no geometry: Revolve about a construction axis (dup of #4506)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4579",
|
||||
"why": "no kernel geometry: surface loft picks by curve id resolve to the wrong sketch (selection; the loft itself builds)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4606",
|
||||
"why": "needs the user design: a swept body of 594 faces (512 cones, 64 spheres) revolve-cut"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4631",
|
||||
"why": "duplicate of tessellation/466-revolved-cone-tip-stays-smooth: a cone revolved from a triangle drawn wrong at its tip"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4644",
|
||||
"why": "UI only: Fair and Match Surface open no dialog"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4694",
|
||||
"why": "no reproduction: last command only (a revolve join), no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4696",
|
||||
"why": "no reproduction: a revolve join between cone and sphere faces of an unknown part, no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4697",
|
||||
"why": "no reproduction: last command only (a revolve join), no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4699",
|
||||
"why": "no reproduction: last command only (a revolve join), no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4704",
|
||||
"why": "no reproduction: a revolve join between cone and sphere faces of an unknown part, no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4715",
|
||||
"why": "no single right answer: a railed loft's shape between sections follows the rails' fitted spline (3D sketch fitting)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4729",
|
||||
"why": "no geometry: surface extrude has no To Object extent (feature request)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4730",
|
||||
"why": "no reproduction: a loft join hangs on a user's part, no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4737",
|
||||
"why": "no kernel geometry: surface extrude takes the newest sketch's curve of the same id (selection, dup of #4465)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4738",
|
||||
"why": "no geometry: Revolve about a construction axis (dup of #4506)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4828",
|
||||
"why": "needs the author's real duct part (STEP operands of a user design); a performance case"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4726"
|
||||
],
|
||||
"what": "a modelled M48x0.75 thread over the whole 25 mm of a O48 bolt (33 turns): the browser build froze; coarse pitches and 4 mm of it worked, slowly",
|
||||
"source": "invariants",
|
||||
"method": "a modelled external thread on its own nominal shaft: one valid closed body within the case's timeout (slow by nature: 600 s); the helical faces have no closed-form volume",
|
||||
"body_count": 1,
|
||||
"timeout_s": 600
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"diameter": 48,
|
||||
"height": 25,
|
||||
"body_name": "Bolt"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.thread",
|
||||
"params": {
|
||||
"face": [
|
||||
24,
|
||||
0,
|
||||
12.5
|
||||
],
|
||||
"designation": "M48x0.75",
|
||||
"length": 25,
|
||||
"modeled": true
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -14,5 +14,49 @@
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4414",
|
||||
"why": "no geometry: left-handed threads (feature request)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4494",
|
||||
"why": "duplicate of threads/3311-two-tapped-holes-both-modelled-threaded: a modelled thread re-faceting the body's other faces (a fillet here)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4537",
|
||||
"why": "duplicate of threads/3311-two-tapped-holes-both-modelled-threaded: a second modelled thread on the same body finds no cylinder"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4577",
|
||||
"why": "no geometry: custom thread designations exist (M33.25x1.25 works)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4665",
|
||||
"why": "no geometry: the GPU pick buffer (render)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4672",
|
||||
"why": "duplicate of threads/3311-two-tapped-holes-both-modelled-threaded: a modelled thread facets the other round faces; no sizes"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4684",
|
||||
"why": "no geometry: gear generator and offsettable threads (feature requests)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4727",
|
||||
"why": "duplicate of threads/3311-two-tapped-holes-both-modelled-threaded: modelled threads are faceted; no sizes"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4734",
|
||||
"why": "no geometry: see-through bodies sorted per triangle (render)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4735",
|
||||
"why": "no geometry: a tapered coil (feature request)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4736",
|
||||
"why": "duplicate of threads/3311-two-tapped-holes-both-modelled-threaded: a modelled thread facets the body; no sizes"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4799",
|
||||
"why": "no geometry: cosmetic threads don't cut the model, by design"
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user