diff --git a/venturi/venturi.FCStd b/venturi/venturi.FCStd new file mode 100644 index 0000000..6122cbc Binary files /dev/null and b/venturi/venturi.FCStd differ diff --git a/venturi/venturi.scad b/venturi/venturi.scad index 9e9ae49..9b3c148 100644 --- a/venturi/venturi.scad +++ b/venturi/venturi.scad @@ -1,20 +1,20 @@ // ======== Global Parameters ======== // $fn = 75; -inlet_segments = 60; +inlet_segments = 60; outlet_segments = 20; // ======== Venturi Geometry ======== // -inlet_length = 250; -outlet_length = 350; -inlet_radius = 300; -throat_radius = 80; -outlet_radius = 110; -wall_thickness = 5; +inlet_length = 250; +outlet_length = 350; +inlet_radius = 200; +throat_radius = 80; +outlet_radius = 110; +wall_thickness = 5; inlet_curve_factor = 2; outlet_curve_factor = 1.5; -// ======== Stacking Function ======== // +// ======== Utility Module ======== // module stacked_shell(length, r_end, thickness, segments, curve_factor, is_outer = true) { for (i = [0:segments - 1]) { h = length / segments; @@ -37,23 +37,22 @@ module stacked_shell(length, r_end, thickness, segments, curve_factor, is_outer // ======== Inlet Module ======== // module inlet() { difference() { - union() - stacked_shell(inlet_length, inlet_radius, wall_thickness, inlet_segments, inlet_curve_factor, true); - union() - stacked_shell(inlet_length, inlet_radius, wall_thickness, inlet_segments, inlet_curve_factor, false); + stacked_shell(inlet_length, inlet_radius, wall_thickness, inlet_segments, inlet_curve_factor, true); + stacked_shell(inlet_length, inlet_radius, wall_thickness, inlet_segments, inlet_curve_factor, false); } } -rotate([0, -90, 0]) inlet(); - // ======== Outlet Module ======== // module outlet() { difference() { - union() - stacked_shell(outlet_length, outlet_radius, wall_thickness, outlet_segments, outlet_curve_factor, true); - union() - stacked_shell(outlet_length, outlet_radius, wall_thickness, outlet_segments, outlet_curve_factor, false); + stacked_shell(outlet_length, outlet_radius, wall_thickness, outlet_segments, outlet_curve_factor, true); + stacked_shell(outlet_length, outlet_radius, wall_thickness, outlet_segments, outlet_curve_factor, false); } } -rotate([0, 90, 0]) outlet(); \ No newline at end of file +// ======== Top-Level Geometry ======== // +translate([0, 0, 0]) + rotate([0, -90, 0]) inlet(); + +translate([0, 0, 0]) + rotate([0, 90, 0]) outlet(); \ No newline at end of file