// Generated by SolidPython 1.0.5 on 2021-02-11 15:42:56 union() { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } translate(v = [0, 59, 0]) { rotate(a = [0, 0, -90]) { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } } } translate(v = [59, 59, 0]) { rotate(a = [0, 0, 180]) { union() { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } translate(v = [0, 59, 0]) { rotate(a = [0, 0, -90]) { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } } } } } } translate(v = [0, 0, 0]) { union() { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } translate(v = [0, 59, 0]) { rotate(a = [0, 0, -90]) { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } } } translate(v = [59, 59, 0]) { rotate(a = [0, 0, 180]) { union() { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } translate(v = [0, 59, 0]) { rotate(a = [0, 0, -90]) { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } } } } } } } } translate(v = [0, 59, 0]) { union() { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } translate(v = [0, 59, 0]) { rotate(a = [0, 0, -90]) { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } } } translate(v = [59, 59, 0]) { rotate(a = [0, 0, 180]) { union() { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } translate(v = [0, 59, 0]) { rotate(a = [0, 0, -90]) { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } } } } } } } } translate(v = [0, 118, 0]) { union() { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } translate(v = [0, 59, 0]) { rotate(a = [0, 0, -90]) { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } } } translate(v = [59, 59, 0]) { rotate(a = [0, 0, 180]) { union() { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } translate(v = [0, 59, 0]) { rotate(a = [0, 0, -90]) { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } } } } } } } } translate(v = [59, 0, 0]) { union() { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } translate(v = [0, 59, 0]) { rotate(a = [0, 0, -90]) { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } } } translate(v = [59, 59, 0]) { rotate(a = [0, 0, 180]) { union() { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } translate(v = [0, 59, 0]) { rotate(a = [0, 0, -90]) { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } } } } } } } } translate(v = [59, 59, 0]) { union() { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } translate(v = [0, 59, 0]) { rotate(a = [0, 0, -90]) { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } } } translate(v = [59, 59, 0]) { rotate(a = [0, 0, 180]) { union() { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } translate(v = [0, 59, 0]) { rotate(a = [0, 0, -90]) { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } } } } } } } } translate(v = [59, 118, 0]) { union() { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } translate(v = [0, 59, 0]) { rotate(a = [0, 0, -90]) { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } } } translate(v = [59, 59, 0]) { rotate(a = [0, 0, 180]) { union() { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } translate(v = [0, 59, 0]) { rotate(a = [0, 0, -90]) { difference() { rotate(a = [90, 0, 90]) { linear_extrude(height = 59) { polygon(points = [[0, 0], [1.5000000000, 0], [0, 1.5000000000]]); } } translate(v = [1.5000000000, 1.5000000000, 1.5000000000]) { union() { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } union() { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } translate(v = [56, 0, 0]) { rotate(a = [0, -90, 0]) { minkowski() { cube(size = [56.0000000000, 0.0001000000, 0.0001000000]); sphere($fn = 36, r = 1.5000000000); } } } } } } } } } } } } } } } /*********************************************** ********* SolidPython code: ********** ************************************************ #! /bin/python import solid as scad import solid.utils as su import math import numpy as np def grid(x, y, w=3, h=1.5, fillet=False): dim = 59 if w > h*2: out = scad.polygon([[0,0], [w/2, 0], [w/2-h, h], [0, h]]) else: out = scad.polygon([[0,0], [w/2, 0], [0, h]]) out = scad.linear_extrude(dim)(out) out = scad.rotate([90, 0, 90])(out) if fillet: scallop = scad.cube([dim-2*h - (w-2*h),.0001,.0001]) scallop = scad.minkowski()( scallop, scad.sphere(r=h, segments=36) ) scallop += scad.rotate([0, -90, 0])(scallop) + scad.translate([dim-w, 0, 0])(scad.rotate([0, -90, 0])(scallop)) scallop = scad.translate([w/2, w/2, h])(scallop) out -= scallop out += scad.translate([0, dim, 0])(scad.rotate([0, 0, -90])(out)) out += scad.translate([dim, dim, 0])(scad.rotate([0, 0, 180])(out)) result = out for dx in range(x): for dy in range(y): result += scad.translate([dim*dx, dim*dy, 0])(out) return result if __name__ == "__main__": scad.scad_render_to_file(grid(2, 3, fillet=True), "grid.scad") ************************************************/