forked from 1b-agent/fieldcraft-upstream
A partition intersects the body with a box on each side of the plane as large as the body itself. SolidCraft's split_by_plane uses boxes several times larger, and its boolean then put the cut up to 1.8 um off the plane on the enclosure's air, so the cut faces were not recognized and the cells did not close. A plane along a face of a body it cuts, or a cell whose boundary does not tessellate into one a mesher takes (a cut through a hole's axis), is a warning naming the partition, the body and where. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01UhhZMBTviDQxZvwnyP89fo
1 line
14 KiB
JSON
1 line
14 KiB
JSON
[{"command": "solid.box", "params": {"length": 112, "width": 82, "height": 36, "corner": [0, 0, 0], "body_name": "Base"}}, {"command": "solid.fillet", "params": {"edges": [[0, 0, 18.0], [112, 0, 18.0], [0, 82, 18.0], [112, 82, 18.0]], "radius": 5}}, {"command": "solid.shell", "params": {"faces": [[56.0, 41.0, 36]], "thickness": 3, "direction": "inside", "body": "Base"}}, {"command": "solid.cylinder", "params": {"diameter": 13, "height": 36, "base": [-1, -1, 0], "operation": "join", "targets": ["Base"]}}, {"command": "solid.cylinder", "params": {"diameter": 13, "height": 36, "base": [113, -1, 0], "operation": "join", "targets": ["Base"]}}, {"command": "solid.cylinder", "params": {"diameter": 13, "height": 36, "base": [-1, 83, 0], "operation": "join", "targets": ["Base"]}}, {"command": "solid.cylinder", "params": {"diameter": 13, "height": 36, "base": [113, 83, 0], "operation": "join", "targets": ["Base"]}}, {"command": "solid.hole", "params": {"position": [-1, -1, 36], "diameter": 3.3, "depth": 20}}, {"command": "solid.hole", "params": {"position": [113, -1, 36], "diameter": 3.3, "depth": 20}}, {"command": "solid.hole", "params": {"position": [-1, 83, 36], "diameter": 3.3, "depth": 20}}, {"command": "solid.hole", "params": {"position": [113, 83, 36], "diameter": 3.3, "depth": 20}}, {"command": "solid.cylinder", "params": {"diameter": 6, "height": 6, "base": [16.5, 16.5, 3], "operation": "join", "targets": ["Base"]}}, {"command": "solid.cylinder", "params": {"diameter": 6, "height": 6, "base": [74.5, 16.5, 3], "operation": "join", "targets": ["Base"]}}, {"command": "solid.cylinder", "params": {"diameter": 6, "height": 6, "base": [16.5, 65.5, 3], "operation": "join", "targets": ["Base"]}}, {"command": "solid.cylinder", "params": {"diameter": 6, "height": 6, "base": [74.5, 65.5, 3], "operation": "join", "targets": ["Base"]}}, {"command": "sketch.create", "params": {"plane": {"origin": [0, 0, 0], "x_dir": [1, 0, 0], "y_dir": [0, 0, 1]}, "name": "Nut1"}}, {"command": "sketch.polygon.inscribed", "params": {"center": [34, 17], "radius": 11, "sides": 6, "angle": 0}}, {"command": "sketch.finish", "params": {}}, {"command": "solid.extrude", "params": {"sketch": "Nut1", "profiles": "all", "distance": 6, "operation": "new", "body_name": "Gland1"}}, {"command": "solid.cylinder", "params": {"diameter": 17, "height": 8, "base": [34, -6, 17], "axis": [0, -1, 0], "operation": "join", "targets": ["Gland1"]}}, {"command": "solid.cylinder", "params": {"diameter": 14, "height": 6, "base": [34, -14, 17], "axis": [0, -1, 0], "operation": "join", "targets": ["Gland1"]}}, {"command": "solid.fillet", "params": {"edges": [[34, -20, 24]], "radius": 2.5, "body": "Gland1"}}, {"command": "solid.cylinder", "params": {"diameter": 6.5, "height": 30, "base": [34, -20, 17], "axis": [0, -1, 0], "operation": "new", "body_name": "Cable1"}}, {"command": "sketch.create", "params": {"plane": {"origin": [0, 0, 0], "x_dir": [1, 0, 0], "y_dir": [0, 0, 1]}, "name": "Nut2"}}, {"command": "sketch.polygon.inscribed", "params": {"center": [66, 17], "radius": 11, "sides": 6, "angle": 0}}, {"command": "sketch.finish", "params": {}}, {"command": "solid.extrude", "params": {"sketch": "Nut2", "profiles": "all", "distance": 6, "operation": "new", "body_name": "Gland2"}}, {"command": "solid.cylinder", "params": {"diameter": 17, "height": 8, "base": [66, -6, 17], "axis": [0, -1, 0], "operation": "join", "targets": ["Gland2"]}}, {"command": "solid.cylinder", "params": {"diameter": 14, "height": 6, "base": [66, -14, 17], "axis": [0, -1, 0], "operation": "join", "targets": ["Gland2"]}}, {"command": "solid.fillet", "params": {"edges": [[66, -20, 24]], "radius": 2.5, "body": "Gland2"}}, {"command": "solid.cylinder", "params": {"diameter": 6.5, "height": 30, "base": [66, -20, 17], "axis": [0, -1, 0], "operation": "new", "body_name": "Cable2"}}, {"command": "sketch.create", "params": {"plane": {"origin": [112, 0, 0], "x_dir": [0, 1, 0], "y_dir": [0, 0, 1]}, "name": "Nut3"}}, {"command": "sketch.polygon.inscribed", "params": {"center": [41.0, 18], "radius": 14, "sides": 6, "angle": 0}}, {"command": "sketch.finish", "params": {}}, {"command": "solid.extrude", "params": {"sketch": "Nut3", "profiles": "all", "distance": 5, "operation": "new", "body_name": "Gland3"}}, {"command": "solid.cylinder", "params": {"diameter": 24, "height": 17, "base": [117, 41.0, 18], "axis": [1, 0, 0], "operation": "join", "targets": ["Gland3"]}}, {"command": "solid.hole", "params": {"position": [134, 41.0, 18], "diameter": 14, "depth": 15}}, {"command": "solid.fillet", "params": {"edges": [[134, 41.0, 30]], "radius": 2, "body": "Gland3"}}, {"command": "solid.box", "params": {"length": 110.8, "width": 80.8, "height": 1.6, "corner": [0.6, 0.6, 36], "operation": "new", "body_name": "ORing"}}, {"command": "solid.box", "params": {"length": 107.2, "width": 77.2, "height": 1.6, "corner": [2.4, 2.4, 36], "operation": "cut", "targets": ["ORing"]}}, {"command": "solid.box", "params": {"length": 128, "width": 98, "height": 4, "corner": [-8, -8, 37.6], "operation": "new", "body_name": "Lid"}}, {"command": "solid.fillet", "params": {"edges": [[-8, -8, 39.6], [120, -8, 39.6], [-8, 90, 39.6], [120, 90, 39.6]], "radius": 8}}, {"command": "solid.hole", "params": {"position": [-1, -1, 41.6], "diameter": 3.5, "depth": 4}}, {"command": "solid.hole", "params": {"position": [113, -1, 41.6], "diameter": 3.5, "depth": 4}}, {"command": "solid.hole", "params": {"position": [-1, 83, 41.6], "diameter": 3.5, "depth": 4}}, {"command": "solid.hole", "params": {"position": [113, 83, 41.6], "diameter": 3.5, "depth": 4}}, {"command": "solid.box", "params": {"length": 22, "width": 22, "height": 4, "center": [44, 43, 39.6], "operation": "new", "body_name": "LidCut"}}, {"command": "solid.combine", "params": {"target": "Lid", "tools": ["LidCut"], "operation": "cut"}}, {"command": "sketch.create", "params": {"plane": {"origin": [8.0, 0, 0], "x_dir": [0, 1, 0], "y_dir": [0, 0, 1]}, "name": "Comb"}}, {"command": "sketch.line", "params": {"points": [[7.0, 41.6], [75.0, 41.6], [75.0, 46.6], [75.0, 66.6], [73.7, 66.6], [73.7, 46.6], [71.29444444444444, 46.6], [71.29444444444444, 66.6], [69.99444444444444, 66.6], [69.99444444444444, 46.6], [67.58888888888889, 46.6], [67.58888888888889, 66.6], [66.28888888888889, 66.6], [66.28888888888889, 46.6], [63.88333333333333, 46.6], [63.88333333333333, 66.6], [62.583333333333336, 66.6], [62.583333333333336, 46.6], [60.17777777777778, 46.6], [60.17777777777778, 66.6], [58.87777777777778, 66.6], [58.87777777777778, 46.6], [56.47222222222222, 46.6], [56.47222222222222, 66.6], [55.172222222222224, 66.6], [55.172222222222224, 46.6], [52.766666666666666, 46.6], [52.766666666666666, 66.6], [51.46666666666667, 66.6], [51.46666666666667, 46.6], [49.06111111111111, 46.6], [49.06111111111111, 66.6], [47.76111111111111, 66.6], [47.76111111111111, 46.6], [45.355555555555554, 46.6], [45.355555555555554, 66.6], [44.05555555555556, 66.6], [44.05555555555556, 46.6], [41.65, 46.6], [41.65, 66.6], [40.35, 66.6], [40.35, 46.6], [37.94444444444444, 46.6], [37.94444444444444, 66.6], [36.644444444444446, 66.6], [36.644444444444446, 46.6], [34.23888888888889, 46.6], [34.23888888888889, 66.6], [32.93888888888889, 66.6], [32.93888888888889, 46.6], [30.533333333333335, 46.6], [30.533333333333335, 66.6], [29.233333333333334, 66.6], [29.233333333333334, 46.6], [26.82777777777778, 46.6], [26.82777777777778, 66.6], [25.52777777777778, 66.6], [25.52777777777778, 46.6], [23.122222222222224, 46.6], [23.122222222222224, 66.6], [21.822222222222223, 66.6], [21.822222222222223, 46.6], [19.416666666666668, 46.6], [19.416666666666668, 66.6], [18.116666666666667, 66.6], [18.116666666666667, 46.6], [15.711111111111112, 46.6], [15.711111111111112, 66.6], [14.411111111111111, 66.6], [14.411111111111111, 46.6], [12.005555555555556, 46.6], [12.005555555555556, 66.6], [10.705555555555556, 66.6], [10.705555555555556, 46.6], [8.3, 46.6], [8.3, 66.6], [7.0, 66.6], [7.0, 46.6]], "closed": true}}, {"command": "sketch.finish", "params": {}}, {"command": "solid.extrude", "params": {"sketch": "Comb", "profiles": "all", "distance": 96, "operation": "new", "body_name": "Heatsink"}}, {"command": "solid.box", "params": {"length": 20, "width": 20, "height": 27.6, "corner": [34, 33, 14.0], "operation": "join", "targets": ["Heatsink"]}}, {"command": "solid.cylinder", "params": {"diameter": 6, "height": 3.5, "base": [-1, -1, 41.6], "operation": "new", "body_name": "Screw1"}}, {"command": "solid.cylinder", "params": {"diameter": 3, "height": 16, "base": [-1, -1, 25.6], "operation": "join", "targets": ["Screw1"]}}, {"command": "sketch.create", "params": {"plane": {"origin": [0, 0, 45.1], "x_dir": [1, 0, 0], "y_dir": [0, 1, 0]}, "name": "Sock1"}}, {"command": "sketch.polygon.inscribed", "params": {"center": [-1, -1], "radius": 1.45, "sides": 6}}, {"command": "sketch.finish", "params": {}}, {"command": "solid.extrude", "params": {"sketch": "Sock1", "profiles": "all", "distance": 2, "direction": "negative", "operation": "cut", "targets": ["Screw1"]}}, {"command": "solid.cylinder", "params": {"diameter": 6, "height": 3.5, "base": [113, -1, 41.6], "operation": "new", "body_name": "Screw2"}}, {"command": "solid.cylinder", "params": {"diameter": 3, "height": 16, "base": [113, -1, 25.6], "operation": "join", "targets": ["Screw2"]}}, {"command": "sketch.create", "params": {"plane": {"origin": [0, 0, 45.1], "x_dir": [1, 0, 0], "y_dir": [0, 1, 0]}, "name": "Sock2"}}, {"command": "sketch.polygon.inscribed", "params": {"center": [113, -1], "radius": 1.45, "sides": 6}}, {"command": "sketch.finish", "params": {}}, {"command": "solid.extrude", "params": {"sketch": "Sock2", "profiles": "all", "distance": 2, "direction": "negative", "operation": "cut", "targets": ["Screw2"]}}, {"command": "solid.cylinder", "params": {"diameter": 6, "height": 3.5, "base": [-1, 83, 41.6], "operation": "new", "body_name": "Screw3"}}, {"command": "solid.cylinder", "params": {"diameter": 3, "height": 16, "base": [-1, 83, 25.6], "operation": "join", "targets": ["Screw3"]}}, {"command": "sketch.create", "params": {"plane": {"origin": [0, 0, 45.1], "x_dir": [1, 0, 0], "y_dir": [0, 1, 0]}, "name": "Sock3"}}, {"command": "sketch.polygon.inscribed", "params": {"center": [-1, 83], "radius": 1.45, "sides": 6}}, {"command": "sketch.finish", "params": {}}, {"command": "solid.extrude", "params": {"sketch": "Sock3", "profiles": "all", "distance": 2, "direction": "negative", "operation": "cut", "targets": ["Screw3"]}}, {"command": "solid.cylinder", "params": {"diameter": 6, "height": 3.5, "base": [113, 83, 41.6], "operation": "new", "body_name": "Screw4"}}, {"command": "solid.cylinder", "params": {"diameter": 3, "height": 16, "base": [113, 83, 25.6], "operation": "join", "targets": ["Screw4"]}}, {"command": "sketch.create", "params": {"plane": {"origin": [0, 0, 45.1], "x_dir": [1, 0, 0], "y_dir": [0, 1, 0]}, "name": "Sock4"}}, {"command": "sketch.polygon.inscribed", "params": {"center": [113, 83], "radius": 1.45, "sides": 6}}, {"command": "sketch.finish", "params": {}}, {"command": "solid.extrude", "params": {"sketch": "Sock4", "profiles": "all", "distance": 2, "direction": "negative", "operation": "cut", "targets": ["Screw4"]}}, {"command": "solid.box", "params": {"length": 85, "width": 56, "height": 1.6, "corner": [13, 13, 9], "operation": "new", "body_name": "PCB"}}, {"command": "solid.hole", "params": {"position": [16.5, 16.5, 10.6], "diameter": 2.7, "depth": 1.6}}, {"command": "solid.hole", "params": {"position": [74.5, 16.5, 10.6], "diameter": 2.7, "depth": 1.6}}, {"command": "solid.hole", "params": {"position": [16.5, 65.5, 10.6], "diameter": 2.7, "depth": 1.6}}, {"command": "solid.hole", "params": {"position": [74.5, 65.5, 10.6], "diameter": 2.7, "depth": 1.6}}, {"command": "solid.fillet", "params": {"edges": [[13, 13, 9.8], [98, 13, 9.8], [13, 69, 9.8], [98, 69, 9.8]], "radius": 3}}, {"command": "solid.box", "params": {"length": 17, "width": 17, "height": 2.4, "corner": [35.5, 34.5, 10.6], "operation": "new", "body_name": "SoC"}}, {"command": "solid.box", "params": {"length": 17, "width": 17, "height": 1.0, "corner": [35.5, 34.5, 13.0], "operation": "new", "body_name": "Pad"}}, {"command": "solid.box", "params": {"length": 10, "width": 14, "height": 1.2, "corner": [22.0, 36.0, 10.6], "operation": "new", "body_name": "RAM"}}, {"command": "solid.box", "params": {"length": 7, "width": 7, "height": 1.0, "corner": [61.5, 39.5, 10.6], "operation": "new", "body_name": "RP1"}}, {"command": "solid.box", "params": {"length": 6, "width": 6, "height": 0.9, "corner": [20.0, 24.0, 10.6], "operation": "new", "body_name": "PMIC"}}, {"command": "solid.box", "params": {"length": 21, "width": 16, "height": 13.5, "corner": [79.0, 15.25, 10.6], "operation": "new", "body_name": "Ethernet"}}, {"command": "solid.box", "params": {"length": 17.5, "width": 14.5, "height": 16, "corner": [81.75, 34.75, 10.6], "operation": "new", "body_name": "USB1"}}, {"command": "solid.box", "params": {"length": 17.5, "width": 14.5, "height": 16, "corner": [81.75, 52.75, 10.6], "operation": "new", "body_name": "USB2"}}, {"command": "solid.box", "params": {"length": 9, "width": 7.5, "height": 3.3, "corner": [19.7, 12.649999999999999, 10.6], "operation": "new", "body_name": "USBC"}}, {"command": "solid.box", "params": {"length": 7.5, "width": 7, "height": 3.5, "corner": [35.05, 13.100000000000001, 10.6], "operation": "new", "body_name": "HDMI0"}}, {"command": "solid.box", "params": {"length": 7.5, "width": 7, "height": 3.5, "corner": [48.45, 13.100000000000001, 10.6], "operation": "new", "body_name": "HDMI1"}}, {"command": "solid.box", "params": {"length": 3, "width": 16, "height": 4, "corner": [57.0, 21.0, 10.6], "operation": "new", "body_name": "FFC1"}}, {"command": "solid.box", "params": {"length": 3, "width": 16, "height": 4, "corner": [68.5, 21.0, 10.6], "operation": "new", "body_name": "FFC2"}}, {"command": "solid.box", "params": {"length": 51, "width": 5, "height": 2.5, "corner": [20.0, 63.0, 10.6], "operation": "new", "body_name": "Header"}}, {"command": "solid.box", "params": {"length": 0.64, "width": 0.64, "height": 8.5, "corner": [21.05, 63.91, 10.6], "operation": "new", "body_name": "Pins"}}, {"command": "solid.box", "params": {"length": 0.64, "width": 0.64, "height": 8.5, "corner": [21.05, 66.45, 10.6], "operation": "join", "targets": ["Pins"]}}, {"command": "solid.pattern.rectangular", "params": {"bodies": ["Pins"], "dir1": [1, 0, 0], "count1": 20, "spacing1": 2.54}}, {"command": "solid.box", "params": {"length": 106, "width": 76, "height": 34.6, "corner": [3, 3, 3], "operation": "new", "body_name": "Air"}}, {"command": "solid.combine", "params": {"target": "Air", "tools": ["Base", "PCB", "SoC", "Pad", "Heatsink"], "operation": "cut", "keep_tools": true}}] |