109 lines
3.8 KiB
OpenSCAD
109 lines
3.8 KiB
OpenSCAD
$fn = 200;
|
|
|
|
plate_width = 70;
|
|
plate_depth = 140;
|
|
plate_height = 2;
|
|
mounting_hole_diameter = 5;
|
|
mounting_hole_outer_offset = 5.5;
|
|
mounting_hole_true_offset = mounting_hole_outer_offset + (mounting_hole_diameter/2);
|
|
power_switch_hole_width = 13.5;
|
|
power_switch_hole_depth = 19.9;
|
|
|
|
oem_pcb_mount_post_diameter = 5;
|
|
oem_pcb_upper_mount_x_outer_dimension = 13;
|
|
oem_pcb_upper_mount_y_outer_dimension = 22.5;
|
|
oem_pcb_upper_mount_center_x = plate_width - oem_pcb_upper_mount_x_outer_dimension + (oem_pcb_mount_post_diameter/2);
|
|
oem_pcb_upper_mount_center_y = oem_pcb_upper_mount_y_outer_dimension - (oem_pcb_mount_post_diameter/2);
|
|
|
|
oem_pcb_lower_mount_x_outer_dimension = 36.25;
|
|
oem_pcb_lower_mount_y_outer_dimension = 26;
|
|
oem_pcb_lower_mount_center_x = plate_width - oem_pcb_lower_mount_x_outer_dimension + (oem_pcb_mount_post_diameter/2);
|
|
oem_pcb_lower_mount_center_y = plate_depth - oem_pcb_lower_mount_y_outer_dimension + (oem_pcb_mount_post_diameter/2);
|
|
|
|
oem_pcb_mount_post_height = 60;
|
|
oem_pcb_mount_new_post_diameter = 6;
|
|
|
|
function in(inches) = inches * 25.4;
|
|
|
|
oled_width = 33;
|
|
oled_depth = 18;
|
|
feather_mount_screw_hole_diameter = 2.2;
|
|
feather_width = 51;
|
|
feather_depth = 23;
|
|
|
|
featherWidth = in(2);
|
|
featherDepth = in(0.9);
|
|
|
|
feather_position_x = plate_width/2 - featherWidth/2;
|
|
feather_position_y = 30;
|
|
|
|
module featherPosts(height=4) {
|
|
hole_center_offset = in(0.1);
|
|
mount_post_diameter = feather_mount_screw_hole_diameter+2;
|
|
|
|
translate([hole_center_offset, hole_center_offset, 0]) {
|
|
cylinder(h = height, d = mount_post_diameter);
|
|
}
|
|
translate([featherWidth - hole_center_offset, hole_center_offset, 0]) {
|
|
cylinder(h = height, d = mount_post_diameter);
|
|
}
|
|
translate([featherWidth - hole_center_offset, featherDepth - hole_center_offset, 0]) {
|
|
cylinder(h = height, d = mount_post_diameter);
|
|
}
|
|
translate([hole_center_offset, featherDepth - hole_center_offset, 0]) {
|
|
cylinder(h = height, d = mount_post_diameter);
|
|
}
|
|
|
|
}
|
|
|
|
module featherHoles(height=4) {
|
|
hole_center_offset = in(0.1);
|
|
mount_post_diameter = feather_mount_screw_hole_diameter+2;
|
|
|
|
translate([hole_center_offset, hole_center_offset, 0]) {
|
|
cylinder(h = height, d = feather_mount_screw_hole_diameter);
|
|
}
|
|
translate([featherWidth - hole_center_offset, hole_center_offset, 0]) {
|
|
cylinder(h = height, d = feather_mount_screw_hole_diameter);
|
|
}
|
|
translate([featherWidth - hole_center_offset, featherDepth - hole_center_offset, 0]) {
|
|
cylinder(h = height, d = feather_mount_screw_hole_diameter);
|
|
}
|
|
translate([hole_center_offset, featherDepth - hole_center_offset, 0]) {
|
|
cylinder(h = height, d = feather_mount_screw_hole_diameter);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
difference() {
|
|
union(){
|
|
cube([plate_width, plate_depth, plate_height]);
|
|
translate([feather_position_x, feather_position_y, 0]){
|
|
featherPosts(5);
|
|
}
|
|
}
|
|
translate([plate_width/2, mounting_hole_true_offset, -0.05]) {
|
|
cylinder(h= plate_height + 0.1, d = mounting_hole_diameter);
|
|
translate([0, plate_depth - (mounting_hole_true_offset * 2), 0]) {
|
|
cylinder(h= plate_height + 0.1, d = mounting_hole_diameter);
|
|
}
|
|
}
|
|
translate([feather_position_x, feather_position_y, -0.05]) {
|
|
featherHoles(5.1);
|
|
translate([10,featherDepth/2-oled_depth/2,0]) {
|
|
cube([oled_width, oled_depth, plate_height + 0.1]);
|
|
}
|
|
}
|
|
translate([plate_width/2 - power_switch_hole_depth/2, plate_depth - 50, -0.05]) {
|
|
cube([power_switch_hole_depth, power_switch_hole_width, plate_height + 0.1]);
|
|
}
|
|
}
|
|
|
|
|
|
translate([oem_pcb_upper_mount_center_x, oem_pcb_upper_mount_center_y, 0]) {
|
|
cylinder(h = oem_pcb_mount_post_height, d = oem_pcb_mount_new_post_diameter);
|
|
}
|
|
translate([oem_pcb_lower_mount_center_x, oem_pcb_lower_mount_center_y, 0]) {
|
|
cylinder(h = oem_pcb_mount_post_height, d = oem_pcb_mount_new_post_diameter);
|
|
} |