General Program Information

Unknown macro: {float}


Free Rotation to show both sets of holes


Inputs Needed to Call the Manifold Function

manifoldorigin - a 3 by 1 matrix with x,y,z positions corresponding to the point where the manifold will be drawn
NDManifold - 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.
orificerad - the radius of the orifice hole
tanklength - the length of the tank
orificedist - the distance between successive orifices
ENPipeSpec - 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.

Inputs Found in the Pipe Database Function

manifoldinr is the radius of the inner cylinder defined by innerD(NDManifold,ENPipeSpec)/2
manifoldoutr is the radius of the outer cylinder defined by outerradius(NDManifold)

Inputs Defined Within the Manifold Function

p1 = manifoldorigin

p2 =

  • x = manifold.origin0
  • y = manifold.origin1
  • z = manifold.origin2 + tanklength - orificedist

p3 =

  • x = manifold.origin0
  • y = manifold.origin1 - manifoldoutr

p4 =

  • x = manifold.origin0 + manifoldoutr*cos(pi/6) + manifoldoutr
  • y = manifold.origin1 + manifoldoutr*sin(pi/6) + manifoldoutr
  • z = manifold.origin2 + tanklength - orificedist

p5 =

  • x = manifold.origin1 + manifoldoutr*sin(pi/6) + manifoldoutr
  • y = manifold.origin2 + tanklength - orificedist

p6 =

  • x = manifold.origin0
  • y = manifold.origin1

p7 =

  • x = manifold.origin0 + manifoldoutr*cos(pi/3) + 2zc
  • y = manifold.origin0 + manifoldoutr*sin(pi/3) + 2zc

ND = NDManifold

R3 = orificerad

L = tanklength

n1 = floor(tanklength/orificedist)

n2 = 1

d1 = orificedist

win1 =

  • x = manifold.origin0 - manifoldoutr
  • y = manifold.origin1 - manifoldoutr
  • z = manifold.origin2

win2 =

  • x = manifold.origin0 + manifoldoutr + zc
  • y = manifold.origin1 + manifoldoutr + zc
  • z = manifold.origin2

EN = ENPipeSpec

Note: zc corresponds to the zoom constant used within AutoCAD and created in the basics file that is referenced by the pipe program.

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.

sludgepipe - creates a sludge pipe
sludgepipe <-- sludgepipe(p1,ND,L,R3,d1,EN)

p1 = manifoldorigin

ND = NDManifold

R3 = orificerad

L = tanklength

d1 = orificedist

EN = ENPipeSpec

viewtop - shows an object in top view within AutoCAD
viewtop <-- viewtop

zoomwin - zooms on a window space
zoomwin <-- zoomwin(win1,win2)

win1 =

  • x = manifold.origin0 - manifoldoutr
  • y = manifold.origin1 - manifoldoutr
  • z = manifold.origin2

win2 =

  • x = manifold.origin0 + manifoldoutr + zc
  • y = manifold.origin1 + manifoldoutr + zc
  • z = manifold.origin2

cylinder3 - is to draw a cylinder for orifice purpose
cylinder3 <-- cylinderB(p2,R3,p4)

p2 =

  • x = manifold.origin0
  • y = manifold.origin1
  • z = manifold.origin2 + tanklength - orificedist

p4 =

  • x = manifold.origin0 + manifoldoutr*cos(pi/6) + manifoldoutr
  • y = manifold.origin1 + manifoldoutr*sin(pi/6) + manifoldoutr
  • z = manifold.origin2 + tanklength - orificedist

R3 = orificerad

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.origin1 + manifoldoutr*sin(pi/6) + manifoldoutr
  • y = manifold.origin2 + tanklength - orificedist

n1 = floor(tanklength/orificedist)

n2 = 1

d1 = orificedist

subtract1 - subtract unneeded portion of the cylinders
subtract1 <-- subtractH(p3,p7,p6)

p3 =

  • x = manifold.origin0
  • y = manifold.origin1 - manifoldoutr

p6 =

  • x = manifold.origin0
  • y = manifold.origin1

p7 =

  • x = manifold.origin0 + manifoldoutr*cos(pi/3) + 2zc
  • y = manifold.origin0 + manifoldoutr*sin(pi/3) + 2zc
  • No labels