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 Private Shared gratingDimensions As New DataTable Public Shared Sub Calculate_Grid() Get_SingleGratingMaxDimensions() gratingDimensions.Clear() gratingDimensions.Columns.Clear() gratingDimensions.Columns.Add("INDEX") gratingDimensions.Columns.Add("WIDTH") gratingDimensions.Columns.Add("LENGTH") 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 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