Dynamixel XL330 horns

From IxD Studio
Jump to navigation Jump to search

XL330 horns

OpenSCAD code

$fn=32;

inner = 6; // 6mm inner empty space for front hornet screw
outer = 8.25;  // 8.25mm outer radius of XL330 servo hornet

r = 0.8; // d=1.6mm pins on the XL330 servo hornet (inlet)
l = 2.5; // l=2.5mm, how deep the inlet travel in the hornet -- 2.5mm
t = 2; // t=2mm, global thickness
d = 16; // d=16mm, front/back hand distance
h = 30; // h=30mm, upper hand distance

module pins(r, l, t){
    /* r: radius, l: length, t: thickness */
    translate([inner,0,t]) cylinder(l, r, r);
    translate([-inner,0,t]) cylinder(l, r, r);
    translate([0,inner,t]) cylinder(l, r, r);
    translate([0,-inner,t]) cylinder(l, r, r);
    }

module disc(thichness=t){
    difference(){
        union(){
            cylinder(t, outer, outer);
            cylinder(t, t, t);
        }
        cylinder(t, inner/2, inner/2);
        }
    }

module frontArm(d, t){
    difference(){
        translate([-outer/2, 0, 0]) cube([outer, d, t]);
        cube([2*inner,2*inner,2*t],true);
        }
    }

module upperArm(d, h, t){
    rotate([90,0,0]) translate([-outer/2, 0, -d]) cube([outer, h, t]);
    }

module backArm(d, h, t){
    union(){
        translate([-outer/2, -(2*t), h]) cube([outer, d+(2*t), t]);
        translate([0, 0, h-t]) cylinder(t, inner/2, inner/2);
    }
    }

//
union(){
    union(){
        union(){
            union(){
                pins(r, l, t);
                disc(t);
                }
            frontArm(d, t);
            }
        upperArm(d, h, t);
    }
    backArm(d, h, t);
}

File:Xl330-rotating-horn-modular.png
Dynamixel XL330 horn