114 lines
2.3 KiB
OpenSCAD
114 lines
2.3 KiB
OpenSCAD
size_x = 85;
|
|
size_y = 85;
|
|
size_z = 15;
|
|
thick = 1.5;
|
|
pcb = 1.6;
|
|
rad_hole = 1.5;
|
|
seg = 360;
|
|
rad_display = 1;
|
|
usb_x = 9;
|
|
usb_z = 3;
|
|
usb_pos = 5.75;
|
|
ribbon_x = 16;
|
|
ribbon_y = 11;
|
|
ribbon_pos = -13.25;
|
|
display_x = 27;
|
|
display_y = 15;
|
|
display_pos_x = -13.25;
|
|
display_pos_y = 10.75 + 1.5;
|
|
led_size = 5;
|
|
led_pos_x = 14.75;
|
|
led_pos_y = 37.25;
|
|
btn_y = 15;
|
|
btn_z = 3.5;
|
|
btn_pos = 12.5;
|
|
battery_x = 22;
|
|
battery_y = 80;
|
|
battery_pos = 29;
|
|
|
|
union()
|
|
{
|
|
difference()
|
|
{
|
|
// Main Block
|
|
cube([size_x, size_y, size_z], center = true);
|
|
|
|
// Hollow
|
|
translate([0, 0, thick])
|
|
{
|
|
cube([size_x - 2 * thick, size_y - 2 * thick, size_z], center = true);
|
|
}
|
|
|
|
// Cut USB
|
|
translate([usb_pos, size_y/2 - thick/2, size_z/2])
|
|
{
|
|
cube([usb_x, thick * 2, usb_z*2], center = true);
|
|
}
|
|
|
|
// Cut Ribbon Cable Connector
|
|
translate([ribbon_pos, size_y/2 - ribbon_y/2, 0])
|
|
{
|
|
cube([ribbon_x, ribbon_y, size_z + 1], center = true);
|
|
}
|
|
|
|
// Cut Display
|
|
translate([display_pos_x, display_pos_y, 0])
|
|
{
|
|
cube([display_x, display_y, size_z + 1], center = true);
|
|
}
|
|
|
|
// Cut LED
|
|
translate([led_pos_x, led_pos_y, 0])
|
|
{
|
|
cube([led_size, led_size, size_z + 1], center = true);
|
|
}
|
|
|
|
// Cut Button
|
|
translate([-(size_x/2 - thick/2), btn_pos, size_z/2])
|
|
{
|
|
cube([thick * 2, btn_y, btn_z * 2], center = true);
|
|
}
|
|
|
|
// Cut Battery
|
|
translate([battery_pos, 0, 0])
|
|
{
|
|
cube([battery_x, battery_y, size_z + 1], center = true);
|
|
}
|
|
|
|
// Screw Holes
|
|
for (y = [-1:1:1])
|
|
{
|
|
x = y == 0 ? 1 : -1;
|
|
translate([-13.5 + x * 22.25, y * 35.75, 0])
|
|
{
|
|
cylinder(size_z + 1, rad_hole, rad_hole, $fn = seg, center = true);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Add Screw Holders
|
|
for (y = [-1:1:1])
|
|
{
|
|
x = y == 0 ? 1 : -1;
|
|
|
|
translate([-13.5 + x * 22.25, y * 35.75, 0])
|
|
{
|
|
difference()
|
|
{
|
|
cylinder(size_z, rad_hole + 1, rad_hole + 1, $fn = seg, center = true);
|
|
cylinder(size_z + 1, rad_hole, rad_hole, $fn = seg, center = true);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Add Ribbon Extra
|
|
translate([ribbon_pos, size_y/2 - ribbon_y/2, -size_z/2 + 5/2 + thick])
|
|
difference()
|
|
{
|
|
translate([0, -thick, 0])
|
|
{
|
|
cube([ribbon_x + thick * 2, ribbon_y, 5], center = true);
|
|
}
|
|
cube([ribbon_x, ribbon_y, 5 + 1], center = true);
|
|
}
|
|
} |