// Adjustable HDD-Spoolholder // by zeus - zeus@ctdo.de - CC-BY-NC-4.0 // -> https://www.thingiverse.com/zeus // -> https://github.com/zeus86 // 2020-10-31 // ===================================================================== // on the given measurements you'll need springs with approx. 5.5x17mm ( // some variables spool_id = 32; // outer diameter of the inner ring total_h=8.5; //...of the disc-section brim_w=150; // ...of the disc-section brim_h=2.7; // baseplate height spindle_dia=25.2; // inner diameter, the hdd-spindle-motor mount slider_hole=3.25; //slot-width slot_num=12; // number of slots slot_num_slider=6; // number of sliders angle = 360/slot_num; angle_slider = 360/slot_num_slider; spring_dia=5.5; // diameter of the tension springs spring_recess=1.75; // amount of indentation into the inner ring slider_screw_dia=4;// for M3 brass insert handle_thickness=3; // this lip grabs onto the inner side of the spool handle_height=10; // height of mentioned lip insert_h=8; // M3-insert is actually 5.7 in dia, but abit more won't hurt to give a stury base to the sliders $fn=100; // ===================================================================== module main_spool() { union() { cylinder(r=brim_w/2, h=brim_h); cylinder(r=spool_id/2, h=total_h); } } module hollow_center() { translate([0,0,-.5]) { cylinder(r=spindle_dia/2, h=total_h+1); } } module slot() { hull(){ translate([brim_w/2-slider_hole,0,-0.1]){ cylinder(r=slider_hole/2,h=brim_h+0.2); } translate([spool_id/2+slider_hole,0,-0.1]){ cylinder(r=slider_hole/2,h=brim_h+0.2); } } } module spring_insert() { rotate([0,90,0]){ translate([-(brim_h+spring_dia/2+0.1),0,spool_id/2-spring_recess]){ cylinder(r=spring_dia/2,h=spool_id/2-spindle_dia/2); } } } module base() { difference() { main_spool(); hollow_center(); for (n=[1:slot_num]) rotate([0,0,(n-1)*angle]) slot(); for (n=[1:slot_num]) rotate([0,0,(n-1)*angle]) spring_insert(); } } module slider() { difference(){ union(){ cylinder(r=brim_w/2,h=insert_h); // translate([0,0,total_h-brim_h])cylinder(r=spool_id/2+handle_thickness,h=handle_height); // handle } translate ([0,0,-0.1])cylinder(r=spool_id/2,h=total_h-brim_h+handle_height+0.2); // center cutout for (n=[1:slot_num_slider]) rotate([0,0,(n-1)*angle_slider])translate([-0.5,1,-0.1])cube([1,brim_w/2,total_h+handle_height]); // slits for (n=[1:2:slot_num]) rotate([0,0,(n)*angle])translate([0,brim_w/2-slider_hole*2,-0.1])cylinder(r=slider_screw_dia/2,h=insert_h+0.2); //outer insert hole for (n=[1:2:slot_num]) rotate([0,0,(n)*angle])translate([0,brim_w/3-slider_hole*2,-0.1])cylinder(r=slider_screw_dia/2,h=insert_h+0.2); //inner insert hole for (n=[1:2:slot_num]) rotate([0,0,(n-1)*angle]) translate ([spring_recess/2,0,-brim_h])spring_insert(); //scpring holes } } base(); //translate([0,0,brim_h+0.1])slider(); //translate([0,0,brim_h+0.1]){ // difference(){ // slider(); // translate([0,0,-0.05])cube([brim_w,brim_w,total_h+handle_height]); //cross-section cube // } //}