include include include include module lower_hold_floor() { difference() { intersection() { scale([.9675,.9659,.9659]) hull() { outer_shell(); } translate([-300,-150,-85]) cube([600,300,5]); } translate([0,0,-80]) grid(); translate([0,0,-123]) cylinder(40.2,6.9,6.9, $fn=200); translate([-125,0,-123]) cylinder(40.2,6.9,6.9, $fn=200); translate([125,0,-123]) cylinder(40.2,6.9,6.9, $fn=200); translate([3.5+25,3.5,-86]) cube([18,18,7]); } // Masts translate([0,0,-80]) cylinder(37,6.5,6.5, $fn=200); translate([0,0,-83]) cylinder(6,8,8, $fn=200); translate([-125,0,-80]) cylinder(37,6.5,6.5, $fn=200); translate([-125,0,-83]) cylinder(6,8,8, $fn=200); translate([125,0,-80]) cylinder(37,6.5,6.5, $fn=200); translate([125,0,-83]) cylinder(6,8,8, $fn=200); // Trapdoor difference() { translate([1.5+25,1.5,-85]) cube([22,22,6]); translate([3.5+25,3.5,-86]) cube([18,18,9]); } // Hammock Poles for ( i = [0 : 7] ){ translate([-25+25*i,-25,-85]) cylinder(40,2.5,2.5, $fn=200); translate([-25+25*i,25,-85]) cylinder(40,2.5,2.5, $fn=200); } // Staircase translate([-102,-27,-85]) cube([4,4,42]); translate([-77,-27,-85]) cube([4,4,42]); translate([-102,-2,-85]) cube([4,4,42]); translate([-77,-2,-85]) cube([4,4,42]); translate([-102,23,-85]) cube([4,4,42]); translate([-77,23,-85]) cube([4,4,42]); difference() { union() { translate([-101,-30,-80]) rotate([-51,0,0]) cube([2,5,70]); translate([-76,-30,-80]) rotate([-51,0,0]) cube([2,5,70]); } translate([-105,-30,-82]) cube([35,5,5]); translate([-105,15,-43]) cube([35,15,15]); } for ( i = [0 : 8] ){ translate([-101,-25+4.94*i,-79+4*i]) cube([27,4,2]); } } module lower_hold_frame() { intersection() { union() { boat_skin(); intersection() { keel(true); translate([-300,-150,-80]) cube([600,300,35]); } } translate([-300,-150,-80]) cube([600,300,40]); } for ( i = [0 : 9] ) { translate([32.5,-75-4,-79+4*i]) cube([10,2,1]); translate([32.5,77,-79+4*i]) cube([10,2,1]); } }