kopia lustrzana https://gitlab.com/markol/embroiderino
56 wiersze
1.7 KiB
OpenSCAD
56 wiersze
1.7 KiB
OpenSCAD
encoder_wheel_axial_hole_dia = 9.3;
|
|
encoder_blades_no = 10;
|
|
encoder_wheel_dia = encoder_wheel_axial_hole_dia*1.6 + 10;
|
|
|
|
encoder_mount_screw_dia = 5;
|
|
encoder_wheel();
|
|
//encoder_mount();
|
|
|
|
// this part was designed to fit into particular machine model, probably you need to redesign this
|
|
module encoder_mount()
|
|
{
|
|
rotate([0,-90,45]) linear_extrude(height=2) polygon([[0,4],[0,28],[13,28]]);
|
|
difference(){
|
|
translate([-22,18,0]) cube([5,4,31]);
|
|
// holes
|
|
translate([-20,22,18]) rotate([90,0,0]) {
|
|
cylinder(r=1.0, h=20);
|
|
translate([0,11,0]) cylinder(r=1.0, h=20);
|
|
}
|
|
}
|
|
difference(){
|
|
hull(){
|
|
for (i = [1,-1])
|
|
translate([i*2,0,0]) cylinder(r=encoder_mount_screw_dia, h=2);
|
|
translate([-22,16,0]) cube([5,6,2]);
|
|
}
|
|
hull(){
|
|
for (i = [1,-1])
|
|
translate([i*2,0,0]) cylinder(r=encoder_mount_screw_dia/2, h=2);
|
|
}
|
|
}
|
|
}
|
|
|
|
module encoder_wheel(){
|
|
blade_angle = 360 / encoder_blades_no/2;
|
|
|
|
difference(){
|
|
union(){
|
|
for(i=[0:blade_angle:360])
|
|
rotate([0,0,i*2]) encoder_blade(blade_angle);
|
|
|
|
cylinder(r=encoder_wheel_axial_hole_dia*0.8, h = 8);
|
|
}
|
|
cylinder(r=encoder_wheel_axial_hole_dia/2, h = 10);
|
|
translate([encoder_wheel_axial_hole_dia-7.5,-3,0]) cube([4,6,10]);
|
|
}
|
|
}
|
|
|
|
module encoder_blade(angle = 10)
|
|
intersection(){
|
|
difference(){
|
|
cylinder(r=encoder_wheel_dia/2, h = 1);
|
|
translate([0,-encoder_wheel_dia,0]) cube([encoder_wheel_dia, encoder_wheel_dia*2, 1]);
|
|
}
|
|
rotate([0,0,angle]) cube([encoder_wheel_dia, encoder_wheel_dia, 1]);
|
|
}; |