SImple Horizontal Sundial

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]); }

Download Model from thingiverse

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.