// hull.scad // (c) Simon Brooke 2025; CC-BY-SA include include // doesn't work, but it's promising module hull_i() { color("darkgreen", 0.5) difference() { translate([1000, 0, 600]) rotate([0, 5, 0]) scale([3.49, .79, 1.19]) difference() { sphere(r=500); cube([1000, 1000, 1000]); } intersection() { translate([1000, 0, 600]) rotate([0, 5, 0]) scale([3.5, .8, 1.2]) sphere(r=500); rotate([0, 95, 0]) translate([-500,0,0]) prismoid(size1=[1000, 1000], size2=[500, 600], height=3000); } } } module hull() { intersection() { translate([2500,0,500]) rotate([180, 90, 0]) scale([20, 15.5, 20]) rotate_extrude() //rotate([ 0, 90, 0]) import("library/hull-volume-of-rotation.svg"); translate([-400,0, 350]) rotate([0, 90, 0]) prismoid(size1=[900, 1000], size2=[400, 600], height=3000); } rotate([0,90,0]) translate([-500,0,-1570]) difference() { skin( [ellipse($fn=64,r=[350,30]), ellipse($fn=64,r=[430,340])], z=[0,1200], slices=40,sampling="length",method="reindex"); skin( [ellipse($fn=64,r=[344,24]), ellipse($fn=64,r=[424,334])], z=[-1,1201], slices=40,sampling="length",method="reindex"); } } hull();