thermocouple3.frink

Download or view thermocouple3.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]

// 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]]

// 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 = "thermocouple3.obj"
print["Writing $filename..."]
w = new Writer[filename]
w.println[v.toObjFormat["thermocouple", 1/(res mm)]]
w.close[]
println["done."]


Download or view thermocouple3.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 19966 days, 2 hours, 56 minutes ago.