XMas stuff: OpenSCAD Vase/Bowl Generator

in #printing3d2 years ago (edited)

Hi guys !

It is nearly Christmas, you can have fun 3d printing your own math art vases.
I found recently this nice little OpenSCAD script to generate vase/bowl. It is pretty fun to play with it and 3d print this kind of math art.

OpenSCAD is a CAD software with its own programming language, you describe your geometry using this language. It is pretty handy to describe complex geometries or complex designs. There is an important and active community around it.

I am using the script from bda found here: https://www.thingiverse.com/thing:2150607
Follows this short magic script ^^

accuracy =1; // detalization in mm (0.25,0.4,0.5,1.0,2,3,4,5,6,10,20)
vase = 1; // 1 for vase, 0 for candybowl

qty = 10; // quantity of protrusion
tw = 60; // angle of twist
pvv = 0.82; // part of sinusoid vertical 0.3-1.0
pt = 1.5; // part of sinusoid for twist or 0 for linear
kv = 0.6; // koeff vertical < 1.0
kp = 0.06; // koeff protrusion < 0.5

pv = ((vase==1)?1:0) + pvv; // part of sinusoid vertical 0.5-1.0 for bowl, 1.5-1.9 for vase
h = (vase==1)?180:60; // height of vase
d = 100; // base diameter

function fz(z) = d/2+sin(pv180z/h)kvd/2; // radius by height
function fy(angle) = sin(angleqty)kpd/2; // radius by angle
function fx(z) = ((pt==0)?1:sin(pt
180z/h))tw*z/h; // twist: angle by height

function f(z,angle)= fz(z)+fy(angle+fx(z));

e = h/floor(h/accuracy);
dz = e; // height of layer
n = 360/e; // quantity of segments
a = 360/n; // step: angle of segment

module shape()
p = [for( z=[0:dz:h], angle=[0:a:360-a]) [ sin(angle)f(z,angle), cos(angle)f(z,angle), z ]];

m = nh/dz;
echo("accuracy",e, "faces",2
f1 = [for( q=[0:n:m-n], i=[0:n-1], j=[0:1])
(j==0)? ( (i==n-1)? [q+n-1, q, q+n ] : [q+i, q+i+1, q+i+n+1] ):
( (i==n-1)? [q+n-1, q+n, q+2*n-1] : [q+i, q+i+n+1, q+i+n ] )];

f = concat([[for(i=[0:n-1]) i]],[[for(i=[m:m+n-1]) i]], f1); // add bottom and roof

polyhedron(points=p, faces=f);


The script is well documented, you need to play with the parameters to find something you like.
If you want to have easy to print overhangs do not put to much twist and too large coefficient for the protrusion (except if you want to have fun )
For the parameter accuracy for saving the STL for 3D printing, I switch it to 0.25 to obtain a huge STL with nice curves. It takes a few minutes to render in this case.

Follows one bowl and two vases I printed (1.6mm bottom layers, 0.8mm extrusion width, vase mode, transparent PLA printed with high temperature and no cooling)

This bowl is pretty cool to print, it is my favorite. It is a kind of controlled print failure: many overhangs cannot be printed, it creates nice effects with the filament printed at high temperature that drops.
Thingiverse link: https://www.thingiverse.com/thing:3299744

Next follows a more regular vase with soft overhangs, I kept the body very flat with few large protrusions. Follows the link on Thingiverse with the full script: https://www.thingiverse.com/thing:3294246


Finally, another vase variant but with 13 sides, larger also, with sharper protrusions.
Follows the link on Thingiverse: https://www.thingiverse.com/thing:3299724


Happy printing !