Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
h1. General Program

...

Image RemovedImage Removed

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*pipe~inr~)
  • 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*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

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

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 =

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 within AutoCAD and can be found in the basics file that is referenced by the elbow program.

Technical Program Outline

Note: All coordinates are referenced in top view in the program unless otherwise specified

Image Removed

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

Image Removed
Image RemovedImage Removed

*torus*big\ - 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 =

Image Removed

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)

Image Removed

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

Image Removed

*torus*small\ - draws a smaller torus

torussmall <-- torus(p1,R1,R3)

p1 =

  • x : o0
  • y : o1
  • z : o2

R1 =

R3 =

Image Removed

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

Image Removed

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)

Image Removed

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

Image Removed

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

Image Removed

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

Image Removed

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

Image Removed Image Removed

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

Image Removed Image Removed

bigunion -

...

 Information


{float:left|border=2px solid black}
[!1.bmp|width=525px!|AutoCAD Pipe Program]                        [!2.bmp|width=525px!|AutoCAD Elbow Program]
Southwest Isometric View
{float}
\\
\\

h3. Input Definitions


h5. 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.
Pipe{~}inr~ \- the inner radius of the elbow

h5. Inputs Defined within the Elbow Function

p1 =
* x : o{~}0~
* y : o{~}1~
* z : o{~}2~

p2 =
* x : o{~}0~ \- ElbowRadius(2*pipe{~}inr~) + ConRaduis(2*pipe{~}inr~)
* y : o{~}1~ \- ElbowRadius(2*pipe{~}inr~) + ConRaduis(2*pipe{~}inr~)
* z : o{~}2~ \- outerradius(2*pipe{~}inr~) + SocketDepth(2*pipe{~}inr~)

p3 =
* x : o{~}0~
* y : o{~}1~ + ElbowRadius(2*pipe{~}inr~) + ConRaduis(2*pipe{~}inr~)
* z : o{~}2~ + outerradius(2*pipe{~}inr~) + SocketDepth(2*pipe{~}inr~)

p4 =
* x : o{~}0~ + ElbowRadius(2*pipe{~}inr~) + outerraduis(2*pipe{~}inr~)
* y : o{~}1~
* z : o{~}2~

p5 =
* x : o{~}0~ \- ElbowRadius(2*pipe{~}inr~) - pipe{~}inr~
* y : o{~}1~
* z : o{~}2~

p6 =
* x : o{~}0~
* y : o{~}1~ \- ElbowRadius(2*pipe{~}inr~) - outerraduis(2*pipe{~}inr~) - zc
* z : o{~}2~ \- ConRadius(2*pipe{~}inr~)

p7 =
* x : o{~}0~ + ElbowRadius(2*pipe{~}inr~) + outerraduis(2*pipe{~}inr~) + zc
* y : o{~}1~
* z : o{~}2~ + ConRadius(2*pipe{~}inr~)

p9 =
* x : o{~}0~
* y : o{~}1~ + ElbowRadius(2*pipe{~}inr~)
* z : o{~}2~

p10 =
* x : o{~}0~ \- SocketDepth(2*pipe{~}inr~)
* y : o{~}1~ + ElbowRadius(2*pipe{~}inr~)
* z : o{~}2~

p11 =
* x : o{~}0~
* y : o{~}1~ + ElbowRadius(2*pipe{~}inr~) - ConRaduis(2*pipe{~}inr~)
* z : o{~}2~

p12 =
* x : o{~}0~ \- SocketDepth(2*pipe{~}inr~) - zc
* y : o{~}1~ + ElbowRadius(2*pipe{~}inr~) - outerraduis(2*pipe{~}inr~)
* z : o{~}2~

p13 =
* x : o{~}0~ + zc
* y : o{~}1~ + ElbowRadius(2*pipe{~}inr~) + outerraduis(2*pipe{~}inr~)
* z : o{~}2~

p14 =
* x : o{~}0~ \- SocketDepth(2*pipe{~}inr~)
* y : o{~}1~ + ElbowRadius(2*pipe{~}inr~) - ConRaduis(2*pipe{~}inr~)
* z : o{~}2~

p15 =
* x : o{~}0~
* y : o{~}1~

p16 =
* x : o{~}0~ + zc
* y : o{~}1~ + zc

p17 =
* x : o{~}0~ + ElbowRadius(2*pipe{~}inr~)
* y : o{~}1~ \- SocketDepth(2*pipe{~}inr~)
* z : o{~}2~

p18 =
* x : o{~}0~ \- SocketDepth(2*pipe{~}inr~)
* y : o{~}1~ + ElbowRadius(2*pipe{~}inr~)
* z : o{~}2~

R1 =

R2 =

R3 =

R4 =

H1 =

win1 =
* x : o{~}0~ \- ElbowRadius(2*pipe{~}inr~) - ConRaduis(2*pipe{~}inr~) + zc
* y : o{~}1~ \- ElbowRadius(2*pipe{~}inr~) - ConRaduis(2*pipe{~}inr~) + zc
* z : o{~}2~

win2 =
* x : o{~}0~ + ElbowRadius(2*pipe{~}inr~) + ConRaduis(2*pipe{~}inr~) + zc
* y : o{~}1~ + ElbowRadius(2*pipe{~}inr~) + ConRaduis(2*pipe{~}inr~) + zc
* z : o{~}2~

*Note:* zc corresponds to the zoom constant used within AutoCAD, defined by the basics file.

h1. Technical Program Outline

*Note:* All coordinates are referenced in top view in the program unless otherwise specified



{float:left|border=2px solid black}
[!3.bmp|width=280px!|AutoCAD Elbow Program]
{float}

*zoom{*}{*}{~}win{~}*\- zooms on a window space directly around where the elbow is to be drawn

zoom{~}win~ <-\- zoom{~}wina~(win1,win2)

win1 =
* x : o{~}0~ \- ElbowRadius(2*pipe{~}inr~) - ConRaduis(2*pipe{~}inr~) + zc
* y : o{~}1~ \- ElbowRadius(2*pipe{~}inr~) - ConRaduis(2*pipe{~}inr~) + zc
* z : o{~}2~

win2 =
* x : o{~}0~ + ElbowRadius(2*pipe{~}inr~) + ConRaduis(2*pipe{~}inr~) + zc
* y : o{~}1~ + ElbowRadius(2*pipe{~}inr~) + ConRaduis(2*pipe{~}inr~) + zc
* z : o{~}2~
\\
\\

{float:left|border=2px solid black}
[!4b.bmp|width=280px!|AutoCAD Elbow Program] [!5.bmp|width=280px!|AutoCAD Elbow Program]
{float}

*torus*{~}big~ - Draws the larger torus, a 3 dimensional ring that creates the outer surface of the elbow

torus{~}big~ <-\- torus(p1,R1,R2)

p1 =
* x : o{~}0~
* y : o{~}1~
* z : o{~}2~

R1 =

R2 =

\\
\\

[!6.bmp!|AutoCAD Elbow Program]

*box1* \- draws a box slightly larger than the torus, in all dimensions

box1 <-\- box(p2,p3)

p2 =
* x : o{~}0~ \- ElbowRadius(2*pipe{~}inr~) + ConRaduis(2*pipe{~}inr~)
* y : o{~}1~ \- ElbowRadius(2*pipe{~}inr~) + ConRaduis(2*pipe{~}inr~)
* z : o{~}2~ \- outerradius(2*pipe{~}inr~) + SocketDepth(2*pipe~inr~)

p3 =
* x : o{~}0~
* y : o{~}1~ + ElbowRadius(2*pipe{~}inr~) + ConRaduis(2*pipe{~}inr~)
* z : o{~}2~ + outerradius(2*pipe{~}inr~) + SocketDepth(2*pipe{~}inr~)

[!7a.bmp!|AutoCAD Elbow Program]

*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 : o{~}0~ + ElbowRadius(2*pipe{~}inr~) + outerraduis(2*pipe{~}inr~)
* y : o{~}1~
* z : o{~}2~

p1 =
* x : o{~}0~
* y : o{~}1~
* z : o{~}2~

[!8.bmp!|AutoCAD Elbow Program]

\*torus\*~small~\ - draws a smaller torus

torus{~}small~ <-\- torus(p1,R1,R3)

p1 =
* x : o{~}0~
* y : o{~}1~
* z : o{~}2~

R1 =

R3 =

[!9.bmp!|AutoCAD Elbow Program]

*subtract2* \- removes the left half of the smaller torus

subtract2 <-\- subtractA(p4,p5)

p4 =
* x : o{~}0~ + ElbowRadius(2*pipe{~}inr~) + outerraduis(2*pipe{~}inr~)
* y : o{~}1~
* z : o{~}2~

p5 =
* x : o{~}0~ \- ElbowRadius(2*pipe{~}inr~) - pipe{~}inr~)
* y : o{~}1~
* z : o{~}2~

[!10.bmp!|AutoCAD Elbow Program]

*box2*\- draws a box over the lower half of the remaining torus

box2 <-\- box(p6,p7)

p6 =
* x : o{~}0~
* y : o{~}1~ \- ElbowRadius(2*pipe{~}inr~) - outerraduis(2*pipe{~}inr~) - zc
* z : o{~}2~ \- ConRadius(2*pipe{~}inr~)

p7 =
* x : o{~}0~ + ElbowRadius(2*pipe{~}inr~) + outerraduis(2*pipe{~}inr~) + zc
* y : o{~}1~
* z : o{~}2~ + ConRadius(2*pipe{~}inr~)

[!11.bmp!|AutoCAD Elbow Program]

*subtract3* \- removes the box that was drawn in the previous step

subtract3 <-\- subtractD(p9,p1)

p9 =
* x : o{~}0~
* y : o{~}1~ + ElbowRadius(2*pipe{~}inr~)
* z : o{~}2~

p1 =
* x : o{~}0~
* y : o{~}1~
* z : o{~}2~

[!12.bmp!|AutoCAD Elbow Program]

*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 : o{~}0~
* y : o{~}1~ + ElbowRadius(2*pipe{~}inr~)
* z : o{~}2~

R4 =

p10 =
* x : o{~}0~ \- SocketDepth(2*pipe~inr~)
* y : o{~}1~ + ElbowRadius(2*pipe{~}inr~)
* z : o{~}2~

[!13.bmp!|AutoCAD Elbow Program]

*innercylinder* \- draws a smaller cylinder within the larger cylinder, forming the inner surface of a socket

innercylinder <-\- cylinderB(p9,R2,p10)

p9 =
* x : o{~}0~
* y : o{~}1~ + ElbowRadius(2*pipe{~}inr~)
* z : o{~}2~

R2 =

p10 =
* x : o{~}0~ \- SocketDepth(2*pipe~inr~)
* y : o{~}1~ + ElbowRadius(2*pipe{~}inr~)
* z : o{~}2~

[!14.bmp!|AutoCAD Elbow Program]

*subtract4* \- removes the smaller cylinder, creating a hollow socket at the end of the elbow

subtract4 <-\- subtractH(p11,p12,p13)

p11 =
* x : o{~}0~
* y : o{~}1~ + ElbowRadius(2*pipe{~}inr~) - ConRaduis(2*pipe{~}inr~)
* z : o{~}2~

p12 =
* x : o{~}0~ \- SocketDepth(2*pipe~inr~) - zc
* y : o{~}1~ + ElbowRadius(2*pipe{~}inr~) - outerraduis(2*pipe{~}inr~)
* z : o{~}2~

p13 =
* x : o{~}0~ + zc
* y : o{~}1~ + ElbowRadius(2*pipe{~}inr~) + outerraduis(2*pipe{~}inr~)
* z : o{~}2~

[!15a.bmp!|AutoCAD Elbow Program] [!15b.bmp!|AutoCAD Elbow Program]

*mirror* \- replicates the socket drawn onto the opposite end of the elbow

mirror <-\- mirrorA(p14,p15,p16)

p14 =
* x : o{~}0~ \- SocketDepth(2*pipe~inr~)
* y : o{~}1~ + ElbowRadius(2*pipe{~}inr~) - ConRaduis(2*pipe{~}inr~)
* z : o{~}2~

p15 =
* x : o{~}0~
* y : o{~}1~

p16 =
* x : o{~}0~ + zc
* y : o{~}1~ + zc

[!16a.bmp!|AutoCAD Elbow Program] [!16b.bmp!|AutoCAD Elbow Program]

*bigunion* \-

bigunion <-\- bigunion{~}elbow~(p1,p17,p18,R1,R2)

...



p1 =

...


* x :

...

p17 =

...

 o{~}0~
* y : o{~}1~
* z : o{~}2~

p17 =
* x : o{~}0~ + ElbowRadius(2*pipe

...

{~}inr~)
* y : o{~}1~ \- SocketDepth(2*pipe~inr~)

...


* z :

...

p18 =

...

 o{~}2~

p18 =
* x : o{~}0~ \- SocketDepth(2*pipe~inr~)

...


* y : o

...

{~}1~ + ElbowRadius(2*pipe

...

R1 =

...

{~}inr~)
* z : o{~}2~

R1 =

R2 =