include include function Func1(x, y) = 2*(1.5 + cos(x*x + y*y/1)); function Func2(x, y) = 7+3*exp(-(y+1)^2-x^2)*(x-1)^2-exp(-(y+1)^2-x^2)/3+exp(-x^2-y^2)*(10*x^3-2*x+10*y^5); size = 13; // ring size (US) t = 18; // thickness wall = 2; // wall thickness w = 18; // flat top width h = 17; // flat top offset res = 200; // circle resolution module pattern(fn, x, y, dx, dy) { PlotFunction(fn, [-x, dx, x], [-y, dy, y]); translate([-x,-y,-2*x]) cube([2*x,2*y,2*x]); } /* difference() { translate([0,t/2,0]) rotate([90,0,0]) rectangularSignetRing(size, wall, t, w, h, res); translate([0,0,h]) scale(.35) rotate([0,180,0]) pattern(1, 40, 40, .4, .4); } */ //scale([1,2,.25]) PlotFunction(2, [-4, 0.05, 4], [-4, 0.05, 4]); difference() { difference() { translate([0,t/2,0]) rotate([90,0,0]) rectangularSignetRing(size, wall, t, w, h, res); translate([0,0,h]) scale([6,4,.5]) rotate([0,180,90]) pattern(2, 4, 4, .1, .1); } union() { translate([-20,1.25,-15]) rotate([-15,0,0]) cube([40,10,40]); mirror([0,1,0]) translate([-20,1.25,-15]) rotate([-15,0,0]) cube([40,10,40]); } }