66 lines
1.2 KiB
OpenSCAD
66 lines
1.2 KiB
OpenSCAD
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);
|
|
|
|
|
|
|
|
|