General Program Information
Inputs Needed to Call the Flocculation Tank Program
Inputs Defined Within the Flocculation Tank Program
Plantorigin
- x: 0m
- y: 0m
- x: 0m
ENPipeSpec = 4
WInletChannel = 0.245m
HInletChannel = 0.3m
WFlocChannel = WSed/2
LSed = 3.021m
WSed = 1m
HSed = 1.1m
NFlocChannels = 2
TPlantWall = 0.15m
TMp = 0.15m
NSedTanks = 3
AmpFlocBaffle = 0.5in
PerFlocBaffle = 8.5
NBaffle = 1
XFlocBaffle = 4in
TFlocBaffle = 4mm
ANFlocBaffle = 90deg
NFlocBaffleCol = 1
YFlocBaffle = 7cm
WFlocPort = 0.379m
LFloc = (LSed)*(NFlocChannels)
HFloc = HSed
HFlocPort = 0.75m
totalflocdim =
- x: LFloc/NFlocChannels
- y: (NFlocChannels*WFlocChannel) + ((NFlocChannels - 1)*TPlantWall)
- z: HFloc
walldim =
- x: totalflocdim0 + (2TPlantWall)
- y: TPlantWall
- z: totalflocdim2
flocportdim is composed of a for loop with the range 0 to (NFlocChannels - 2). While in the for loop:
flocportdim0,i =
- x: WFlocPort
- y: TPlantWall
- z: HFlocPort
channelopeningdim =
- x: WInletChannel
- y: TPlantWall
- z: HInletChannel
flocorigin =
- x: PlantOrigin0
- y: PlantOrigin1 + NSedTanks(WSed + TPlantWall)
- z: PlantOrigin2
*wallorigin is composed of a for loop with the range 0 to (NFlocChannels - 2). While in the for loop:
wallorigin0,i =
- x: PlantOrigin0 - totalflocdim0 - TPlantWall
- y: PlantOrigin1 + NSedTanks(WSed + TPlantWall) + (WFlocChannel*(1 + i)) + (TPlantWall*i)
- z: PlantOrigin2
flocportorigin is composed of a for loop with an if statement embedded in the program scrip. The range of the for loop is from 0 to (NFlocChannels - 2)
If round(round(i/2) - (i/2)) = 0 then:
flocportorigin0,i =
- x: PlantOrigin0 - WFlocPort
- y: PlantOrigin1 + NSedTanks(WSed~ + TPlantWall) + (WFlocChannel*(1 + i))
- z: PlantOrigin2
If round(round(i/2) - (i/2)) = 1
flocportorigin0,i =
- x: PlantOrigin0 - totalflocdim0
- y: PlantOrigin1 + NSedTanks(WSed~ + TPlantWall) + (WFlocChannel*(1 + i))
- z: PlantOrigin2
*channelopeningorigin =
- x: flocorigin0 - totalflocdim0
- y: flocorigin1 - TPlantWall
- z: flocorigin2 + totalflocdim2 - HInletChannel
*YFlocBaffles is composed of a for loop with the range 0 to (NFlocChannels - 1). While in the for loop:
YFlocBaffles0,j = PlantOrigin1 + (NSedTanks*(WSed~ + TPlantWall)) + ((NFlocChannels - j - 1)*(WFlocChannel + TPlantWall))
Technical Program Outline
Floctanktankscript
layer1 - Layernew creates a floctank layer that is dark grey.
layer1 <-- layernew("floctank",dkgrey)
Tank1 <-- creates a tank. See Tank Help for details on the tank function.
Tank1 <-- Tank(flocorigin, totalflocdim, TPlantWall)
flocorigin -
- x: PlantOrigin0
- y: PlantOrigin1 + NSedTanks(WSed + TPlantWall)
- z: PlantOrigin2
totalflocdim -
- x: LFloc/NFlocChannels
- y: (NFlocChannels*WFlocChannel) + ((NFlocChannels - 1)*TPlantWall)
- z: HFloc
TPlantWall = 0.15m
layerset1 - Layerset selects the layer that the user is currently working on.
layerset1 <- layerset("0")
layerfreeze1 - Layerfreeze freezes the selected layer.
layerfreeze1 <- layerfreeze("floctank")
Floctankwallscript
local - Layernew creates a new layer "floctankwall" that is dark grey.
local <- layernew("floctankwall",dkgrey)
local enters a for loop for the range 0 to (NflocChannels - 2).
local <- stack(local,box(wallorigin0,i,wallorigin0,i + walldim),box(flocportorigin0,i,flocportorigin0,i,flocportorigin0,i + flocportdim0,i)subtractD(wallorigin0,i,flocportorigin0,i))
layerset2 - Layerset selects the layer that the user is currently working in.
layerset2 <- layerset("0")
layerthaw2 - Layerthawunlocks the layer "floctank" so that it can be edited.
layerthaw2 <- layerthaw("floctank")
bigunion1 - UnionallA selects all of the objects on a page and joins them together to form a single object.
bigunion1 <- unionallA
layerfreeze2 - Layerfreeze locks the selected layer "floctank" so that no edits can be made.
layerfreeze2 <- layerfreeze("floctankwall")
local <- stack(local,layerset2,layerthaw2,bigunion1,layerset2,layerfreeze2)
Floctankchannelopeningscript
layer3 - Layernew creates a new, dark grey, layer "flocchannelhole."
layer3 <- layernew("flocchannelhole",dkgrey)
box3 - Box takes the input of two points to create a 3D rectangular box.
box3 <- box(channelopeningorigin,channelopeningorigin + channelopeningdim)
channelopeningorigin =
- x: flocorigin0 - totalflocdim0
- y: flocorigin1 - TPlantWall
- z: flocorigin2 + totalflocdim2 - HInletChannel
channelopeningorigin + channelopeniningdim
- x: flocorigin0 - totalflocdim0 + WInletChannel
- y: flocorigin1
- z: flocorigin2 + totalflocdim2
layerset3 - Layerset selects the layer that the user is currently working in.
layerset3 <- layerset("0")
layerthaw3 - Layerthawunlocks the layer "floctankwall" so that it can be edited.
layerthaw3 <- layerthaw("floctankwall")
viewtop - Viewtop1 rotates the object so that it is viewed from the top.
viewtop <- viewtop1
subtract3 - SubtractD uses two points to identify which object to subtract from.
p1 = flocorigin
- x: PlantOrigin0
- y: PlantOrigin1 + NSedTanks(WSed + TPlantWall)
- z: PlantOrigin2
p2 =
- x: flocorigin0 - totalflocdim0
- y: flocorigin1 - TPlantWall
- z: flocorigin2 + totalflocdim2 - HInletChannel
bigunion - UnionallA selects all of the objects on a page and joins them together to form a single object.
bigunion <- unionallA
layerfreeze3 - Layerfreeze locks the selected layer "floctankwall" so that no edits can be made.
layerfreeze3 <- layerfreeze("floctankwall")
Floctankbafflescript
local - Layernew creates a new light purple layer "baffle."
local <- layernew("baffle",ltpurple)
for loop for the range 0 to (rows(XFlocBaffles) -1)
a <- a + 1 if XFlocBafflest,j is not equal to 0.
for loop for the range 0 to (x(j) - 1)
baffleorigini <- (p1 + p2)
p1:
- x: PlantOrigin0 - LSed
- y: 0
- z: PlantOrigin2
p2:
- x: XFlocBafflesi,j
- y: YFlocBaffles0,j
- z: ZFlocBafflesi,j
bafflelengthi <- LFlocBafflesi,j
local <- stack(local,lamina(baffleorigini,AmpFlocBaffle,WFlocChannel,bafflelengthi,TFlocBaffle,PerFlocBaffle,ANFlocBaffle,NBaffle,NFlocBaffleCol,XFlocBaffle,YFlocBaffle))
Flocktankendscript
layerset - Layerset selects the layer that the user is currently working in.
layerset <- layerset("0")
layerfreeze - Layerfreeze locks the layer "baffle" so that no edits can be made.
layerfreeze <- *layerfreeze("baffle")
FlocTank = stack(Floctanktankscript,Floctankwallscript,Floctankchannelopeningscript,Floctankbafflescript,Floctankendscript)
box1 - creates a box
box1 <-- box(wallorigin, )
box2 -
box2 <-- box(flocholeorigin, )
subtract0 -
subtract0 <-- subtractD( , )
union1 -
union1 <-- unionC( , )
box3-
box3 <-- box( , )
subtract1 -
subtract1 <-- subtractD( , )
bigunion -
bigunion <-- unionallA
layerset -
layerset <-- layer{~}set("0")
layerfreeze1 -
layerfreeze("floctank")