include module sg90() { color([0,0,1,1]) difference() { union() { // Servo Body translate([pos_servo_x,pos_servo_y,pos_servo_z]) cube([servo_depth,servo_width,servo_height], center=true); // Servo Tab translate([pos_servo_tab_x,pos_servo_tab_y,pos_servo_tab_z]) cube([servo_tab_depth,servo_tab_width,servo_tab_height], center=true); // Servo Gears translate([pos_servo_gears_x,pos_servo_gears_y,pos_servo_gears_z]) { hull() { // Gear 1 translate([pos_servo_gear_1_x,pos_servo_gear_1_y,pos_servo_gear_1_z]) cylinder(d=servo_gear_1_diameter, h=servo_gear_1_height); // Gear 2 translate([pos_servo_gear_2_x,pos_servo_gear_2_y,pos_servo_gear_2_z]) cylinder(d=servo_gear_2_diameter, h=servo_gear_2_height); } // Gear 3 translate([pos_servo_gear_3_x,pos_servo_gear_3_y,pos_servo_gear_3_z]) cylinder(d=servo_gear_3_diameter, h=servo_gear_3_height); } } // Servo tab holes for(i=[-1,1]){ translate([i*pos_servo_tab_hole_x,pos_servo_tab_hole_y,pos_servo_tab_hole_z]) { cylinder(d=servo_tab_hole_diameter, h=servo_tab_hole_height); } } } //Gear Servo Fastener color([1,1,1,1]) translate([pos_servo_gear_fastener_x,pos_servo_gear_fastener_y,pos_servo_gear_fastener_z]) { difference() { cylinder(d=servo_gear_fastener_diameter, h=servo_gear_fastener_height); translate([pos_servo_gear_fastener_hole_x,pos_servo_gear_fastener_hole_y,pos_servo_gear_fastener_hole_z]) cylinder(d=servo_gear_fastener_diameter_hole, h=servo_gear_fastener_height_hole); } } } sg90();