SImple Horizontal Sundial
thingiverse
Use with OpenSCAD: // Simple Horizontal Sundial // By Gaziel // Remix from "Customizable Sundial" by doctek, published Feb 17, 2013 // and // "Sundial" by tatsuya, published Jun 5, 2011 D = 150; // Diameter of the sundial base ep = 3; // Thickness of the sundial's elements Latitude = 48; // Latitude at which the sundial is aligned base(); gnomon("triangle"); // Can be triangle or needle style gnomon compass(30); // Compass diameter, set to disable with a value of 0 module base(){ difference() { union() { cylinder(r1 = D, r2 = D - ep, h = ep); cylinder(r = D - ep * 2, h = 2 * ep); } for (i = [1:24]) { translate([-(D - ep / 4), 0 - 0.5, 2 * ep]) rotate([0, 0, 180 + atan(tan((i - 15) / 12) * sin(Latitude))]) cube([D / 6, 1, ep], center = true); } } } module gnomon(style = "needle"){ if (style == "needle") { hull() { translate([-(D - ep / 4), 0, ep]) cylinder(r = ep, h = 2 * ep); translate([-(D - ep / 4), 0, 2 * ep]) rotate([0, 90 - Latitude, 0]) cylinder(r1 = ep, r2 = 1, h = D); } } else if (style == "triangle") { difference() { translate([-D + (ep / 4), -ep / 2, ep * 2]) cube([D - Latitude, ep, D / 2]); translate([-D + (ep / 4), -ep / 2, ep * 2]) rotate([0, -Latitude, 0]) color("Blue") cube([D / 6, ep, D]); } } } module compass(cd){ if (cd > 0) { difference() { translate([-(D + cd / 2), 0, 0]) cylinder(r = (cd / 2) + ep, h = 2 * ep); translate([-(D + cd / 2), 0, ep]) cylinder(r = cd / 2, h = 5 * ep); } translate([-(D + cd / 2), -(cd / 2) - ep, 0]) cube([cd, cd + ep * 2, ep]); }
With this file you will be able to print SImple Horizontal Sundial with your 3D printer. Click on the button and save the file on your computer to work, edit or customize your design. You can also find more 3D designs for printers on SImple Horizontal Sundial.