Download or view caltrops.frink in plain text format
/** This generates a caltrops for 3-D printing. */
res = 254/inch // Resolution of model in voxels/inch
length = 1 inch // Leg length from center
baseRadius = .2 inch // Radius of base of leg
c = length res / sqrt[3] // Scaling factor to make voxels come out right
// The vertices of the tetrahedron. These need to be scaled by c.
// There are other ways of calculating the vertices. The angle between vertices
// is arccos[-1/3] or 109.47122063449 degrees.
vertices = [[1,1,1], [1,-1,-1], [-1,1,-1], [-1,-1,1]]
v = undef
// Make legs
for [x,y,z] = vertices
{
v2 = leg[x c, y c, z c, baseRadius res]
v = v2.union[v] // v is allowed to be null in which case v2 is copied
}
v.projectX[undef].show["X"]
v.projectY[undef].show["Y"]
v.projectZ[undef].show["Z"]
filename = "caltrops.obj"
print["Writing $filename..."]
w = new Writer[filename]
w.println[v.toObjFormat["v", 1/(res mm)]]
w.close[]
println["done."]
leg[tipx, tipy, tipz, baseRadius] :=
{
return callJava["frink.graphics.VoxelArray", "makeTaperedCappedCylinder", [0,0,0, tipx, tipy, tipz, baseRadius, 0]]
}
Download or view caltrops.frink in plain text format
This is a program written in the programming language Frink.
For more information, view the Frink
Documentation or see More Sample Frink Programs.
Alan Eliasen was born 20217 days, 15 hours, 39 minutes ago.