From 117a3e79bd2001cdf486eca7d92b13c55da3e699 Mon Sep 17 00:00:00 2001 From: Olivier Boesch <47700716+olivier-boesch@users.noreply.github.com> Date: Wed, 9 Sep 2020 21:43:30 +0200 Subject: [PATCH] Added TowerPro SG90 Servo features: * screws * cables output * axle --- servos.scad | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/servos.scad b/servos.scad index 45a809c..4970e76 100644 --- a/servos.scad +++ b/servos.scad @@ -9,6 +9,50 @@ use +/** + * TowerPro SG90 servo + * + * @param vector position The position vector + * @param vector rotation The rotation vector + * @param boolean screws If defined then "screws" will be added and when the module is differenced() from something if will have holes for the screws + * @param boolean cables If defined then "cables" output will be added and when the module is differenced() from something if will have holes for the cables output + * @param number axle_length If defined this will draw a red indicator for the main axle + */ +module towerprosg90(position=undef, rotation=undef, screws = 0, axle_length = 0, cables=0) +{ + translate(position) rotate(rotation) { + difference(){ + union() + { + translate([-5.9,-11.8/2,0]) cube([22.5,11.8,22.7]); + translate([0,0,22.7-0.1]){ + cylinder(d=11.8,h=4+0.1); + hull(){ + translate([8.8-5/2,0,0]) cylinder(d=5,h=4+0.1); + cylinder(d=5,h=4+0.1); + } + translate([0,0,4]) cylinder(d=4.6,h=3.2); + } + translate([-4.7-5.9,-11.8/2,15.9]) cube([22.5+4.7*2, 11.8, 2.5]); + } + //screw holes + translate([-2.3-5.9,0,15.9+1.25]) cylinder(d=2,h=5, center=true); + translate([-2.3-5.9-2,0,15.9+1.25]) cube([3,1.3,5], center=true); + translate([2.3+22.5-5.9,0,15.9+1.25]) cylinder(d=2,h=5, center=true); + translate([2.3+22.5-5.9+2,0,15.9+1.25]) cube([3,1.3,5], center=true); + } + if (axle_length > 0) { + color("red", 0.3) translate([0,0,29.9/2]) cylinder(r=1, h=29.9+axle_length, center=true); + } + if (cables > 0) color("red", 0.3) translate([-12.4,-1.8,4.5]) cube([10,3.6,1.2]); + if(screws > 0) color("red", 0.3) { + translate([-2.3-5.9,0,15.9+1.25]) cylinder(d=2,h=10, center=true); + translate([2.3+22.5-5.9,0,15.9+1.25]) cylinder(d=2,h=10, center=true); + } + } + +} + /** * Align DS420 digital servo *