105 lines
4.4 KiB
VB.net
105 lines
4.4 KiB
VB.net
|
|
Public Class Grating_Fill
|
|
Public Shared maxSingleWidth, maxSingleLength As Integer
|
|
Public Shared numOfHorizontal, numOfVertical As Integer
|
|
Public Shared widthRevNeeded, lengthRevNeeded As Boolean
|
|
Public Shared revLength, revWidth As Integer
|
|
|
|
Public Shared gratingDimensions As New DataTable
|
|
Public Shared Sub Calculate_Grid()
|
|
Get_SingleGratingMaxDimensions()
|
|
|
|
gratingDimensions.Clear()
|
|
gratingDimensions.Columns.Clear()
|
|
gratingDimensions.Columns.Add("INDEX", GetType(Integer))
|
|
gratingDimensions.Columns.Add("ROW", GetType(Integer))
|
|
gratingDimensions.Columns.Add("COLUMN", GetType(Integer))
|
|
gratingDimensions.Columns.Add("WIDTH", GetType(Integer))
|
|
gratingDimensions.Columns.Add("LENGTH", GetType(Integer))
|
|
|
|
|
|
numOfHorizontal = Math.Floor(Data.gratingL / maxSingleLength) + 1
|
|
numOfVertical = Math.Floor(Data.gratingW / maxSingleWidth) + 1
|
|
|
|
Dim endLength As Integer
|
|
If Data.gratingL - (numOfHorizontal - 1) * maxSingleLength < 200 Then
|
|
endLength = 200
|
|
revLength = maxSingleLength - (endLength - (Data.gratingL - (numOfHorizontal - 1) * maxSingleLength))
|
|
lengthRevNeeded = True
|
|
Else
|
|
endLength = Data.gratingL - (numOfHorizontal - 1) * maxSingleLength
|
|
lengthRevNeeded = False
|
|
End If
|
|
|
|
Dim endWidth As Integer
|
|
If Data.gratingW - (numOfVertical - 1) * maxSingleWidth < 200 Then
|
|
Dim neededLoadbars As Integer = Math.Floor((200 - (Data.gratingW - (numOfVertical - 1) * maxSingleWidth)) / User_Input.loadBarSpacing) + 1
|
|
endWidth = Data.gratingW - (numOfVertical - 1) * maxSingleWidth + neededLoadbars * User_Input.loadBarSpacing
|
|
revWidth = maxSingleWidth - (endWidth - (Data.gratingW - (numOfVertical - 1) * maxSingleWidth))
|
|
widthRevNeeded = True
|
|
Else
|
|
endWidth = Data.gratingW - (numOfVertical - 1) * maxSingleWidth
|
|
widthRevNeeded = False
|
|
End If
|
|
|
|
Dim row As Integer = 1
|
|
For i = 0 To numOfHorizontal * numOfVertical - 1
|
|
Dim tempDR As DataRow = gratingDimensions.NewRow
|
|
tempDR("INDEX") = i
|
|
tempDR("ROW") = row - 1
|
|
tempDR("COLUMN") = i - numOfHorizontal * (row - 1)
|
|
If CDbl((i + 1) / numOfHorizontal) = row Then
|
|
tempDR("LENGTH") = endLength
|
|
row += 1
|
|
ElseIf CDbl((i + 2) / numOfHorizontal) = row AndAlso lengthRevNeeded Then
|
|
tempDR("LENGTH") = revLength
|
|
Else
|
|
tempDR("LENGTH") = maxSingleLength
|
|
End If
|
|
|
|
If i > numOfHorizontal * numOfVertical - 1 - numOfHorizontal Then
|
|
tempDR("WIDTH") = endWidth
|
|
ElseIf i > numOfHorizontal * numOfVertical - 1 - 2 * numOfHorizontal AndAlso widthRevNeeded Then
|
|
tempDR("WIDTH") = revWidth
|
|
Else
|
|
tempDR("WIDTH") = maxSingleWidth
|
|
End If
|
|
gratingDimensions.Rows.Add(tempDR)
|
|
Next
|
|
|
|
|
|
Individual.Panel_Grating.Refresh()
|
|
End Sub
|
|
|
|
Private Shared Sub Get_SingleGratingMaxDimensions()
|
|
maxSingleWidth = Database.database.Tables("Whole Meshes").Rows(0)(User_Input.wholeMeshesColumn)
|
|
|
|
Dim loadDT As DataTable = Database.database.Tables("LOAD")
|
|
|
|
Dim nameInDT As String = loadDT.Rows(0)("NAME")
|
|
Dim LBHeightInDT As Integer = loadDT.Rows(0)("LB-HEIGHT")
|
|
Dim LBThicknessInDT As Integer = loadDT.Rows(0)("LB-THICKNESS")
|
|
|
|
For i = 0 To loadDT.Rows.Count - 1
|
|
If User_Input.gratingName.Substring(0, 1) = nameInDT AndAlso User_Input.gratingHeight = LBHeightInDT _
|
|
AndAlso User_Input.loadBarThickness = LBThicknessInDT Then
|
|
|
|
For j = loadDT.Columns.Count - 1 To 0 Step -1
|
|
If loadDT.Rows(i)(j) > CInt(Individual.Panel_Data.Controls("TextBox_Max_Load").Text) Then
|
|
maxSingleLength = CInt(loadDT.Columns(j).ColumnName)
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
Exit For
|
|
End If
|
|
Try
|
|
nameInDT = loadDT.Rows(i + 1)("NAME")
|
|
LBHeightInDT = loadDT.Rows(i + 1)("LB-HEIGHT")
|
|
LBThicknessInDT = loadDT.Rows(i + 1)("LB-THICKNESS")
|
|
Catch ex As Exception
|
|
End Try
|
|
Next
|
|
End Sub
|
|
End Class
|