/** This creates a signet ring for 3-D printing. */ r = 254 * 2/in innerCircumference = size10ring innerDiameter = innerCircumference / pi innerRadius = innerDiameter / 2 ringThickness = 2 mm ringWidth = 5 mm centerRadius = innerRadius + (ringThickness / 2) outerRadius = centerRadius + (ringThickness / 2) signetThickness = 3 mm signetDiameter = 15 mm signetRadius = signetDiameter / 2 embossDepth = 2 mm // Make the ring v = callJava["frink.graphics.VoxelArray", "makeSupertoroid", [centerRadius r, ringThickness/2 r, ringThickness/2 r, ringWidth/2 r, .5, 1]] v1 = v.rotate[0,0,0,1,0,0,90 deg] signet = callJava["frink.graphics.VoxelArray", "makeTaperedCylinder", [0,0,centerRadius r,0,0,(centerRadius+signetThickness) r, signetRadius r, signetRadius r]] img = new image["https://frinklang.org/frinksamp/tnslogo.png"] pixelTool = newJava["frink.graphics.VoxelArray", [0,2,0,2,0,2,true]] emboss = signet.planarEmboss[img, 0, .6 mm r, .89 signetDiameter r, .89 signetDiameter r, 0, 250, 0, 0, embossDepth r, 0, pixelTool, 0, 0, 0] v = v1.union[signet] v.remove[emboss] v.projectX[undef].show["X"] v.projectY[undef].show["Y"] v.projectZ[undef].show["Z"] outfile = "signetRing.obj" w = new Writer[outfile] print["Writing $outfile..."] w.println[v.toObjFormat["signetRing", 1/(r mm)]] w.close[] println["done."]