include include include include include include module window() { } //map1_walls(); //map2_walls(); //map3_walls(); deck_floor(); module deck_floor() { difference() { union() { difference() { intersection() { union() { scale([.9675,.9659,.9659]) hull() { outer_shell(); } translate([125,0,-2.8]) cylinder(5.8,8,8, $fn=200); } union() { translate([-300,-150,35]) cube([202,300,5]); } } translate([0,0,40]) grid(); translate([-125,0,-3]) cylinder(40.2,6.7,6.7, $fn=200); translate([-102-.2,23-.2,-2]) cube([4.4,4.4,39.2]); translate([-102-.2,-27-.2,-2]) cube([4.4,4.4,39.2]); translate([-102.2,-47-30+.2,34]) cube([5,4+30,17]); translate([-102.2,47-4-.2,34]) cube([5,4+30,17]); } } // Stair Cases translate([-175,-25,-6]) cube([25,50,9]); translate([-177.4,-27.4,-45]) cube([4.8,4.8,42.4]); translate([-152.4,-27.4,-45]) cube([4.8,4.8,42.4]); translate([-177.4,-2.4,-45]) cube([4.8,4.8,42.4]); translate([-152.4,-2.4,-45]) cube([4.8,4.8,42.4]); translate([-177.4,23-.4,-45]) cube([4.8,4.8,42.4]); translate([-152.4,23-.4,-45]) cube([4.8,4.8,42.4]); difference() { union() { mirror([0,1,0]) translate([-176.2,-30,-40]) rotate([-51,0,0]) cube([2.4,6,70]); mirror([0,1,0]) translate([-151.2,-30,-40]) rotate([-51,0,0]) cube([2.4,6,70]); } translate([-180,25,-42]) cube([35,5,5]); translate([-180,-30,-3]) cube([35,15,15]); } } // Mast translate([-125,0,40]) cylinder(37,6.5,6.5, $fn=200); translate([-125,0,37]) cylinder(6,8,8, $fn=200); // Walls translate([-102,39-.2,38]) cube([4,4,17]); translate([-102,23,38]) cube([4,4,17]); translate([-102,-2,38]) cube([4,4,17]); translate([-102,-27,38]) cube([4,4,17]); translate([-102,-43+.2,38]) cube([4,4,17]); translate([-102,-43+.2,38+15]) cube([4,85.6,2]); intersection() { difference() { hull() { outer_shell(); } scale([.95,.95,.95]) hull() { outer_shell(); } } translate([-304.2,-100,40]) cube([202,200,2]); } intersection() { difference() { scale([.967,.967,.967]) hull() { outer_shell(); } scale([.95,.95,.95]) hull() { outer_shell(); } } translate([-304.2,-100,39]) cube([202,200,2]); } intersection() { boat_skin(); translate([-304.2,-100,40]) cube([202,200,15]); } }