blob52 |
The blob in all its glory:
This is derived from two toruses next to each other.
Click on the snapshot to download the blob's stl file. |
# name of the blob project = "blob52"; # function at origin must be <0, and >0 far enough away. w=0 defines the surface function w = f(x2,y2,z2,c,r) # three lobed toroid with low profile bumps and flat top x = (x2-c(1))/r(1); y=(y2-c(2))/r(2); z=(z2-c(3))/r(3); w=(-0.18619E5)+(-0.228985E4).*x.^2+0.892569E3.*x.^4+(-0.5721E2).* ... x.^6+x.^8+0.918261E3.*y.^2+(-0.558184E3).*x.^2.*y.^2+(-0.8971E2).* ... x.^4.*y.^2+0.4E1.*x.^6.*y.^2+0.226969E3.*y.^4+(-0.779E1).*x.^2.* ... y.^4+0.6E1.*x.^4.*y.^4+0.2471E2.*y.^6+0.4E1.*x.^2.*y.^6+y.^8+ ... 0.210743E4.*z.^2+0.11479E4.*x.^2.*z.^2+(-0.5771E2).*x.^4.*z.^2+ ... 0.4E1.*x.^6.*z.^2+0.849298E3.*y.^2.*z.^2+0.4842E2.*x.^2.*y.^2.* ... z.^2+0.12E2.*x.^4.*y.^2.*z.^2+0.10613E3.*y.^4.*z.^2+0.12E2.*x.^2.* ... y.^4.*z.^2+0.4E1.*y.^6.*z.^2+0.878329E3.*z.^4+0.5621E2.*x.^2.* ... z.^4+(-0.355271E-14).*x.^3.*z.^4+0.6E1.*x.^4.*z.^4+0.13813E3.* ... y.^2.*z.^4+(-0.355271E-14).*x.*y.^2.*z.^4+0.12E2.*x.^2.*y.^2.* ... z.^4+0.6E1.*y.^4.*z.^4+0.5671E2.*z.^6+0.4E1.*x.^2.*z.^6+0.4E1.* ... y.^2.*z.^6+z.^8;; endfunction; c_outer = [0,0,0]; r_outer = [20,20,20]; xmin = -120; xmax = 120; step = 4; # grid pitch in mm start with 4mm to see the shape quickly. Once you have it just right, change to 2mm for printing source("../octave/func2stl_v01.m"); # do all the calculationsGNU Octave