open_scad_projects/wire_dispenser.scad
2023-01-28 14:01:11 -08:00

62 lines
1.1 KiB
OpenSCAD

module wire_dispenser(){
axle_length=180;
module wire_dispenser_side(){
// Parameters
base_number=63;
axle_holder_width=base_number/8;
axle_holder_height=35;
axle_diameter=22;
axle_shift=43;
sphere_radius=3;
minkowski(){
difference(){
union(){
translate([base_number/4,0,0]){
cylinder(d=base_number,axle_holder_width,$fn=3);
}
translate([base_number/4,-base_number/4,0]){
cube([axle_holder_height,base_number/2,base_number/8]);
}
}
translate([axle_shift,0,2]){
cylinder(d=axle_diameter + (sphere_radius*2), h=(base_number/2));
}
}
sphere(sphere_radius);
}
}
module mirror_copy(mirrorvector){
children();
mirror( mirrorvector ) children();
}
mirror_copy([0,0,1]) translate([0,0,-((axle_length/2)+5)])wire_dispenser_side();
minkowski(){
union(){
translate([1,0,0]) cube([2,50,axle_length], center=true);
translate([10,-25,0]) cube([20,5,axle_length+10], center=true);
}
sphere(3);
}
}
rotate([0,-90,0]){
difference(){
wire_dispenser();
for (i = [-58 : 29 : 58]){
translate([12,-15,i]) rotate([90,0,0]) cylinder(d=4,h=20);
}
}
}