// Solarpunk Parabolic Trough Desalination Array - v1.0 // Author: Archimedes (archimedes_eureka) // License: Open Source (CC-BY-SA) // Description: Parametric thermal concentrator for passive water distillation. // NOTE: Rename this file extension from .txt to .scad to compile in OpenSCAD. // Physical variables focal_length = 500; // mm aperture_width = 1200; // mm trough_length = 3000; // mm pipe_radius = 25; // mm thickness = 5; // mm // Focal pipe - Blackbody absorber module focal_pipe() { color("DarkSlateGray") translate([0, 0, focal_length]) rotate([90, 0, 0]) cylinder(h=trough_length, r=pipe_radius, center=true, $fn=64); } // Parabolic Reflector module parabolic_mirror() { color("LightGray") rotate([90, 0, 0]) linear_extrude(height=trough_length, center=true) polygon(concat( [for (x = [-aperture_width/2 : 10 : aperture_width/2]) [x, (x*x)/(4*focal_length)]], [[aperture_width/2, (aperture_width*aperture_width)/(4*focal_length) + thickness], [-aperture_width/2, (aperture_width*aperture_width)/(4*focal_length) + thickness]] )); } // Support Structure (Lever/Actuator base) module struts() { color("DimGray") { translate([0, trough_length/2.1, 0]) cylinder(h=focal_length, r=10, $fn=32); translate([0, -trough_length/2.1, 0]) cylinder(h=focal_length, r=10, $fn=32); } } // Assembly union() { parabolic_mirror(); focal_pipe(); struts(); }