67 lines
1.7 KiB
OpenSCAD
67 lines
1.7 KiB
OpenSCAD
// hull.scad
|
|
|
|
// (c) Simon Brooke 2025; CC-BY-SA
|
|
|
|
include <BOSL2/std.scad>
|
|
include <BOSL2/skin.scad>
|
|
|
|
// 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([1850,0,500])
|
|
rotate([180, 90, 0])
|
|
scale([20, 15.5, 15.5])
|
|
rotate_extrude()
|
|
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();
|