3d-stuff/openscad/own/kossel-hdd_spool_holder-remix/spool_adapter.scad

93 lines
3.2 KiB
OpenSCAD
Raw Permalink Normal View History

2020-11-10 21:43:49 +01:00
// 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
// }
//}