shaftangle=5.340021; // as taken from boat...scad // shaft to motor hub + motor is 56mm long hubnmotor=56; $fn=50; module boltholes(rad){ // three holes for attaching mount to glueable base translate([10,10,-1])cylinder(9,rad,rad); translate([30,10,-1])cylinder(9,rad,rad); translate([48,10,-1])cylinder(9,rad,rad); } rotate([0,-shaftangle*0,0]) intersection() { import("boat_combineall.stl"); translate([30,0,0]) translate([0,-100,100-105]) // three lines taken from boat scad translate([150,0,0]) // (slices off a section of the hull) cube([155,200,100]); } rotate([0,shaftangle,0]) // example motor hub and motor - just a cylinder of the right length { translate([247,0,59]) rotate([0,90,0]) difference() { cylinder(hubnmotor,15,15); translate([0,0,-0.5])cylinder(hubnmotor+1,3,3); } } translate([220,0,0]) rotate([0,shaftangle*0,0]) // needs *0 to unrotate, to make it flat for printing { translate([0,-10+30,0])cube([70,20,25]); // base rectangle translate([0,-10-30,0])cube([70,20,25]); // base rectangle translate([22,0,0]) { translate([0,-20,18]) difference() { // rectangle attached to motor cube([5,40,37]); translate([0,20,20.5]) // centered on shaft union()// motor bolt holes (16mm and 19mm diameter) { translate([-1,0,0]) rotate([0,90,0])cylinder(10,2,2); // center shaft for(i=[-1,1]) { translate([-1,19/2*i,0]) rotate([-1,90,0])cylinder(10,1.5,1.5); translate([-1,0,16/2*i]) rotate([0,90,0])cylinder(10,1.5,1.5); } } } hull() // sloping wall, left { translate([0,-10-15,32]) // top cube([5,5,23]); translate([0+30,-10-15,32]) // bottom, towards rear cube([5,5,5]); translate([0-20,-10-15,32]) // bottom, towards front cube([5,5,5]); } translate([-20,-20-20,32]) // wide base, left difference() { cube([55,20,4]); boltholes(1.5); } hull() // sloping wall, right { translate([0,20,32]) // top cube([5,5,23]); translate([0+30,20,32]) // bottom, towards rear cube([5,5,5]); translate([0-20,20,32]) // bottom, towards front cube([5,5,5]); } translate([-20,20,32]) // wide base, right difference() { cube([55,20,4]); boltholes(1.5); } // these two are printed sep, with higher infil and glued to mouting points in // hull, to provide screwable base for the above motor mount translate([-20,-20-20,25]) // lower wide base, left difference() { cube([55,20,7]); translate([0,0,1.25])boltholes(1.25); } translate([-20,20,25]) // lower wide base, right difference() { cube([55,20,7]); translate([0,0,1.25])boltholes(1.25); } } }