function _standoffOuter_extrude_4_outline_fn(){ return CAG.circle({"center":[185.525,-63.475],"radius":2.5}) .union( CAG.circle({"center":[157,-99.09375],"radius":2.5}) ).union( CAG.circle({"center":[166.525,-39.525],"radius":2.5}) ).union( CAG.circle({"center":[109.525,-52.525],"radius":2.5}) ).extrude({ offset: [0, 0, 4] }); } function _boardL_extrude_1_5_outline_fn(){ return new CSG.Path2D([[88.475,-109.525],[88.475,-33.2290808]]).appendArc([90.214091,-31.2461722],{"radius":2,"clockwise":true,"large":false}).appendPoint([126.207996,-26.5101321]).appendArc([126.723201,-26.3704943],{"radius":2,"clockwise":false,"large":false}).appendPoint([145.1027681,-18.6317292]).appendArc([145.8788821,-18.475],{"radius":2,"clockwise":true,"large":false}).appendPoint([168.2662468,-18.475]).appendArc([168.7752334,-18.5408509],{"radius":2,"clockwise":true,"large":false}).appendPoint([187.4275126,-23.4493454]).appendArc([187.624574,-23.4907222],{"radius":2,"clockwise":false,"large":false}).appendPoint([206.3699973,-26.4505259]).appendArc([206.6819225,-26.475],{"radius":2,"clockwise":false,"large":false}).appendPoint([227.575,-26.475]).appendArc([229.575,-28.475],{"radius":2,"clockwise":true,"large":false}).appendPoint([229.575,-105.9121954]).appendArc([229.9182998,-107.032617],{"radius":2,"clockwise":false,"large":false}).appendPoint([235.8987289,-115.8755193]).appendArc([236.0546442,-117.8411775],{"radius":2,"clockwise":true,"large":false}).appendPoint([225.0598452,-141.4196002]).appendArc([222.746425,-142.5106475],{"radius":2,"clockwise":true,"large":false}).appendPoint([146.55281,-122.8037671]).appendArc([145.1440379,-121.4620561],{"radius":2,"clockwise":true,"large":false}).appendPoint([142.4875989,-112.9304272]).appendArc([140.5780222,-111.525],{"radius":2,"clockwise":false,"large":false}).appendPoint([90.475,-111.525]).appendArc([88.475,-109.525],{"radius":2,"clockwise":true,"large":false}).close().innerToCAG() .extrude({ offset: [0, 0, 1.5] }); } function _standoffInner_extrude_4_outline_fn(){ return CAG.circle({"center":[185.525,-63.475],"radius":1.5}) .union( CAG.circle({"center":[157,-99.09375],"radius":1.5}) ).union( CAG.circle({"center":[166.525,-39.525],"radius":1.5}) ).union( CAG.circle({"center":[109.525,-52.525],"radius":1.5}) ).extrude({ offset: [0, 0, 4] }); } function _screwStandoffOuter_case_fn() { // creating part 0 of case _screwStandoffOuter let _screwStandoffOuter__part_0 = _standoffOuter_extrude_4_outline_fn(); // make sure that rotations are relative let _screwStandoffOuter__part_0_bounds = _screwStandoffOuter__part_0.getBounds(); let _screwStandoffOuter__part_0_x = _screwStandoffOuter__part_0_bounds[0].x + (_screwStandoffOuter__part_0_bounds[1].x - _screwStandoffOuter__part_0_bounds[0].x) / 2 let _screwStandoffOuter__part_0_y = _screwStandoffOuter__part_0_bounds[0].y + (_screwStandoffOuter__part_0_bounds[1].y - _screwStandoffOuter__part_0_bounds[0].y) / 2 _screwStandoffOuter__part_0 = translate([-_screwStandoffOuter__part_0_x, -_screwStandoffOuter__part_0_y, 0], _screwStandoffOuter__part_0); _screwStandoffOuter__part_0 = rotate([0,0,0], _screwStandoffOuter__part_0); _screwStandoffOuter__part_0 = translate([_screwStandoffOuter__part_0_x, _screwStandoffOuter__part_0_y, 0], _screwStandoffOuter__part_0); _screwStandoffOuter__part_0 = translate([0,0,0], _screwStandoffOuter__part_0); let result = _screwStandoffOuter__part_0; return result; } function _caseBottomP1_case_fn() { // creating part 0 of case _caseBottomP1 let _caseBottomP1__part_0 = _boardL_extrude_1_5_outline_fn(); // make sure that rotations are relative let _caseBottomP1__part_0_bounds = _caseBottomP1__part_0.getBounds(); let _caseBottomP1__part_0_x = _caseBottomP1__part_0_bounds[0].x + (_caseBottomP1__part_0_bounds[1].x - _caseBottomP1__part_0_bounds[0].x) / 2 let _caseBottomP1__part_0_y = _caseBottomP1__part_0_bounds[0].y + (_caseBottomP1__part_0_bounds[1].y - _caseBottomP1__part_0_bounds[0].y) / 2 _caseBottomP1__part_0 = translate([-_caseBottomP1__part_0_x, -_caseBottomP1__part_0_y, 0], _caseBottomP1__part_0); _caseBottomP1__part_0 = rotate([0,0,0], _caseBottomP1__part_0); _caseBottomP1__part_0 = translate([_caseBottomP1__part_0_x, _caseBottomP1__part_0_y, 0], _caseBottomP1__part_0); _caseBottomP1__part_0 = translate([0,0,0], _caseBottomP1__part_0); let result = _caseBottomP1__part_0; return result; } function _screwStandoffInner_case_fn() { // creating part 0 of case _screwStandoffInner let _screwStandoffInner__part_0 = _standoffInner_extrude_4_outline_fn(); // make sure that rotations are relative let _screwStandoffInner__part_0_bounds = _screwStandoffInner__part_0.getBounds(); let _screwStandoffInner__part_0_x = _screwStandoffInner__part_0_bounds[0].x + (_screwStandoffInner__part_0_bounds[1].x - _screwStandoffInner__part_0_bounds[0].x) / 2 let _screwStandoffInner__part_0_y = _screwStandoffInner__part_0_bounds[0].y + (_screwStandoffInner__part_0_bounds[1].y - _screwStandoffInner__part_0_bounds[0].y) / 2 _screwStandoffInner__part_0 = translate([-_screwStandoffInner__part_0_x, -_screwStandoffInner__part_0_y, 0], _screwStandoffInner__part_0); _screwStandoffInner__part_0 = rotate([0,0,0], _screwStandoffInner__part_0); _screwStandoffInner__part_0 = translate([_screwStandoffInner__part_0_x, _screwStandoffInner__part_0_y, 0], _screwStandoffInner__part_0); _screwStandoffInner__part_0 = translate([0,0,0], _screwStandoffInner__part_0); let result = _screwStandoffInner__part_0; return result; } function caseBottomL_case_fn() { // creating part 0 of case caseBottomL let caseBottomL__part_0 = _screwStandoffOuter_case_fn(); // make sure that rotations are relative let caseBottomL__part_0_bounds = caseBottomL__part_0.getBounds(); let caseBottomL__part_0_x = caseBottomL__part_0_bounds[0].x + (caseBottomL__part_0_bounds[1].x - caseBottomL__part_0_bounds[0].x) / 2 let caseBottomL__part_0_y = caseBottomL__part_0_bounds[0].y + (caseBottomL__part_0_bounds[1].y - caseBottomL__part_0_bounds[0].y) / 2 caseBottomL__part_0 = translate([-caseBottomL__part_0_x, -caseBottomL__part_0_y, 0], caseBottomL__part_0); caseBottomL__part_0 = rotate([0,0,0], caseBottomL__part_0); caseBottomL__part_0 = translate([caseBottomL__part_0_x, caseBottomL__part_0_y, 0], caseBottomL__part_0); caseBottomL__part_0 = translate([0,0,0], caseBottomL__part_0); let result = caseBottomL__part_0; // creating part 1 of case caseBottomL let caseBottomL__part_1 = _caseBottomP1_case_fn(); // make sure that rotations are relative let caseBottomL__part_1_bounds = caseBottomL__part_1.getBounds(); let caseBottomL__part_1_x = caseBottomL__part_1_bounds[0].x + (caseBottomL__part_1_bounds[1].x - caseBottomL__part_1_bounds[0].x) / 2 let caseBottomL__part_1_y = caseBottomL__part_1_bounds[0].y + (caseBottomL__part_1_bounds[1].y - caseBottomL__part_1_bounds[0].y) / 2 caseBottomL__part_1 = translate([-caseBottomL__part_1_x, -caseBottomL__part_1_y, 0], caseBottomL__part_1); caseBottomL__part_1 = rotate([0,0,0], caseBottomL__part_1); caseBottomL__part_1 = translate([caseBottomL__part_1_x, caseBottomL__part_1_y, 0], caseBottomL__part_1); caseBottomL__part_1 = translate([0,0,0], caseBottomL__part_1); result = result.union(caseBottomL__part_1); // creating part 2 of case caseBottomL let caseBottomL__part_2 = _screwStandoffInner_case_fn(); // make sure that rotations are relative let caseBottomL__part_2_bounds = caseBottomL__part_2.getBounds(); let caseBottomL__part_2_x = caseBottomL__part_2_bounds[0].x + (caseBottomL__part_2_bounds[1].x - caseBottomL__part_2_bounds[0].x) / 2 let caseBottomL__part_2_y = caseBottomL__part_2_bounds[0].y + (caseBottomL__part_2_bounds[1].y - caseBottomL__part_2_bounds[0].y) / 2 caseBottomL__part_2 = translate([-caseBottomL__part_2_x, -caseBottomL__part_2_y, 0], caseBottomL__part_2); caseBottomL__part_2 = rotate([0,0,0], caseBottomL__part_2); caseBottomL__part_2 = translate([caseBottomL__part_2_x, caseBottomL__part_2_y, 0], caseBottomL__part_2); caseBottomL__part_2 = translate([0,0,0], caseBottomL__part_2); result = result.subtract(caseBottomL__part_2); return result; } function main() { return caseBottomL_case_fn(); }