Download or view thermocouple4.frink in plain text format
/** This designs a thermocouple holder for my sous vide controller for 3-D
printing. */
width = 1.2 inch
height = 1.2 inch
depth = 1 inch
potInnerRadius = 23.4 cm / 2
thickness = 3.4 mm
potOuterRadius = potInnerRadius + thickness
cutDepth = .3 in
res = 254 / inch
v = newJava["frink.graphics.VoxelArray", [round[-width res/2], round[width res], round[-depth res/2], round[depth res], 0, round[height res], true]]
// The outer surface of the cut cylinder
c1 = newJava["frink.graphics.VoxelArray", [round[-width res/2], round[width res], round[-depth res/2], round[depth res], 0, round[height res], false]]
c1.drawCylinder[0, round[-potOuterRadius res], round[height res], 0, round[-potOuterRadius res], round[(height-cutDepth) res], round[potOuterRadius res]]
// Inner surface of cut cylinder
c2 = newJava["frink.graphics.VoxelArray", [round[-width res/2], round[width res], round[-depth res/2], round[depth res], 0, round[height res], false]]
c2.drawCylinder[0, round[-potOuterRadius res], round[height res], 0, round[-potOuterRadius res], round[(height-cutDepth) res], round[potInnerRadius res]]
c1.remove[c2]
c1.translate[0, round[thickness/2 res], 0]
v.remove[c1]
// This is a tool that will carve out the channels for the thermocouple
brush = v.makeCappedCylinder[0, 0, 0, 0, 0, round[.8 in res], 4.3 mm res/2]
// This is an insertion hole
brush2 = v.makeCappedCylinder[round[.35 * width/2 res], round[depth/2 res], round[(4 mm) res], round[-.35 * width/2 res], round[-depth/2 res], round[(4 mm) res], 6 mm res/2]
// This is the cap over the insertion hole.
cap = v.construct[round[-width res/2], round[width res], round[-depth res], round[depth res], -3 mm res, 3 mm res, true]
// The "straight through" channel
//v.removeAlongLine[brush, 0, round[depth/2 res], 0, 0, round[-depth/2 res], round[.1 in res], 0, 0, round[4.3 mm res/2]]
// The channel that points left (looking from the top outside)
v.removeAlongLine[brush,
round[.35 * width/2 res], round[depth/2 res], 0,
round[.35 * -width/2 res], round[-depth/2 res], round[.1 in res], 0, 0, round[4.3 mm res/2]]
v.add[cap]
v.remove[brush2]
// The channel that points right (looking from the top outside)
//v.removeAlongLine[brush, 0, round[depth/2 res], 0, round[.7 * width/2 res], round[-depth/2 res], round[.1 in res], 0, 0, round[4.3 mm res/2]]
v.projectX[undef].show["X"]
v.projectY[undef].show["Y"]
v.projectZ[undef].show["Z"]
filename = "thermocouple4.obj"
print["Writing $filename..."]
w = new Writer[filename]
w.println[v.toObjFormat["thermocouple", 1/(res mm)]]
w.close[]
println["done."]
Download or view thermocouple4.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 20143 days, 11 hours, 19 minutes ago.