include <../common.scad> // All coordinates are in [x,y], or [x,y,z] format pcbDimensions = [79.41, 127.06]; // [x,y] pcbThickness = 1.22; // TODO move mount points mountPoints = [[0,0,0], [0,118,0], [71.0,118, 0], [71.0,0,0]]; module mountPoints_N(cylHeight, cylRad1, cylRad2, cylFn, center) { for (i=[0:3]) { p = mountPoints[i]; translate(v=[p[0], p[1], p[2]]) cylinder(r1=cylRad1, r2=cylRad2, h=cylHeight, $fn=cylFn, center=center); } } module pcb() { cube(size=[pcbDimensions[0], pcbDimensions[1], pcbThickness]); } // defined on x-z plane, start at top of pcb module frontFaceIOCutouts_N() { translate(v=[9,0,0]) cube(size=[26.0,inf50,7.5]); translate(v=[35,0,0]) cube(size=[35,inf50,17.9]); } module backFaceIOCutouts_N() { translate(v=[9,0,0]) cube(size=[61,inf50,14]); } module cutoutProfile_N() { color([1,0,1]) union() { mirror(v=[0,1,0]) translate(v=[0,-1,pcbThickness]) frontFaceIOCutouts_N(); translate(v=[0,pcbDimensions[1]-1, pcbThickness]) backFaceIOCutouts_N(); } color([0.3,0.8,0.1]) difference() { pcb(); translate(v=[3.75, 3.75]) mountPoints_N(10,2,2,10,true); } } //cutoutProfile_N(); //mountPoints_N(10,2,2, true);