mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-03 10:35:58 +00:00
kernel-cases: #4161–#4431 triaged: 19 cases, 93 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,10 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4286"
|
||||
],
|
||||
"what": "a body split by a plane, its two pieces joined back, flush on the split faces (the report's part was an imported vendor connector; synthetic: a block with a bore and a boss, both cut by the plane): the join never finished",
|
||||
"source": "analytic",
|
||||
"method": "the pieces meet over the whole split face, so the join gives the body back: V = 60*40*20 - pi 36 20 + pi 36 10 = 46869.027, one body",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 46869.0266
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"corner": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"length": 60,
|
||||
"width": 40,
|
||||
"height": 20,
|
||||
"body_name": "Block"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 6,
|
||||
"height": 22,
|
||||
"base": [
|
||||
30,
|
||||
28,
|
||||
-1
|
||||
],
|
||||
"operation": "cut",
|
||||
"targets": [
|
||||
"Block"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 6,
|
||||
"height": 10,
|
||||
"base": [
|
||||
30,
|
||||
10,
|
||||
20
|
||||
],
|
||||
"operation": "join",
|
||||
"targets": [
|
||||
"Block"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.split_body",
|
||||
"params": {
|
||||
"body": "Block",
|
||||
"plane": {
|
||||
"origin": [
|
||||
30,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"normal": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.combine",
|
||||
"params": {
|
||||
"target": "Block",
|
||||
"tools": [
|
||||
"Block (1)"
|
||||
],
|
||||
"operation": "join"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4294"
|
||||
],
|
||||
"what": "a symmetric through-all cut by a 45 deg wedge across the end of a slotted ring (r 22.5..40, a 3 mm slot, 75 mm long): truck left a stray planar sheet out to the sketch's boundary at x = -65, with no error",
|
||||
"source": "analytic",
|
||||
"method": "the ring section (YZ) is the annulus less the slot |y| < 1.5 above it: A = pi*(40^2-22.5^2) - Int_-1.5^1.5 (sqrt(1600-y^2)-sqrt(506.25-y^2)) dy. The XZ sketch has y = -Z, so the wedge is z >= -0.014, x <= -37.5 + z + 0.014, through all y: it removes Int over the section with z >= -0.014 of (z + 0.014) dA (python quadrature). V = 75*A - removed. Nothing may stand outside the ring: bbox x -37.5..37.5, y -40..40, z -40..39.97186 (the outer arc at the slot)",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 220314.0171,
|
||||
"bbox": {
|
||||
"min": [
|
||||
-37.5,
|
||||
-40.0,
|
||||
-40.0
|
||||
],
|
||||
"max": [
|
||||
37.5,
|
||||
40.0,
|
||||
39.97186
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,131 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "YZ",
|
||||
"name": "Slotted ring"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
-1.5,
|
||||
22.45
|
||||
],
|
||||
"through": [
|
||||
0,
|
||||
-22.5
|
||||
],
|
||||
"end": [
|
||||
1.5,
|
||||
22.45
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
1.5,
|
||||
22.45
|
||||
],
|
||||
[
|
||||
1.5,
|
||||
39.972
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
1.5,
|
||||
39.972
|
||||
],
|
||||
"through": [
|
||||
0,
|
||||
-40
|
||||
],
|
||||
"end": [
|
||||
-1.5,
|
||||
39.972
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
-1.5,
|
||||
39.972
|
||||
],
|
||||
[
|
||||
-1.5,
|
||||
22.45
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"distance": 75,
|
||||
"direction": "symmetric",
|
||||
"operation": "new_body"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "XZ",
|
||||
"name": "Oblique cut"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
-37.5,
|
||||
0.014
|
||||
],
|
||||
[
|
||||
14.033,
|
||||
-51.519
|
||||
],
|
||||
[
|
||||
-65.453,
|
||||
-51.519
|
||||
],
|
||||
[
|
||||
-65.453,
|
||||
0.014
|
||||
]
|
||||
],
|
||||
"closed": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"through_all": true,
|
||||
"distance": 10,
|
||||
"direction": "symmetric",
|
||||
"operation": "cut"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4313"
|
||||
],
|
||||
"what": "nine identical rings (r 10..20, 5 thick) in a 3x3 grid 38 apart, each overlapping its edge neighbours, joined in one combine: ~90 s then 'boolean Union: no result' (one pair already failed)",
|
||||
"source": "analytic",
|
||||
"method": "each ring pi (20^2-10^2) 5; the 12 edge-neighbour pairs overlap in a lens of two r20 circles 38 apart, 2 R^2 acos(d/2R) - (d/2) sqrt(4R^2-d^2), all of it in both rings' material (its points are at least 19 from both centres); diagonal pairs are 53.7 apart and don't meet. V = 9 * 1500 pi - 12 * 5 * lens. One shell",
|
||||
"body_count": 1,
|
||||
"shells": 1,
|
||||
"volume_mm3": 41407.1957
|
||||
}
|
||||
@@ -0,0 +1,282 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 20,
|
||||
"height": 5,
|
||||
"base": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"body_name": "Ring00"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 10,
|
||||
"height": 7,
|
||||
"base": [
|
||||
0,
|
||||
0,
|
||||
-1
|
||||
],
|
||||
"operation": "cut",
|
||||
"targets": [
|
||||
"Ring00"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 20,
|
||||
"height": 5,
|
||||
"base": [
|
||||
0,
|
||||
38,
|
||||
0
|
||||
],
|
||||
"body_name": "Ring01"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 10,
|
||||
"height": 7,
|
||||
"base": [
|
||||
0,
|
||||
38,
|
||||
-1
|
||||
],
|
||||
"operation": "cut",
|
||||
"targets": [
|
||||
"Ring01"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 20,
|
||||
"height": 5,
|
||||
"base": [
|
||||
0,
|
||||
76,
|
||||
0
|
||||
],
|
||||
"body_name": "Ring02"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 10,
|
||||
"height": 7,
|
||||
"base": [
|
||||
0,
|
||||
76,
|
||||
-1
|
||||
],
|
||||
"operation": "cut",
|
||||
"targets": [
|
||||
"Ring02"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 20,
|
||||
"height": 5,
|
||||
"base": [
|
||||
38,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"body_name": "Ring10"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 10,
|
||||
"height": 7,
|
||||
"base": [
|
||||
38,
|
||||
0,
|
||||
-1
|
||||
],
|
||||
"operation": "cut",
|
||||
"targets": [
|
||||
"Ring10"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 20,
|
||||
"height": 5,
|
||||
"base": [
|
||||
38,
|
||||
38,
|
||||
0
|
||||
],
|
||||
"body_name": "Ring11"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 10,
|
||||
"height": 7,
|
||||
"base": [
|
||||
38,
|
||||
38,
|
||||
-1
|
||||
],
|
||||
"operation": "cut",
|
||||
"targets": [
|
||||
"Ring11"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 20,
|
||||
"height": 5,
|
||||
"base": [
|
||||
38,
|
||||
76,
|
||||
0
|
||||
],
|
||||
"body_name": "Ring12"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 10,
|
||||
"height": 7,
|
||||
"base": [
|
||||
38,
|
||||
76,
|
||||
-1
|
||||
],
|
||||
"operation": "cut",
|
||||
"targets": [
|
||||
"Ring12"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 20,
|
||||
"height": 5,
|
||||
"base": [
|
||||
76,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"body_name": "Ring20"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 10,
|
||||
"height": 7,
|
||||
"base": [
|
||||
76,
|
||||
0,
|
||||
-1
|
||||
],
|
||||
"operation": "cut",
|
||||
"targets": [
|
||||
"Ring20"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 20,
|
||||
"height": 5,
|
||||
"base": [
|
||||
76,
|
||||
38,
|
||||
0
|
||||
],
|
||||
"body_name": "Ring21"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 10,
|
||||
"height": 7,
|
||||
"base": [
|
||||
76,
|
||||
38,
|
||||
-1
|
||||
],
|
||||
"operation": "cut",
|
||||
"targets": [
|
||||
"Ring21"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 20,
|
||||
"height": 5,
|
||||
"base": [
|
||||
76,
|
||||
76,
|
||||
0
|
||||
],
|
||||
"body_name": "Ring22"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 10,
|
||||
"height": 7,
|
||||
"base": [
|
||||
76,
|
||||
76,
|
||||
-1
|
||||
],
|
||||
"operation": "cut",
|
||||
"targets": [
|
||||
"Ring22"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.combine",
|
||||
"params": {
|
||||
"target": "Ring00",
|
||||
"tools": [
|
||||
"Ring01",
|
||||
"Ring02",
|
||||
"Ring10",
|
||||
"Ring11",
|
||||
"Ring12",
|
||||
"Ring20",
|
||||
"Ring21",
|
||||
"Ring22"
|
||||
],
|
||||
"operation": "join"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4322"
|
||||
],
|
||||
"what": "a 6x7 rectangle with one corner exactly on the slanted top edge of a triangular prism, joined 10 mm up: 'profile loop is not closed' on 0.17",
|
||||
"source": "analytic",
|
||||
"method": "triangle (0,0),(40,0),(20,30) x 10 = 6000; the rectangle (10,8)-(16,15) lies on the top face with its corner (10,15) on the edge y = 1.5x: + 6*7*10 = 420. V = 6420 (the triage's numbers)",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 6420.0
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "XY"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
40,
|
||||
0
|
||||
],
|
||||
[
|
||||
20,
|
||||
30
|
||||
]
|
||||
],
|
||||
"closed": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"distance": 10
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"face": [
|
||||
20,
|
||||
10,
|
||||
10
|
||||
]
|
||||
},
|
||||
"project_edges": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.two_point",
|
||||
"params": {
|
||||
"p0": [
|
||||
10,
|
||||
8
|
||||
],
|
||||
"p1": [
|
||||
16,
|
||||
15
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"distance": 10,
|
||||
"operation": "join"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4347"
|
||||
],
|
||||
"what": "a 60x60 slab sketched on the base of a tapered square pyramid frustum and extruded 10 mm away from it as a join: 'join cannot preserve the original faces; check for zero-thickness edge contact'",
|
||||
"source": "analytic",
|
||||
"method": "frustum from 40x40 at z 0 to (40 - 2*20 tan20)^2 at z 20: V = 20/3 (A0 + A1 + sqrt(A0 A1)); the slab 60x60x10 under it (z -10..0; the sketch on the base faces down) shares the whole base face: one body. V = frustum + 36000. Faces: frustum 4 sloped + top, slab 4 sides + bottom + the ring of its top left round the base = 11",
|
||||
"body_count": 1,
|
||||
"faces": 11,
|
||||
"volume_mm3": 57766.012
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "XY"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"corner": [
|
||||
20,
|
||||
20
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"distance": 20,
|
||||
"taper": "-20 deg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"face": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"project_edges": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"corner": [
|
||||
30,
|
||||
30
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"distance": 10,
|
||||
"operation": "join"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4431"
|
||||
],
|
||||
"what": "a line of text (22 letters, 7.81 mm high) on a block's top face, running over the block's edge, cut 1 mm deep with a -5 deg taper: 145 s in truck (the untapered cut takes 1 s)",
|
||||
"source": "invariants",
|
||||
"method": "a 1 mm cut of glyphs into a 40 mm block leaves one valid closed body; the glyph areas are not closed-form, so only the outcome is graded, within the run's timeout (truck took 145 s; over the edge with a join it never finished)",
|
||||
"body_count": 1
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "XY"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.two_point",
|
||||
"params": {
|
||||
"p0": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"p1": [
|
||||
105,
|
||||
26
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"distance": 40
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"face": [
|
||||
50,
|
||||
13,
|
||||
40
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.text",
|
||||
"params": {
|
||||
"text": "textvraiment tres long",
|
||||
"at": [
|
||||
-6,
|
||||
20
|
||||
],
|
||||
"height": 7.81
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "Sketch2",
|
||||
"distance": "-1 mm",
|
||||
"operation": "cut",
|
||||
"taper": "-5 deg"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,146 @@
|
||||
[
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4163",
|
||||
"why": "UI only: keyboard shortcut editor"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4164",
|
||||
"why": "no geometry: the settings file damaged by two windows saving (app)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4184",
|
||||
"why": "no reproduction: Split Body of a user's part by a plane (0.16.2, 88 bodies), no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4190",
|
||||
"why": "UI only: a request to look like another CAD program"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4193",
|
||||
"why": "no geometry: sketch Mirror about an origin axis (sketch)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4195",
|
||||
"why": "no reproduction: a join of four flush profiles on a user's part with 26 cylinder faces, no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4210",
|
||||
"why": "duplicate of booleans/831-tapered-extrude-d-shape-arc-meets-line: a tapered cut whose arcs meet lines at corners (0.16.2)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4211",
|
||||
"why": "no reproduction: last command only (a 10 mm join), no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4213",
|
||||
"why": "no reproduction: last command only, the unexpected result not described"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4214",
|
||||
"why": "UI only: the viewport grid fade"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4218",
|
||||
"why": "no reproduction: Combine of columns with a wall shown by screenshot, no message"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4224",
|
||||
"why": "no kernel geometry: a cut reaching a hidden body (target choice, dup of #3961)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4240",
|
||||
"why": "no geometry: sketch Mirror about an origin axis (dup of #4193)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4249",
|
||||
"why": "no reproduction: last command and a screenshot of an unknown part"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4259",
|
||||
"why": "no geometry: an offset plane can't attach to a face whose history is ambiguous (document, dup of #4325)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4262",
|
||||
"why": "no reproduction: last command only, the unexpected result not described"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4273",
|
||||
"why": "no geometry: posted by mistake, empty"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4278",
|
||||
"why": "no reproduction: last command only (a face cut on an unknown 3-feature part)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4287",
|
||||
"why": "UI only: a selection size readout (dup of #2314)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4289",
|
||||
"why": "no geometry: the report arrived empty"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4316",
|
||||
"why": "no reproduction: a screenshot only"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4317",
|
||||
"why": "no reproduction: a ring cut by two inner parts, no sizes or design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4348",
|
||||
"why": "no reproduction: no message, no command and no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4355",
|
||||
"why": "no geometry: a cut in a component other than the active one (document, dup of #4639)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4361",
|
||||
"why": "needs the user design: a revolved and lofted leaf-blower body with 25 features; no small stand-in shows the same geometry"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4383",
|
||||
"why": "no reproduction: last command only (a cut leaving touching lumps, 0.17.0), no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4384",
|
||||
"why": "UI only: one position input for features placed on a face (feature request)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4388",
|
||||
"why": "UI only: a selection size readout (dup of #2314)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4394",
|
||||
"why": "no geometry: the macOS disk image freezes Finder"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4401",
|
||||
"why": "no reproduction: last command only, and the reporter says it no longer fails that way"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4408",
|
||||
"why": "no reproduction: last command only (a 38 mm join), no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4412",
|
||||
"why": "UI only: no preview while dragging a sketch pattern's spacing"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4413",
|
||||
"why": "no geometry: a cut in a component other than the active one (document, dup of #4639)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4417",
|
||||
"why": "UI only: browser hover highlight"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4421",
|
||||
"why": "no geometry: renames lose plastic rules and hidden state (document)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4424",
|
||||
"why": "no geometry: a cut in a component other than the active one (document, dup of #4639)"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,82 @@
|
||||
[
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4172",
|
||||
"why": "render: lost GPU device (wgpu), no geometry"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4180",
|
||||
"why": "no reproduction: a chamfer's edge points only, the design stays on the reporter's computer (truck intersection-curve tolerance panic)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4181",
|
||||
"why": "no geometry: unclean exit after a body rename, nothing running"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4186",
|
||||
"why": "no geometry: viewport speed on a 2,146-body STEP assembly (render)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4188",
|
||||
"why": "render: lost GPU device (wgpu), no geometry"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4215",
|
||||
"why": "render: lost GPU device (wgpu), no geometry"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4237",
|
||||
"why": "no geometry: unclean exit with no command and no replay"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4243",
|
||||
"why": "no geometry: unclean exit after a selection, nothing running"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4244",
|
||||
"why": "no geometry: unclean exit after a selection, nothing running"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4246",
|
||||
"why": "no geometry: unclean exit while sketching, nothing running"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4254",
|
||||
"why": "no geometry: unclean exit with no command and no replay"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4255",
|
||||
"why": "UI only: a selection-mode switch (feature request)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4275",
|
||||
"why": "no geometry: viewport speed on a 662-body STEP import (render)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4290",
|
||||
"why": "no geometry: unclean exit after selections, nothing running"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4293",
|
||||
"why": "no reproduction: the display triangulation library's assertion, title only"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4319",
|
||||
"why": "duplicate of #2470: modelled M8 thread groove crash on Windows; the part is not given"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4329",
|
||||
"why": "render: lost GPU device (wgpu), no geometry"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4406",
|
||||
"why": "no geometry: unclean exit with no command and no replay"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4416",
|
||||
"why": "no geometry: unclean exit while dragging sketch geometry"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4422",
|
||||
"why": "render: wgpu surface not configured, no geometry"
|
||||
}
|
||||
]
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4174"
|
||||
],
|
||||
"what": "the concave arc where a cylinder (r10.5) stands on a block's top, its centre on the block's front edge so the arc runs out at the front face, filleted r2: refused ('each end of the edge must touch exactly one more face')",
|
||||
"source": "analytic",
|
||||
"method": "block 40x30x5 + cylinder pi 10.5^2 30 (half of it overhanging the front). The concave round runs round the half of the base circle over the block and ends flush with the front face y = 0: Pappus over 180 deg, pi (10.5 + c)(1 - pi/4) 2^2 with c = 2 - (2/6)/(1-pi/4) the corner region's centroid from the wall",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 16420.3385
|
||||
}
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"corner": [
|
||||
-20,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"length": 40,
|
||||
"width": 30,
|
||||
"height": 5,
|
||||
"body_name": "Block"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 10.5,
|
||||
"height": 30,
|
||||
"base": [
|
||||
0,
|
||||
0,
|
||||
5
|
||||
],
|
||||
"operation": "join",
|
||||
"targets": [
|
||||
"Block"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.fillet",
|
||||
"params": {
|
||||
"edges": [
|
||||
[
|
||||
0,
|
||||
10.5,
|
||||
5
|
||||
]
|
||||
],
|
||||
"radius": 2
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4265"
|
||||
],
|
||||
"what": "the top and bottom edges of a 5 mm tall face chamfered 2.5 mm each, so the two chamfers meet along the face's middle and use it up: truck refused it ('the blend is larger than the neighbouring faces'; the fillet worked)",
|
||||
"source": "analytic",
|
||||
"method": "each chamfer removes 2.5^2/2 x 40 = 125: V = 4000 - 250 = 3750. The y = 0 face is gone; the chamfers meet along a ridge at z = 2.5: faces top, bottom, back, two ends, two chamfers = 7",
|
||||
"body_count": 1,
|
||||
"faces": 7,
|
||||
"volume_mm3": 3750.0
|
||||
}
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"corner": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"length": 40,
|
||||
"width": 20,
|
||||
"height": 5
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.chamfer",
|
||||
"params": {
|
||||
"edges": [
|
||||
[
|
||||
20,
|
||||
0,
|
||||
5
|
||||
],
|
||||
[
|
||||
20,
|
||||
0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"distance": 2.5
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4332",
|
||||
"tangency-labs/solidcraft#4469"
|
||||
],
|
||||
"what": "a two-distance chamfer (1 mm across the top, 7 mm down the wall) round the top rim of a periodic fit-spline outline extruded 10: truck refused it ('loop edges must be lines or arcs'), though an equal chamfer of the same rim worked",
|
||||
"source": "invariants",
|
||||
"method": "the outline is smooth and convex enough everywhere for a 1 x 7 setback, so the chamfer exists round the whole tangent chain: one valid closed body. The spline's chamfer has no closed-form volume (the reporter's script)",
|
||||
"body_count": 1
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "XY"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.spline.fit_point",
|
||||
"params": {
|
||||
"periodic": true,
|
||||
"points": [
|
||||
[
|
||||
-11.4,
|
||||
-15.85
|
||||
],
|
||||
[
|
||||
8.76,
|
||||
-18.38
|
||||
],
|
||||
[
|
||||
25.67,
|
||||
-12.81
|
||||
],
|
||||
[
|
||||
32.16,
|
||||
3.86
|
||||
],
|
||||
[
|
||||
16.49,
|
||||
26.89
|
||||
],
|
||||
[
|
||||
-9.75,
|
||||
30.42
|
||||
],
|
||||
[
|
||||
-23.79,
|
||||
7.12
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"distance": 10
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.chamfer",
|
||||
"params": {
|
||||
"distance": "1 mm",
|
||||
"distance2": "7 mm",
|
||||
"edges": [
|
||||
[
|
||||
-23.79,
|
||||
7.12,
|
||||
10
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4365",
|
||||
"tangency-labs/solidcraft#4222"
|
||||
],
|
||||
"what": "the top outline of a 60x40 r10 rounded block filleted r2 along its tangent chain, where a boss (r10, 10 high) standing over a corner of the outline interrupts it: refused ('a vertex of the edge chain where other faces meet')",
|
||||
"source": "invariants",
|
||||
"method": "the round runs round the outline from the boss's wall to its wall and ends against it; how the rolling ball closes on the boss's cylinder has no closed form, so only the outcome is graded: one valid closed body (the reporter's standard test, rebuilt from its screenshot)",
|
||||
"body_count": 1
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "XY",
|
||||
"name": "Base"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.rounded",
|
||||
"params": {
|
||||
"p0": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"p1": [
|
||||
60,
|
||||
40
|
||||
],
|
||||
"radius": 10
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "Base",
|
||||
"distance": 10,
|
||||
"body_name": "Base"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 10,
|
||||
"height": 10,
|
||||
"base": [
|
||||
12,
|
||||
32,
|
||||
10
|
||||
],
|
||||
"operation": "join",
|
||||
"targets": [
|
||||
"Base"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.fillet",
|
||||
"params": {
|
||||
"edges": [
|
||||
[
|
||||
30,
|
||||
0,
|
||||
10
|
||||
]
|
||||
],
|
||||
"radius": 2
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4369"
|
||||
],
|
||||
"what": "the concave arc where a boss (r10) stands on a rounded block, the boss overhanging the block's corner so the arc runs out at the outer wall, filleted r2: refused ('a vertex of the edge chain where other faces meet: only straight edges can be blended')",
|
||||
"source": "invariants",
|
||||
"method": "the round runs along the arc over the block and ends where the arc meets the block's outer wall; its end there has no closed form, so only the outcome is graded: one valid closed body (the reporter's standard test, rebuilt from its screenshot)",
|
||||
"body_count": 1
|
||||
}
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "XY",
|
||||
"name": "Base"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.rounded",
|
||||
"params": {
|
||||
"p0": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"p1": [
|
||||
60,
|
||||
40
|
||||
],
|
||||
"radius": 10
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "Base",
|
||||
"distance": 10,
|
||||
"body_name": "Base"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 10,
|
||||
"height": 10,
|
||||
"base": [
|
||||
12,
|
||||
32,
|
||||
10
|
||||
],
|
||||
"operation": "join",
|
||||
"targets": [
|
||||
"Base"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.fillet",
|
||||
"params": {
|
||||
"edges": [
|
||||
[
|
||||
22,
|
||||
32,
|
||||
10
|
||||
]
|
||||
],
|
||||
"radius": 2
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
[
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4187",
|
||||
"why": "no geometry: the fillet guard refusing radii that overlap (largest that fits 0.38 mm), as designed"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4222",
|
||||
"why": "no reproduction: a fillet chain on an unknown part, screenshots only"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4235",
|
||||
"why": "no reproduction: a 0.5 mm chamfer of a curved chain on an unknown part (0.18.2)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4241",
|
||||
"why": "no reproduction: a screenshot only"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4261",
|
||||
"why": "no reproduction: four bottom edges of an unknown part (a stated limit, the blend uses up a face)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4269",
|
||||
"why": "no reproduction: a 3-edge chain on an unknown part (0.18.2), no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4276",
|
||||
"why": "no reproduction: three curved edges of an unknown part (0.18.2), no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4336",
|
||||
"why": "no geometry: a sketch fillet between a circle and a line (sketch command)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4341",
|
||||
"why": "no kernel geometry: fillet and chamfer edges found again by position jump to another body (feature references)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4346",
|
||||
"why": "no reproduction: a long curved edge chain on an unknown part (0.18.2), no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4366",
|
||||
"why": "no reproduction: a 0.2 mm chamfer chain on an unknown part (0.11.1)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4373",
|
||||
"why": "no reproduction: one edge on an unknown part ending at a face parallel to it, no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4428",
|
||||
"why": "no reproduction: three edges ending at a face parallel to them on an unknown part, no design"
|
||||
},
|
||||
{
|
||||
"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"
|
||||
}
|
||||
]
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4238"
|
||||
],
|
||||
"what": "after a STEP round trip, a ring (r 4..6) sketched on a bored boss's top face and cut 15 mm down through the boss and the plate to widen the bore: 'boolean Cut: no result' on the imported body (the same cut worked on the part built in SolidCraft)",
|
||||
"source": "analytic",
|
||||
"method": "plate 60x40x5 + boss r10 x 10 less the bore, widened from r4 to r6 through both: V = 12000 + pi*100*10 - pi*36*15. The ring's sketch lies on the boss top (z 15); the cut's 15 mm reach the plate's bottom face (z 0) exactly",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 13445.1326
|
||||
}
|
||||
+127
@@ -0,0 +1,127 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"corner": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"length": 60,
|
||||
"width": 40,
|
||||
"height": 5,
|
||||
"body_name": "Plate"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 10,
|
||||
"height": 10,
|
||||
"base": [
|
||||
30,
|
||||
20,
|
||||
5
|
||||
],
|
||||
"operation": "join",
|
||||
"targets": [
|
||||
"Plate"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 4,
|
||||
"height": 17,
|
||||
"base": [
|
||||
30,
|
||||
20,
|
||||
-1
|
||||
],
|
||||
"operation": "cut",
|
||||
"targets": [
|
||||
"Plate"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.export",
|
||||
"params": {
|
||||
"path": "$OUT/kernel-case-4238.step",
|
||||
"format": "step"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.new",
|
||||
"params": {
|
||||
"name": "Reimported"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.insert_step",
|
||||
"params": {
|
||||
"path": "$OUT/kernel-case-4238.step"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"face": [
|
||||
37,
|
||||
20,
|
||||
15
|
||||
]
|
||||
},
|
||||
"name": "Ring",
|
||||
"project_edges": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
30,
|
||||
20
|
||||
],
|
||||
"radius": 6
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
30,
|
||||
20
|
||||
],
|
||||
"radius": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "Ring",
|
||||
"profiles": [
|
||||
{
|
||||
"point": [
|
||||
35,
|
||||
20
|
||||
]
|
||||
}
|
||||
],
|
||||
"distance": 15,
|
||||
"direction": "negative",
|
||||
"operation": "cut",
|
||||
"targets": [
|
||||
"Plate"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4315"
|
||||
],
|
||||
"what": "a 10 mm cube joined with an r3 cylinder lying along its top edge, through a STEP export and re-import, then split by the plane x = 2: after the round trip truck's split (and intersect) gave no result",
|
||||
"source": "analytic",
|
||||
"method": "the cylinder's axis is the cube's edge (y = 10, z = 10), so a quarter of it is inside the cube: V = 1000 + (3/4)*pi*9*10 = 1212.0575. The split at x = 2 keeps the total in two bodies",
|
||||
"body_count": 2,
|
||||
"volume_mm3": 1212.0575
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 10,
|
||||
"width": 10,
|
||||
"height": 10,
|
||||
"corner": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"body_name": "Cube"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 3,
|
||||
"height": 10,
|
||||
"base": [
|
||||
0,
|
||||
10,
|
||||
10
|
||||
],
|
||||
"axis": "X",
|
||||
"operation": "join",
|
||||
"targets": [
|
||||
"Cube"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.export",
|
||||
"params": {
|
||||
"path": "$OUT/kernel-case-4315.step",
|
||||
"format": "step"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.new",
|
||||
"params": {
|
||||
"name": "Reimported"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.insert_step",
|
||||
"params": {
|
||||
"path": "$OUT/kernel-case-4315.step"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.split_body",
|
||||
"params": {
|
||||
"body": "Cube",
|
||||
"plane": {
|
||||
"origin": [
|
||||
2,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"normal": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
[
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4260",
|
||||
"why": "UI only: count fields without step arrows"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4274",
|
||||
"why": "UI only: image canvas in sketches (feature request)"
|
||||
}
|
||||
]
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4328"
|
||||
],
|
||||
"what": "an L section 2 mm thick with its bend modelled round (inner r2, outer r4), converted to sheet metal with the bend picked: refused ('the face across the bend can't be a face of the sheet: curved faces in a converted sheet')",
|
||||
"source": "analytic",
|
||||
"method": "the section is a plate of even thickness 2 with a cylindrical bend between its legs, so it converts unchanged: V = (36*2 + 2*26 + (pi/4)(4^2-2^2))*20 = 2668.4956",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 2668.4956
|
||||
}
|
||||
@@ -0,0 +1,148 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
},
|
||||
"name": "Section"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
36,
|
||||
0
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
36,
|
||||
0
|
||||
],
|
||||
"through": [
|
||||
38.828427,
|
||||
1.171573
|
||||
],
|
||||
"end": [
|
||||
40,
|
||||
4
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
40,
|
||||
4
|
||||
],
|
||||
[
|
||||
40,
|
||||
30
|
||||
],
|
||||
[
|
||||
38,
|
||||
30
|
||||
],
|
||||
[
|
||||
38,
|
||||
4
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
38,
|
||||
4
|
||||
],
|
||||
"through": [
|
||||
37.414214,
|
||||
2.585786
|
||||
],
|
||||
"end": [
|
||||
36,
|
||||
2
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
36,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "Section",
|
||||
"distance": 20,
|
||||
"body_name": "Angle"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sheet.convert",
|
||||
"params": {
|
||||
"body": "Angle",
|
||||
"face": [
|
||||
18,
|
||||
-10,
|
||||
0
|
||||
],
|
||||
"bends": [
|
||||
[
|
||||
38.82842712474619,
|
||||
-10,
|
||||
1.1715728752538102
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
[
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4161",
|
||||
"why": "no geometry: Fold on a body that isn't sheet metal (dup of #2987)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4230",
|
||||
"why": "UI only: ribbon tab styles"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4297",
|
||||
"why": "no geometry: the report arrived empty"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4301",
|
||||
"why": "no geometry: Flange on a body that isn't sheet metal (dup of #2987)"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4377"
|
||||
],
|
||||
"what": "a cone frustum (r 10 at the bottom, 20 at the top, 38.1 high) shelled 0.125 with both its ends removed, leaving a conical tube: truck refused it ('a corner whose faces don't meet the same way after the move')",
|
||||
"source": "analytic",
|
||||
"method": "the wall is the side offset 0.125 normal to the cone, inward: half-angle a = atan(10/38.1), inner radii r - 0.125/cos(a) at both ends; both ends are open, so V = pi h/3 (R1^2+R1R2+R2^2) - pi h/3 (r1^2+r1r2+r2^2). Faces: outer and inner cones, the two end rings = 4",
|
||||
"body_count": 1,
|
||||
"faces": 4,
|
||||
"volume_mm3": 462.0591
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"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
|
||||
],
|
||||
[
|
||||
10,
|
||||
0
|
||||
],
|
||||
[
|
||||
20,
|
||||
38.1
|
||||
],
|
||||
[
|
||||
0,
|
||||
38.1
|
||||
]
|
||||
],
|
||||
"closed": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.revolve",
|
||||
"params": {
|
||||
"sketch": "Profile",
|
||||
"axis": "y",
|
||||
"body_name": "Cone"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.shell",
|
||||
"params": {
|
||||
"faces": [
|
||||
[
|
||||
3,
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
3,
|
||||
0,
|
||||
38.1
|
||||
]
|
||||
],
|
||||
"thickness": "0.125"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
[
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4194",
|
||||
"why": "no geometry: the report arrived empty, and the error didn't come back"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4279",
|
||||
"why": "no reproduction: shell of a user's part with a free-form face (dup of #2432), no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4285",
|
||||
"why": "UI only: sketch offset's second distance has no drag handle"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4300",
|
||||
"why": "UI only: sketch offset's drag handle goes one way"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4306",
|
||||
"why": "no reproduction: shell of a user's part with a free-form face (dup of #2432), screenshot only"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4331",
|
||||
"why": "no reproduction: the report arrived empty (a screenshot)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4345",
|
||||
"why": "no kernel geometry: an offset plane's origin placed at the world origin's foot (construction)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4385",
|
||||
"why": "UI only: sketch offset's second distance dimension"
|
||||
}
|
||||
]
|
||||
@@ -1571,5 +1571,117 @@
|
||||
"4154": "issue or PR, newer than this list",
|
||||
"4155": "issue or PR, newer than this list",
|
||||
"4157": "issue or PR, newer than this list",
|
||||
"4160": "issue or PR, newer than this list"
|
||||
"4160": "issue or PR, newer than this list",
|
||||
"4161": "issue, closed",
|
||||
"4163": "issue, open",
|
||||
"4164": "issue, open",
|
||||
"4165": "issue, open",
|
||||
"4172": "issue, closed",
|
||||
"4173": "issue, open",
|
||||
"4174": "issue, open",
|
||||
"4180": "issue, open",
|
||||
"4181": "issue, open",
|
||||
"4183": "issue, open",
|
||||
"4184": "issue, open",
|
||||
"4186": "issue, open",
|
||||
"4187": "issue, open",
|
||||
"4188": "issue, closed",
|
||||
"4190": "issue, open",
|
||||
"4191": "issue, open",
|
||||
"4193": "issue, open",
|
||||
"4194": "issue, open",
|
||||
"4195": "issue, closed",
|
||||
"4210": "issue, open",
|
||||
"4211": "issue, open",
|
||||
"4213": "issue, open",
|
||||
"4214": "issue, open",
|
||||
"4215": "issue, closed",
|
||||
"4218": "issue, open",
|
||||
"4222": "issue, open",
|
||||
"4224": "issue, open",
|
||||
"4230": "issue, closed",
|
||||
"4234": "issue, open",
|
||||
"4235": "issue, open",
|
||||
"4237": "issue, open",
|
||||
"4238": "issue, open",
|
||||
"4240": "issue, open",
|
||||
"4241": "issue, open",
|
||||
"4243": "issue, open",
|
||||
"4244": "issue, open",
|
||||
"4246": "issue, open",
|
||||
"4249": "issue, open",
|
||||
"4250": "issue, open",
|
||||
"4254": "issue, closed",
|
||||
"4255": "issue, open",
|
||||
"4257": "issue, open",
|
||||
"4259": "issue, open",
|
||||
"4260": "issue, closed",
|
||||
"4261": "issue, open",
|
||||
"4262": "issue, open",
|
||||
"4265": "issue, open",
|
||||
"4269": "issue, open",
|
||||
"4273": "issue, closed",
|
||||
"4274": "issue, closed",
|
||||
"4275": "issue, open",
|
||||
"4276": "issue, open",
|
||||
"4278": "issue, open",
|
||||
"4279": "issue, open",
|
||||
"4280": "issue, open",
|
||||
"4281": "issue, open",
|
||||
"4285": "issue, open",
|
||||
"4286": "issue, open",
|
||||
"4287": "issue, open",
|
||||
"4289": "issue, open",
|
||||
"4290": "issue, open",
|
||||
"4293": "issue, closed",
|
||||
"4294": "issue, open",
|
||||
"4297": "issue, open",
|
||||
"4300": "issue, open",
|
||||
"4301": "issue, closed",
|
||||
"4305": "issue, open",
|
||||
"4306": "issue, open",
|
||||
"4313": "issue, open",
|
||||
"4315": "issue, open",
|
||||
"4316": "issue, open",
|
||||
"4317": "issue, closed",
|
||||
"4319": "issue, open",
|
||||
"4322": "issue, open",
|
||||
"4328": "issue, closed",
|
||||
"4329": "issue, closed",
|
||||
"4331": "issue, open",
|
||||
"4332": "issue, open",
|
||||
"4336": "issue, open",
|
||||
"4341": "issue, open",
|
||||
"4345": "issue, open",
|
||||
"4346": "issue, open",
|
||||
"4347": "issue, open",
|
||||
"4348": "issue, open",
|
||||
"4355": "issue, open",
|
||||
"4358": "issue, open",
|
||||
"4361": "issue, open",
|
||||
"4365": "issue, open",
|
||||
"4366": "issue, open",
|
||||
"4369": "issue, open",
|
||||
"4373": "issue, open",
|
||||
"4377": "issue, open",
|
||||
"4378": "issue, open",
|
||||
"4383": "issue, open",
|
||||
"4384": "issue, open",
|
||||
"4385": "issue, closed",
|
||||
"4388": "issue, open",
|
||||
"4394": "issue, open",
|
||||
"4401": "issue, closed",
|
||||
"4406": "issue, open",
|
||||
"4408": "issue, open",
|
||||
"4412": "issue, open",
|
||||
"4413": "issue, open",
|
||||
"4414": "issue, open",
|
||||
"4416": "issue, open",
|
||||
"4417": "issue, open",
|
||||
"4421": "issue, open",
|
||||
"4422": "issue, closed",
|
||||
"4424": "issue, open",
|
||||
"4428": "issue, open",
|
||||
"4429": "issue, open",
|
||||
"4431": "issue, open"
|
||||
}
|
||||
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4250"
|
||||
],
|
||||
"what": "a surface revolve (360 deg) of a stepped open profile whose lines alternate square to and along the axis: truck split the flat rings into several faces at odd angles",
|
||||
"source": "analytic",
|
||||
"method": "two flat rings (r 10..20 at z 0, r 20..30 at z 10) and two cylinders (r 20, r 30): 4 faces, one per line. Area = pi (20^2-10^2) + pi (30^2-20^2) + 2 pi 20 10 + 2 pi 30 10 = 1800 pi. An open sheet, not a solid",
|
||||
"valid": false,
|
||||
"body_count": 1,
|
||||
"faces": 4,
|
||||
"area_mm2": 5654.8668
|
||||
}
|
||||
+72
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
},
|
||||
"name": "Steps"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
10,
|
||||
0
|
||||
],
|
||||
[
|
||||
20,
|
||||
0
|
||||
],
|
||||
[
|
||||
20,
|
||||
10
|
||||
],
|
||||
[
|
||||
30,
|
||||
10
|
||||
],
|
||||
[
|
||||
30,
|
||||
20
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "surface.revolve",
|
||||
"params": {
|
||||
"sketch": "Steps",
|
||||
"curves": [
|
||||
"l1",
|
||||
"l2",
|
||||
"l3",
|
||||
"l4"
|
||||
],
|
||||
"axis": "y",
|
||||
"angle": "360 deg"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4280"
|
||||
],
|
||||
"what": "a round groove (r2) swept as a cut along the curved profile of a revolved hub, then circular-patterned 6 times about the hub's axis: 'boolean Cut: no result' in the pattern",
|
||||
"source": "invariants",
|
||||
"method": "the six grooves run down the hub's curved face 60 deg apart and don't meet, so the hub stays one valid closed body. The groove follows the surface (its centre on it), which has no closed-form removed volume",
|
||||
"body_count": 1
|
||||
}
|
||||
+198
@@ -0,0 +1,198 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
},
|
||||
"name": "Hub"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
30,
|
||||
0
|
||||
],
|
||||
[
|
||||
30,
|
||||
5
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
30,
|
||||
5
|
||||
],
|
||||
"through": [
|
||||
18,
|
||||
11
|
||||
],
|
||||
"end": [
|
||||
10,
|
||||
20
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
10,
|
||||
20
|
||||
],
|
||||
[
|
||||
0,
|
||||
20
|
||||
],
|
||||
[
|
||||
0,
|
||||
0
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.revolve",
|
||||
"params": {
|
||||
"sketch": "Hub",
|
||||
"axis": "y",
|
||||
"body_name": "Hub"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
},
|
||||
"name": "Path",
|
||||
"project_edges": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
30,
|
||||
5
|
||||
],
|
||||
"through": [
|
||||
18,
|
||||
11
|
||||
],
|
||||
"end": [
|
||||
10,
|
||||
20
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "construct.plane.along_path",
|
||||
"params": {
|
||||
"path": {
|
||||
"sketch": "Path",
|
||||
"curve": "a1"
|
||||
},
|
||||
"t": 0,
|
||||
"name": "P0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "P0",
|
||||
"name": "Groove",
|
||||
"project_edges": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.sweep",
|
||||
"params": {
|
||||
"sketch": "Groove",
|
||||
"path_sketch": "Path",
|
||||
"path": [
|
||||
"a1"
|
||||
],
|
||||
"operation": "cut",
|
||||
"targets": [
|
||||
"Hub"
|
||||
],
|
||||
"name": "Sweep1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.pattern.circular",
|
||||
"params": {
|
||||
"features": [
|
||||
"Sweep1"
|
||||
],
|
||||
"axis": "Z",
|
||||
"count": 6,
|
||||
"angle": "360 deg"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4305"
|
||||
],
|
||||
"what": "a 0.6 x 1 groove swept as a cut round the wall of a rounded-rectangle pocket (lines and r5 arcs, at mid height): the sweep didn't follow the path",
|
||||
"source": "analytic",
|
||||
"method": "box 60x40x20 less the pocket (50x30, r5 corners, 15 deep): 48000 - (1500 - (4-pi) 25) 15. The groove section 0.6 deep into the wall x 1 high starts at the path's start, square to it; its centroid runs 0.3 outside the path, so by Pappus it removes 0.6*1*(2*40 + 2*20 + 2 pi 5.3)",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 25729.9222
|
||||
}
|
||||
+265
@@ -0,0 +1,265 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"corner": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"length": 60,
|
||||
"width": 40,
|
||||
"height": 20,
|
||||
"body_name": "Box"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"face": [
|
||||
30,
|
||||
20,
|
||||
20
|
||||
]
|
||||
},
|
||||
"name": "Pocket",
|
||||
"project_edges": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.rounded",
|
||||
"params": {
|
||||
"p0": [
|
||||
5,
|
||||
5
|
||||
],
|
||||
"p1": [
|
||||
55,
|
||||
35
|
||||
],
|
||||
"radius": 5
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "Pocket",
|
||||
"distance": 15,
|
||||
"direction": "negative",
|
||||
"operation": "cut",
|
||||
"targets": [
|
||||
"Box"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "XY",
|
||||
"name": "Path",
|
||||
"offset": 10,
|
||||
"project_edges": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
10,
|
||||
5
|
||||
],
|
||||
[
|
||||
50,
|
||||
5
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
50,
|
||||
5
|
||||
],
|
||||
"through": [
|
||||
53.535534,
|
||||
6.464466
|
||||
],
|
||||
"end": [
|
||||
55,
|
||||
10
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
55,
|
||||
10
|
||||
],
|
||||
[
|
||||
55,
|
||||
30
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
55,
|
||||
30
|
||||
],
|
||||
"through": [
|
||||
53.535534,
|
||||
33.535534
|
||||
],
|
||||
"end": [
|
||||
50,
|
||||
35
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
50,
|
||||
35
|
||||
],
|
||||
[
|
||||
10,
|
||||
35
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
10,
|
||||
35
|
||||
],
|
||||
"through": [
|
||||
6.464466,
|
||||
33.535534
|
||||
],
|
||||
"end": [
|
||||
5,
|
||||
30
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
5,
|
||||
30
|
||||
],
|
||||
[
|
||||
5,
|
||||
10
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
5,
|
||||
10
|
||||
],
|
||||
"through": [
|
||||
6.464466,
|
||||
6.464466
|
||||
],
|
||||
"end": [
|
||||
10,
|
||||
5
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
10,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
},
|
||||
"name": "Groove",
|
||||
"project_edges": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.two_point",
|
||||
"params": {
|
||||
"p0": [
|
||||
4.4,
|
||||
9.5
|
||||
],
|
||||
"p1": [
|
||||
5,
|
||||
10.5
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.sweep",
|
||||
"params": {
|
||||
"sketch": "Groove",
|
||||
"path_sketch": "Path",
|
||||
"path": [
|
||||
"l1",
|
||||
"a1",
|
||||
"l2",
|
||||
"a2",
|
||||
"l3",
|
||||
"a3",
|
||||
"l4",
|
||||
"a4"
|
||||
],
|
||||
"operation": "cut",
|
||||
"targets": [
|
||||
"Box"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
[
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4165",
|
||||
"why": "UI only: surface bodies shown with the solid icon in the browser"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4173",
|
||||
"why": "no reproduction: an intersect revolve redefined on an unknown part, no design"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4234",
|
||||
"why": "no geometry: a loft from a model face (feature request)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4257",
|
||||
"why": "no kernel geometry: surface bodies report a volume and mass (measure, document)"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4358",
|
||||
"why": "no kernel geometry: surface loft picks lost between copied sketches with the same curve ids (selection)"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#4191"
|
||||
],
|
||||
"what": "a 20x20x10 block joined round the bottom of an O6 x 50 stud carrying a modelled M6 thread: 'boolean Union: no result' (the same block joined before threading worked)",
|
||||
"source": "invariants",
|
||||
"method": "the block encloses the stud's bottom 10 mm, thread and all, so the join is one connected solid: one valid closed body. The modelled thread's volume is not closed-form",
|
||||
"body_count": 1,
|
||||
"timeout_s": 600
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"diameter": 6,
|
||||
"height": 50,
|
||||
"body_name": "Stud"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.thread",
|
||||
"params": {
|
||||
"face": [
|
||||
3,
|
||||
0,
|
||||
30
|
||||
],
|
||||
"designation": "M6",
|
||||
"modeled": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"corner": [
|
||||
-10,
|
||||
-10,
|
||||
0
|
||||
],
|
||||
"length": 20,
|
||||
"width": 20,
|
||||
"height": 10,
|
||||
"operation": "join",
|
||||
"targets": [
|
||||
"Stud"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
[
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4183",
|
||||
"why": "no reproduction: a thread failure shown by screenshot only"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4281",
|
||||
"why": "duplicate of threads/3311-two-tapped-holes-both-modelled-threaded: a modelled thread facets the body; no sizes"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4378",
|
||||
"why": "duplicate of threads/3311-two-tapped-holes-both-modelled-threaded: a modelled M12 thread facets the body; no steps"
|
||||
},
|
||||
{
|
||||
"source": "tangency-labs/solidcraft#4414",
|
||||
"why": "no geometry: left-handed threads (feature request)"
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user