diff --git a/openscad/distance.scad b/openscad/distance.scad new file mode 100644 index 0000000..2932f82 --- /dev/null +++ b/openscad/distance.scad @@ -0,0 +1,10 @@ +size_z = 10; +rad_hole = 1.5; +seg = 360; +rad_display = 1; + +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); +} diff --git a/openscad/main_bottom.scad b/openscad/main_bottom.scad new file mode 100644 index 0000000..d4b5fcd --- /dev/null +++ b/openscad/main_bottom.scad @@ -0,0 +1,60 @@ +size_x = 85; +size_y = 85; +size_z = 10; +thick = 1.5; +pcb = 1.6; +rad_hole = 2; +seg = 360; +rad_display = 1; +// 10 - dist between display and pcb, 1 - display thick +pillar = size_z - thick + 10 + 1; +usb_x = 9; +usb_z = 0.6; + +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([-5.75, size_y/2 - thick/2, size_z/2]) + { + cube([usb_x, thick * 2, usb_z*2], center = true); + } + } + + // Add Screw Holders + for (y = [-1:1:1]) + { + x = y == 0 ? -1 : 1; + + translate([13.5 + x * 22.25, y * 35.75, -pcb + thick]) + { + difference() + { + cylinder(size_z - thick - pcb, rad_hole + 1, rad_hole + 1, $fn = seg, center = true); + cylinder(size_z, rad_hole, rad_hole, $fn = seg, center = true); + } + } + } + + // Add Display Pillars + for (x = [-1:2:1]) + { + for (y = [-1:2:1]) + { + translate([13.25 + x * 10.35, 10.75 + y * 11.6, pillar/2 - size_z/2 + thick]) + { + cylinder(pillar, rad_display, rad_display, $fn = seg, center = true); + } + } + } +} \ No newline at end of file diff --git a/openscad/main_top.scad b/openscad/main_top.scad new file mode 100644 index 0000000..c30577e --- /dev/null +++ b/openscad/main_top.scad @@ -0,0 +1,114 @@ +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); + } +} \ No newline at end of file diff --git a/stl/distance.stl b/stl/distance.stl new file mode 100644 index 0000000..7656b1f Binary files /dev/null and b/stl/distance.stl differ diff --git a/stl/main_bottom.stl b/stl/main_bottom.stl new file mode 100644 index 0000000..eead7d8 Binary files /dev/null and b/stl/main_bottom.stl differ diff --git a/stl/main_top.stl b/stl/main_top.stl new file mode 100644 index 0000000..0fdb735 Binary files /dev/null and b/stl/main_top.stl differ diff --git a/stl/zippy_cover.stl b/stl/rotary_wheel.stl similarity index 100% rename from stl/zippy_cover.stl rename to stl/rotary_wheel.stl diff --git a/stl/spool_back.stl b/stl/spool_back.stl new file mode 100644 index 0000000..eb2654f Binary files /dev/null and b/stl/spool_back.stl differ diff --git a/stl/spool_front.stl b/stl/spool_front.stl new file mode 100644 index 0000000..271132a Binary files /dev/null and b/stl/spool_front.stl differ