$fn=100; EXTRUSION_W = 40; EXTRUSION_H = 40; EXTRUSION_D = 40; MOTOR_W = 43; MOTOR_H = 43; p = [ [0, 0], [0, EXTRUSION_H - MOTOR_H / 2 + MOTOR_H - 1.5], [MOTOR_W + 5, EXTRUSION_H - MOTOR_H / 2 + MOTOR_H - 1.5], [MOTOR_W + 5, EXTRUSION_H], [MOTOR_W + 5 + 60, EXTRUSION_H], [MOTOR_W + 5 + 60, 0], ]; p2 = [ [0, 0], [0, EXTRUSION_H - MOTOR_H / 2 - 1.5], [EXTRUSION_D, EXTRUSION_H - MOTOR_H / 2 + MOTOR_H - 1.5], [EXTRUSION_D + 5, EXTRUSION_H - MOTOR_H / 2 + MOTOR_H - 1.5], [EXTRUSION_D + 5, 0], ]; module plate() { difference() { union() { translate([0,5,0]) rotate([90,0,0]) linear_extrude(5) polygon(p); hull() { translate([0,5,0]) rotate([90,0,0]) linear_extrude(5) square([MOTOR_W + 60 + 5, EXTRUSION_H - 1.5 - 8]); translate([MOTOR_W - 6, 5+12-1, 0]) rotate([90,0,0]) linear_extrude(1) square([60 + 5 + 6, EXTRUSION_H - 1.5 - 8 - 2]); translate([MOTOR_W, 5+20-1, 0]) rotate([90,0,0]) linear_extrude(1) square([60 + 5 - 8, EXTRUSION_H - 1.5 - 8 - 2 - 4]); } translate([0, -EXTRUSION_D, 0]) cube([MOTOR_W, EXTRUSION_D, EXTRUSION_H - MOTOR_H / 2 - 1.5]); translate([-5, -EXTRUSION_D, 0]) rotate([90,0,90]) linear_extrude(5) polygon(p2); translate([MOTOR_W, -EXTRUSION_D, 0]) rotate([90,0,90]) linear_extrude(5) polygon(p2); } // Motor shaft hole translate([MOTOR_W / 2, 25, EXTRUSION_H - 1.5]) rotate([90,0,0]) cylinder(26, r= 24/2); // Motor screws holes translate([6, 25, EXTRUSION_H - MOTOR_H / 2 + 6 - 1.5]) rotate([90,0,0]) cylinder(26, r= 3.3/2); translate([6, 25, EXTRUSION_H - MOTOR_H / 2 + 6 - 1.5]) rotate([90,0,0]) cylinder(21, r= 6/2); translate([MOTOR_W - 6, 25, EXTRUSION_H - MOTOR_H / 2 + 6 - 1.5]) rotate([90,0,0]) cylinder(26, r= 3.3/2); translate([MOTOR_W - 6, 25, EXTRUSION_H - MOTOR_H / 2 + 6 - 1.5]) rotate([90,0,0]) cylinder(21, r= 6/2); translate([6, 25, EXTRUSION_H - MOTOR_H / 2 + MOTOR_H - 6 - 1.5]) rotate([90,0,0]) cylinder(26, r= 3.3/2); translate([MOTOR_W - 6, 25, EXTRUSION_H - MOTOR_H / 2 + MOTOR_H - 6 - 1.5]) rotate([90,0,0]) cylinder(26, r= 3.3/2); // part screw hold hole 1 translate([MOTOR_W + 15, 25, EXTRUSION_H / 2]) rotate([90,0,0]) cylinder(26, r= 6.3/2); translate([MOTOR_W + 15, 25, EXTRUSION_H / 2]) rotate([90,0,0]) cylinder(21, r= 12/2); // part screw hold hole 2 translate([MOTOR_W + 15 + 30, 25, EXTRUSION_H / 2]) rotate([90,0,0]) cylinder(26, r= 6.3/2); translate([MOTOR_W + 15 + 30, 25, EXTRUSION_H / 2]) rotate([90,0,0]) cylinder(20, r= 12/2); } } plate();