h1. General Program Information
{float:left|border=2px solid black}
!man1.bmp!
Free Rotation to show both sets of holes
{float}
\\
h5. Inputs Needed to Call the Manifold Function
manifold{~}origin~ - a 3 by 1 matrix with x,y,z positions corresponding to the point where the manifold will be drawn
ND{~}Manifold~ - the nominal diameter of the manifold pipe - from this we can find the actual inner diameter and actual outer diameter of the pipe based on the schedule of pipe being used.
orifice{~}rad~ \- the radius of the orifice hole
tank{~}length~ \- the length of the tank
orifice{~}dist~ \- the distance between successive orifices
EN{~}PipeSpec~ \- an enumerated pipe schedule which specifies a number which corresponds to a pipe schedule that states the amount of water pressure the pipe can handle before it fails. The pipe schedule affects the inner and outer diameter of the pipe.
h5. Inputs Found in the Pipe Database Function
manifold{~}inr~ is the radius of the inner cylinder defined by innerD(ND{~}Manifold~,EN{~}PipeSpec~)/2
manifold{~}outr~ is the radius of the outer cylinder defined by outerradius(ND{~}Manifold~)
h5. Inputs Defined Within the Manifold Function
p1 = manifold{~}origin~
p2 =
* x = manifold.origin{~}0~
* y = manifold.origin{~}1~
* z = manifold.origin{~}2~ + tank{~}length~ - orifice{~}dist~
p3 =
* x = manifold.origin{~}0~
* y = manifold.origin{~}1~ - manifold{~}outr~
p4 =
* x = manifold.origin{~}0~ + manifold{~}outr~*cos(pi/6) + manifold{~}outr~
* y = manifold.origin{~}1~ + manifold{~}outr~*sin(pi/6) + manifold{~}outr~
* z = manifold.origin{~}2~ + tank{~}length~ - orifice{~}dist~
p5 =
* x = manifold.origin{~}1~ + manifold{~}outr~*sin(pi/6) + manifold{~}outr~
* y = manifold.origin{~}2~ + tank{~}length~ - orifice{~}dist~
p6 =
* x = manifold.origin{~}0~
* y = manifold.origin{~}1~
p7 =
* x = manifold.origin{~}0~ + manifold{~}outr~*cos(pi/3) + 2zc
* y = manifold.origin{~}0~ + manifold{~}outr~*sin(pi/3) + 2zc
ND = ND{~}Manifold~
R3 = orifice{~}rad~
L = tank{~}length~
n1 = floor(tank{~}length~/orifice{~}dist~)
n2 = 1
d1 = orifice{~}dist~
win1 =
* x = manifold.origin{~}0~ - manifold{~}outr~
* y = manifold.origin{~}1~ - manifold{~}outr~
* z = manifold.origin{~}2~
win2 =
* x = manifold.origin{~}0~ + manifold{~}outr~ + zc
* y = manifold.origin{~}1~ + manifold{~}outr~ + zc
* z = manifold.origin{~}2~
EN = EN{~}PipeSpec~
*Note:* zc corresponds to the zoom constant used within AutoCAD and created in the basics file that is referenced by the pipe program.
h1. Technical Program Outline
*Note:* All coordinates are referenced in top view in the program unless otherwise specified.
The Manifold program is build on the [Sludge Pipe Program|AutoCAD Sludge Pipe Program].
*sludgepipe* - creates a sludge pipe
sludgepipe <-- sludgepipe(p1,ND,L,R3,d1,EN)
p1 = manifold{~}origin~
ND = ND{~}Manifold~
R3 = orifice{~}rad~
L = tank{~}length~
d1 = orifice{~}dist~
EN = EN{~}PipeSpec~
*viewtop* - shows an object in top view within AutoCAD
viewtop <-- viewtop
*zoom{~}win~* \- zooms on a window space
zoom{~}win~ <-- zoom{~}win~(win1,win2)
win1 =
* x = manifold.origin{~}0~ - manifold{~}outr~
* y = manifold.origin{~}1~ - manifold{~}outr~
* z = manifold.origin{~}2~
win2 =
* x = manifold.origin{~}0~ + manifold{~}outr~ + zc
* y = manifold.origin{~}1~ + manifold{~}outr~ + zc
* z = manifold.origin{~}2~
*cylinder3* - is to draw a cylinder for orifice purpose
cylinder3 <-- cylinderB(p2,R3,p4)
p2 =
* x = manifold.origin{~}0~
* y = manifold.origin{~}1~
* z = manifold.origin{~}2~ + tank{~}length~ - orifice{~}dist~
p4 =
* x = manifold.origin{~}0~ + manifold{~}outr~*cos(pi/6) + manifold{~}outr~
* y = manifold.origin{~}1~ + manifold{~}outr~*sin(pi/6) + manifold{~}outr~
* z = manifold.origin{~}2~ + tank{~}length~ - orifice{~}dist~
R3 = orifice{~}rad~
*viewrightside* - change view to viewrightside
viewrightside <-- viewrightside
*array1* - draw starting at point p5, n1 \-\- as many rows as the tank length/orifice dist, n2 - 1 and provide orifice distance as the next draw point for the cylinder
array1 <-- arrayB(p5,n1,n2,-d1)
p5 =
* x = manifold.origin{~}1~ + manifold{~}outr~*sin(pi/6) + manifold{~}outr~
* y = manifold.origin{~}2~ + tank{~}length~ - orifice{~}dist~
n1 = floor(tank{~}length~/orifice{~}dist~)
n2 = 1
d1 = orifice{~}dist~
*subtract1* - subtract unneeded portion of the cylinders
subtract1 <-- subtractH(p3,p7,p6)
p3 =
* x = manifold.origin{~}0~
* y = manifold.origin{~}1~ - manifold{~}outr~
p6 =
* x = manifold.origin{~}0~
* y = manifold.origin{~}1~
p7 =
* x = manifold.origin{~}0~ + manifold{~}outr~*cos(pi/3) + 2zc
* y = manifold.origin{~}0~ + manifold{~}outr~*sin(pi/3) + 2zc
|