62 lines
1.1 KiB
OpenSCAD
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=2,h=20);
|
|
}
|
|
}
|
|
}
|