Lester Jr. L.
Aspilan
AE – 713 Basic Programming
Command in Small Basic
mainmenu()
GraphicsWindow.Height = 500
GraphicsWindow.Width = 600
Sub mainmenu
GraphicsWindow.Height = 1200
GraphicsWindow.Width = 600
GraphicsWindow.Show()
GraphicsWindow.Title = "Channel Design Calculation"
Controls.ButtonClicked = whichbutton
butTrapezoidal = Controls.AddButton("Trapezoidal Channel
Design",25,25)
butRectangular = Controls.AddButton("Rectangular Channel Design",
25,120)
butParabolic = Controls.AddButton("Parabolic Channel Design",
25,220)
butCancel = Controls.AddButton("Cancel",350,350)
Controls.ButtonClicked= anybutton
EndSub
Sub anybutton
linker= Controls.LastClickedButton
If linker= butTrapezoidal Then
trapezoidalanalysis()
ElseIf linker= butRectangular then
rectangularbutton()
EndIf
EndSub
Sub trapezoidalanalysis
GraphicsWindow.Clear()
GraphicsWindow.BrushColor = "Dark"
GraphicsWindow.DrawText(25, 25,"Side Slopes")
GraphicsWindow.DrawText(50, 45,"Z1:")
Z1box = Controls.AddTextBox(75,41)
GraphicsWindow.DrawText(50, 75,"Z2:")
Z2box = Controls.AddTextBox(75,72)
GraphicsWindow.DrawText(25, 100,"Water Depth")
GraphicsWindow.DrawText(57, 121,"Y:")
Ybox = Controls.AddTextBox(75,119)
GraphicsWindow.DrawText(25, 150,"Bottom Width")
GraphicsWindow.DrawText(57, 173,"b:")
bbox = Controls.AddTextBox(75,170)
GraphicsWindow.DrawText(25, 200,"Manning Roughness")
GraphicsWindow.DrawText(57, 220,"n:")
nbox = Controls.AddTextBox(75,218)
GraphicsWindow.DrawText(25, 240,"Channel Slope")
GraphicsWindow.DrawText(57, 262,"S:")
Sbox = Controls.AddTextBox(75,260)
butCalculate = Controls.AddButton("Wetted Perimeter",315,5)
Calculation = Controls.AddMultiLineTextBox(315, 30)
Controls.SetSize(Calculation, 150, 25)
butTCalculate = Controls.AddButton("Top Width",315,65)
CalculationT = Controls.AddMultiLineTextBox(315, 90)
Controls.SetSize(CalculationT, 150, 25)
butACalculate = Controls.AddButton("Area",315,125)
CalculationA = Controls.AddMultiLineTextBox(315, 150)
Controls.SetSize(CalculationA,150,25)
butHCalculate = Controls.AddButton("Hydraulic Radius",315,185)
CalculationH = Controls.AddMultiLineTextBox(315, 210)
Controls.SetSize(CalculationH,250,25)
butVCalculate = Controls.AddButton("Velocity",315,240)
CalculationV = Controls.AddMultiLineTextBox(315, 265)
Controls.SetSize(CalculationV,250,25)
butQCalculate = Controls.AddButton("Discharge",315,295)
CalculationQ = Controls.AddMultiLineTextBox(315, 320)
Controls.SetSize(CalculationQ,250,25)
butTetaCalculate = Controls.AddButton("Angle",315,350)
CalculationTeta = Controls.AddMultiLineTextBox(315, 375)
Controls.SetSize(CalculationTeta,250,25)
butFCalculate = Controls.AddButton("Froude Number",315,405)
CalculationF = Controls.AddMultiLineTextBox(315, 430)
Controls.SetSize(CalculationF,250,25)
Controls.ButtonClicked= whichbutton
EndSub
Sub whichbutton
button = Controls.LastClickedButton
Z1 = Controls.GetTextBoxText(Z1box)
Z2 = Controls.GetTextBoxText(Z2box)
Y = Controls.GetTextBoxText(Ybox)
b = Controls.GetTextBoxText(bbox)
n = Controls.GetTextBoxText(nbox)
S = Controls.GetTextBoxText(sbox)
P = b + Y * ((Math.SquareRoot(1 + Math.Power(Z1,2))) +
(Math.SquareRoot(1 + Math.Power(Z2,2))))
T = b + Y * (Z1 + Z2)
A = Y/2 * (b + T)
R = A/P
V = ((Math.Power(R,2/3)) * (Math.Power(S,1/2)))/n
Q = V*A
Teta = (S*180)/Math.Pi
F = V * Math.SquareRoot((T/(Q*A *Math.Cos(Teta))))
If button = butCalculate Then
Controls.SetTextBoxText(Calculation, P)
ElseIf button = butTCalculate Then
Controls.SetTextBoxText(CalculationT, T)
ElseIf button = butACalculate Then
Controls.SetTextBoxText(CalculationA, A)
ElseIf button = butHCalculate Then
Controls.SetTextBoxText(CalculationH, R)
ElseIf button = butVCalculate Then
Controls.SetTextBoxText(CalculationV, V)
ElseIf button = butQCalculate Then
Controls.SetTextBoxText(CalculationQ, Q)
ElseIf button = butTetaCalculate Then
Controls.SetTextBoxText(CalculationTeta, Teta)
ElseIf button = butFCalculate Then
Controls.SetTextBoxText(CalculationF, F)
EndIf
EndSub
Sub rectangularbutton
linkerR= Controls.LastClickedButton
If linkerR= butRectangular Then
rectangularanalysis()
EndIf
EndSub
Sub rectangularanalysis
GraphicsWindow.Clear()
GraphicsWindow.BrushColor = "Dark"
GraphicsWindow.DrawText(25, 25,"Water Depth")
GraphicsWindow.DrawText(57, 52,"Y:")
RYbox = Controls.AddTextBox(75,49)
GraphicsWindow.DrawText(25, 90,"Bottom Width")
GraphicsWindow.DrawText(57, 118,"b:")
Rbbox = Controls.AddTextBox(75,115)
GraphicsWindow.DrawText(25, 155,"Manning Roughness")
GraphicsWindow.DrawText(57, 182,"n:")
Rnbox = Controls.AddTextBox(75,180)
GraphicsWindow.DrawText(25, 220,"Channel Slope")
GraphicsWindow.DrawText(57, 250,"S:")
RSbox = Controls.AddTextBox(75,248)
butRACalculate = Controls.AddButton("Area",315,25)
CalculationRA = Controls.AddMultiLineTextBox(315, 50)
Controls.SetSize(CalculationRA,250,25)
butRWPCalculate = Controls.AddButton("Wetted Perimeter",315,102)
CalculationRWP = Controls.AddMultiLineTextBox(315, 127)
Controls.SetSize(CalculationRWP,250,25)
butRHRCalculate = Controls.AddButton("Hydraulic Radius",315,177)
CalculationRHR = Controls.AddMultiLineTextBox(315, 202)
Controls.SetSize(CalculationRHR,250,25)
butRVCalculate = Controls.AddButton("Velocity",315,250)
CalculationRV = Controls.AddMultiLineTextBox(315, 275)
Controls.SetSize(CalculationRV,250,25)
butRVCalculate = Controls.AddButton("Discharge",315,325)
CalculationRV = Controls.AddMultiLineTextBox(315, 350)
Controls.SetSize(CalculationRV,250,25)
Controls.ButtonClicked= rectangularwhichbutton
EndSub
Sub rectangularwhichbutton
Rbutton = Controls.LastClickedButton
RY = Controls.GetTextBoxText(RYbox)
Rb = Controls.GetTextBoxText(Rbbox)
Rn = Controls.GetTextBoxText(Rnbox)
RS = Controls.GetTextBoxText(RSbox)
A = (RY) * (Rb)
P = (2*RY) + Rb
R = A/P
If Rbutton = butRACalculate Then
Controls.SetTextBoxText(CalculationRA, A)
ElseIf Rbutton = butRWPCalculate Then
Controls.SetTextBoxText(CalculationRWP, P)
ElseIf Rbutton = butRHRCalculate Then
Controls.SetTextBoxText(CalculationRHR, R)
ElseIf Rbutton = butRVCalculate Then
Controls.SetTextBoxText(CalculationRV, V)
EndIf
EndSub