Dynamixel XL330 pulley: Difference between revisions

From IxD Studio
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
[[File:Xl330-pulley.png|thumb]]
[[File:Xl330-pulley.png|thumb]]
<pre>
<pre>
$fn=32;
$fn=32;


w = 5.3; // cog thickness  
w = 5.3; // pulley thickness  
inner = 6; // fixed number (inner radius non-overlapping with the servo's screw)
inner = 6; // fixed number (inner radius non-overlapping with the servo's screw)
outer = 10; // adjust this number to increase the outer radius
outer = 10; // adjust this number to increase the outer radius
Line 24: Line 25:


module disc(inner, outer){
module disc(inner, outer){
    // disc to 'cover' the gear library holes in your design
     difference(){
     difference(){
         cylinder(w, outer, outer);
         cylinder(w, outer, outer);
Line 41: Line 41:
                     circle(r);
                     circle(r);
         }
         }
         translate([outer+0.5, 0, 2]) cylinder(10, 0.5, 0.5);  
         translate([outer+0.5, 0, 0]) cylinder(2*w, screw/2, screw/2);  
     }
     }
}
}

Revision as of 11:29, 13 May 2026


$fn=32;

w = 5.3; // pulley thickness 
inner = 6; // fixed number (inner radius non-overlapping with the servo's screw)
outer = 10; // adjust this number to increase the outer radius
screw = 1;

module mounts(screw, inner, outer){
    // module for screw mounts
    union(){
        union(){
            union(){
                translate([inner,0,-2]) cylinder(outer, screw, screw);
                translate([-inner,0,-2]) cylinder(outer, screw, screw);
            }
            translate([0,inner,-2]) cylinder(outer, screw, screw);
        }
        translate([0,-inner,-2]) cylinder(outer, screw, screw);
    }
}


module disc(inner, outer){
    difference(){
        cylinder(w, outer, outer);
        cylinder(w, inner/2, inner/2);
    }
}

module pully(inner, outer, r, w){
    difference(){
        difference(){
            rotate_extrude(convexity = 10) 
                translate([outer + 2, w/2, 0]) 
                    circle(r);
            rotate_extrude(convexity = 10) 
                translate([outer + (inner/2), w/2, 0]) 
                    circle(r);
        }
        translate([outer+0.5, 0, 0]) cylinder(2*w, screw/2, screw/2); 
    }
}

difference(){
    union(){
        pully(inner, outer, w/2, w);
        disc(inner, outer);
    }
    mounts(screw, inner, outer);
}