93 lines
3.2 KiB
OpenSCAD
93 lines
3.2 KiB
OpenSCAD
// 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
|
|
// }
|
|
//}
|
|
|
|
|
|
|
|
|