General Program Information
Input Definitions
Inputs Needed to Call the Elbow Function
o - the origin, the point corresponding to where the elbow will be drawn. o is also the center of the radius of curvature of the elbow.
Pipeinr - the inner radius of the elbow
Inputs Defined within the Elbow Function
p1 =
- x : o0
- y : o1
- z : o2
p2 =
- x : o0 - ElbowRadius(2*pipeinr) + ConRaduis(2*pipeinr)
- y : o1 - ElbowRadius(2*pipeinr) + ConRaduis(2*pipeinr)
- z : o2 - outerradius(2*pipeinr) + SocketDepth(2*pipeinr)
p3 =
- x : o0
- y : o1 + ElbowRadius(2*pipeinr) + ConRaduis(2*pipeinr)
- z : o2 + outerradius(2*pipeinr) + SocketDepth(2*pipeinr)
p4 =
- x : o0 + ElbowRadius(2*pipeinr) + outerraduis(2*pipeinr)
- y : o1
- z : o2
p5 =
- x : o0 - ElbowRadius(2*pipeinr) - pipeinr
- y : o1
- z : o2
p6 =
- x : o0
- y : o1 - ElbowRadius(2*pipeinr) - outerraduis(2*pipeinr) - zc
- z : o2 - ConRadius(2*pipeinr)
p7 =
- x : o0 + ElbowRadius(2*pipeinr) + outerraduis(2*pipeinr) + zc
- y : o1
- z : o2 + ConRadius(2*pipeinr)
p9 =
- x : o0
- y : o1 + ElbowRadius(2*pipeinr)
- z : o2
p10 =
- x : o0 - SocketDepth(2*pipeinr)
- y : o1 + ElbowRadius(2*pipeinr)
- z : o2
p11 =
- x : o0
- y : o1 + ElbowRadius(2*pipeinr) - ConRaduis(2*pipeinr)
- z : o2
p12 =
- x : o0 - SocketDepth(2*pipeinr) - zc
- y : o1 + ElbowRadius(2*pipeinr) - outerraduis(2*pipeinr)
- z : o2
p13 =
- x : o0 + zc
- y : o1 + ElbowRadius(2*pipeinr) + outerraduis(2*pipeinr)
- z : o2
p14 =
- x : o0 - SocketDepth(2*pipeinr)
- y : o1 + ElbowRadius(2*pipeinr) - ConRaduis(2*pipeinr)
- z : o2
p15 =
- x : o0
- y : o1
p16 =
- x : o0 + zc
- y : o1 + zc
p17 =
- x : o0 + ElbowRadius(2*pipeinr)
- y : o1 - SocketDepth(2*pipeinr)
- z : o2
p18 =
- x : o0 - SocketDepth(2*pipeinr)
- y : o1 + ElbowRadius(2*pipeinr)
- z : o2
R1 =
R2 =
R3 =
R4 =
H1 =
win1 =
- x : o0 - ElbowRadius(2*pipeinr) - ConRaduis(2*pipeinr) + zc
- y : o1 - ElbowRadius(2*pipeinr) - ConRaduis(2*pipeinr) + zc
- z : o2
win2 =
- x : o0 + ElbowRadius(2*pipeinr) + ConRaduis(2*pipeinr) + zc
- y : o1 + ElbowRadius(2*pipeinr) + ConRaduis(2*pipeinr) + zc
- z : o2
Note: zc corresponds to the zoom constant used within AutoCAD, defined by the basics file.
Technical Program Outline
Note: All coordinates are referenced in top view in the program unless otherwise specified
zoomwin- zooms on a window space directly around where the elbow is to be drawn
zoomwin <-- zoomwina(win1,win2)
win1 =
- x : o0 - ElbowRadius(2*pipeinr) - ConRaduis(2*pipeinr) + zc
- y : o1 - ElbowRadius(2*pipeinr) - ConRaduis(2*pipeinr) + zc
- z : o2
win2 =
- x : o0 + ElbowRadius(2*pipeinr) + ConRaduis(2*pipeinr) + zc
- y : o1 + ElbowRadius(2*pipeinr) + ConRaduis(2*pipeinr) + zc
- z : o2
torusbig - Draws the larger torus, a 3 dimensional ring that creates the outer surface of the elbow
torusbig <-- torus(p1,R1,R2)
p1 =
- x : o0
- y : o1
- z : o2
R1 =
R2 =
box1 - draws a box slightly larger than the torus, in all dimensions
box1 <-- box(p2,p3)
p2 =
- x : o0 - ElbowRadius(2*pipeinr) + ConRaduis(2*pipeinr)
- y : o1 - ElbowRadius(2*pipeinr) + ConRaduis(2*pipeinr)
- z : o2 - outerradius(2*pipeinr) + SocketDepth(2*pipe~inr~)
p3 =
- x : o0
- y : o1 + ElbowRadius(2*pipeinr) + ConRaduis(2*pipeinr)
- z : o2 + outerradius(2*pipeinr) + SocketDepth(2*pipeinr)
subtract1 - removes the box that was drawn over half of the torus in order to make it a half torus
subtract1<-- subtractD(p4,p1)
p4 =
- x : o0 + ElbowRadius(2*pipeinr) + outerraduis(2*pipeinr)
- y : o1
- z : o2
p1 =
- x : o0
- y : o1
- z : o2
*torus*small\ - draws a smaller torus
torussmall <-- torus(p1,R1,R3)
p1 =
- x : o0
- y : o1
- z : o2
R1 =
R3 =
subtract2 - removes the left half of the smaller torus
subtract2 <-- subtractA(p4,p5)
p4 =
- x : o0 + ElbowRadius(2*pipeinr) + outerraduis(2*pipeinr)
- y : o1
- z : o2
p5 =
- x : o0 - ElbowRadius(2*pipeinr) - pipeinr)
- y : o1
- z : o2
box2- draws a box over the lower half of the remaining torus
box2 <-- box(p6,p7)
p6 =
- x : o0
- y : o1 - ElbowRadius(2*pipeinr) - outerraduis(2*pipeinr) - zc
- z : o2 - ConRadius(2*pipeinr)
p7 =
- x : o0 + ElbowRadius(2*pipeinr) + outerraduis(2*pipeinr) + zc
- y : o1
- z : o2 + ConRadius(2*pipeinr)
subtract3 - removes the box that was drawn in the previous step
subtract3 <-- subtractD(p9,p1)
p9 =
- x : o0
- y : o1 + ElbowRadius(2*pipeinr)
- z : o2
p1 =
- x : o0
- y : o1
- z : o2
outercylinder - draws a cylinder at the end of the elbow to form the outer surface of a socket
outercylinder <-- cylinderB(p9,R4,P10)
p9 =
- x : o0
- y : o1 + ElbowRadius(2*pipeinr)
- z : o2
R4 =
p10 =
- x : o0 - SocketDepth(2*pipe~inr~)
- y : o1 + ElbowRadius(2*pipeinr)
- z : o2
innercylinder - draws a smaller cylinder within the larger cylinder, forming the inner surface of a socket
innercylinder <-- cylinderB(p9,R2,p10)
p9 =
- x : o0
- y : o1 + ElbowRadius(2*pipeinr)
- z : o2
R2 =
p10 =
- x : o0 - SocketDepth(2*pipe~inr~)
- y : o1 + ElbowRadius(2*pipeinr)
- z : o2
subtract4 - removes the smaller cylinder, creating a hollow socket at the end of the elbow
subtract4 <-- subtractH(p11,p12,p13)
p11 =
- x : o0
- y : o1 + ElbowRadius(2*pipeinr) - ConRaduis(2*pipeinr)
- z : o2
p12 =
- x : o0 - SocketDepth(2*pipe~inr~) - zc
- y : o1 + ElbowRadius(2*pipeinr) - outerraduis(2*pipeinr)
- z : o2
p13 =
- x : o0 + zc
- y : o1 + ElbowRadius(2*pipeinr) + outerraduis(2*pipeinr)
- z : o2
mirror - replicates the socket drawn onto the opposite end of the elbow
mirror <-- mirrorA(p14,p15,p16)
p14 =
- x : o0 - SocketDepth(2*pipe~inr~)
- y : o1 + ElbowRadius(2*pipeinr) - ConRaduis(2*pipeinr)
- z : o2
p15 =
- x : o0
- y : o1
p16 =
- x : o0 + zc
- y : o1 + zc
bigunion -
bigunion <-- bigunionelbow(p1,p17,p18,R1,R2)
p1 =
- x : o0
- y : o1
- z : o2
p17 =
- x : o0 + ElbowRadius(2*pipeinr)
- y : o1 - SocketDepth(2*pipe~inr~)
- z : o2
p18 =
- x : o0 - SocketDepth(2*pipe~inr~)
- y : o1 + ElbowRadius(2*pipeinr)
- z : o2
R1 =
R2 =