diff --git a/HLCt/Parts/~$START.SLDPRT b/HLCt/Parts/~$START.SLDPRT
deleted file mode 100644
index 214926b..0000000
Binary files a/HLCt/Parts/~$START.SLDPRT and /dev/null differ
diff --git a/HLCt/~$DRYING_RACK.SLDPRT b/HLCt/~$DRYING_RACK.SLDPRT
deleted file mode 100644
index 214926b..0000000
Binary files a/HLCt/~$DRYING_RACK.SLDPRT and /dev/null differ
diff --git a/Wardrobe/GUI.Designer.vb b/Wardrobe/GUI.Designer.vb
index 7a720a9..f5249c4 100644
--- a/Wardrobe/GUI.Designer.vb
+++ b/Wardrobe/GUI.Designer.vb
@@ -46,7 +46,7 @@ Partial Class GUI
Me.Label9 = New System.Windows.Forms.Label()
Me.ComboBox_Material = New System.Windows.Forms.ComboBox()
Me.Label_Material = New System.Windows.Forms.Label()
- Me.CheckBox1 = New System.Windows.Forms.CheckBox()
+ Me.CheckBox_WholeMeshWidths = New System.Windows.Forms.CheckBox()
Me.SuspendLayout()
'
'DrawingPanel
@@ -277,29 +277,29 @@ Partial Class GUI
Me.Label_Material.TabIndex = 28
Me.Label_Material.Text = "Material"
'
- 'CheckBox1
+ 'CheckBox_WholeMeshWidths
'
- Me.CheckBox1.AutoSize = True
- Me.CheckBox1.Checked = True
- Me.CheckBox1.CheckState = System.Windows.Forms.CheckState.Checked
- Me.CheckBox1.Location = New System.Drawing.Point(94, 368)
- Me.CheckBox1.Margin = New System.Windows.Forms.Padding(2)
- Me.CheckBox1.Name = "CheckBox1"
- Me.CheckBox1.Size = New System.Drawing.Size(121, 18)
- Me.CheckBox1.TabIndex = 29
- Me.CheckBox1.Text = "Whole mesh widths"
- Me.CheckBox1.UseCompatibleTextRendering = True
- Me.CheckBox1.UseVisualStyleBackColor = True
+ Me.CheckBox_WholeMeshWidths.AutoSize = True
+ Me.CheckBox_WholeMeshWidths.Checked = True
+ Me.CheckBox_WholeMeshWidths.CheckState = System.Windows.Forms.CheckState.Checked
+ Me.CheckBox_WholeMeshWidths.Location = New System.Drawing.Point(94, 368)
+ Me.CheckBox_WholeMeshWidths.Margin = New System.Windows.Forms.Padding(2)
+ Me.CheckBox_WholeMeshWidths.Name = "CheckBox_WholeMeshWidths"
+ Me.CheckBox_WholeMeshWidths.Size = New System.Drawing.Size(121, 18)
+ Me.CheckBox_WholeMeshWidths.TabIndex = 29
+ Me.CheckBox_WholeMeshWidths.Text = "Whole mesh widths"
+ Me.CheckBox_WholeMeshWidths.UseCompatibleTextRendering = True
+ Me.CheckBox_WholeMeshWidths.UseVisualStyleBackColor = True
'
'GUI
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
- Me.ClientSize = New System.Drawing.Size(1155, 687)
+ Me.ClientSize = New System.Drawing.Size(1384, 761)
Me.Controls.Add(Me.AngleButton)
Me.Controls.Add(Me.Button_Square)
Me.Controls.Add(Me.Label7)
- Me.Controls.Add(Me.CheckBox1)
+ Me.Controls.Add(Me.CheckBox_WholeMeshWidths)
Me.Controls.Add(Me.ComboBox_Material)
Me.Controls.Add(Me.Label_Material)
Me.Controls.Add(Me.Label9)
@@ -350,5 +350,5 @@ Partial Class GUI
Friend WithEvents Label9 As Label
Friend WithEvents ComboBox_Material As ComboBox
Friend WithEvents Label_Material As Label
- Friend WithEvents CheckBox1 As CheckBox
+ Friend WithEvents CheckBox_WholeMeshWidths As CheckBox
End Class
diff --git a/Wardrobe/GUI.vb b/Wardrobe/GUI.vb
index 18da343..2d3825c 100644
--- a/Wardrobe/GUI.vb
+++ b/Wardrobe/GUI.vb
@@ -8,27 +8,7 @@ Public Class GUI
Dim filesFolder As String = filepath ' Hämta från settings
Dim HLCtFolder As String = filepath & "\X2021" ' Hämta från settings
- Dim containerPanel As Panel
-
- Dim containerL, containerW, containerMidX, containerMidY As Integer
- Dim gratingMaxW As Decimal = 1000
- Dim gratingMaxL As Decimal = 1000
- Dim drawL As Integer = 1
- Dim drawW As Integer = 1
- Dim drawAspect, gratingAspect As Decimal
- Dim scaleDiff As Decimal = 1
-
- Public pCon1(3) As Decimal 'pCon(0) = pixel X, pCon(2) = SW X, etc.
- Public pCon2(3) As Decimal
- Public pCon3(3) As Decimal
- Public pCon4(3) As Decimal
-
- Dim DirSymbolPoints As New Dictionary(Of String, Decimal())
- Dim ArrowSymbolPoints As New Dictionary(Of String, Decimal())
-
- Dim points As New Dictionary(Of String, Decimal())
- Dim pointsFunc As New Dictionary(Of String, Boolean)
- Dim pointsOrder As New List(Of String)
+ Public Shared containerPanel As Panel
Dim gratingType, gratingMaterial, gratingMesh As String
Dim gratingSerrated As Boolean = False
@@ -57,21 +37,19 @@ Public Class GUI
containerPanel = DrawingPanel
Me.Width = 1400
Me.Height = 800
- AddHandler containerPanel.Paint, AddressOf DrawingPanel_Paint
+ AddHandler containerPanel.Paint, AddressOf GUI_Drawing_Panel.DrawingPanel_Paint
- Get_DrawboxParameters()
- Set_ContainerPointsX()
- Set_ContainerPointsY()
- Create_DirSymbolPoints()
- Create_ArrowSymbolPoints()
+ GUI_Drawing_Panel.Load_DrawingPanel()
- Update_GratingPoints()
- Create_StartPoints()
- Program.Load_XCC(filesFolder, HLCtFolder)
+
+
+
+ adminClass.loadSettings(filesFolder, HLCtFolder, "SolidWorks")
+ 'Program.Load_XCC(filesFolder, HLCtFolder)
Get_Database()
End Sub
@@ -110,250 +88,9 @@ Public Class GUI
' HANTERA OLIKA LÄNGDER PÅ COLUMNER
End Sub
- ' --- Retrive parameters for the drawing box ---
- Private Sub Get_DrawboxParameters()
- containerL = containerPanel.Size.Width
- containerW = containerPanel.Size.Height
- containerMidX = containerL / 2
- containerMidY = containerW / 2
- drawL = containerL - 80
- drawW = containerW - 80
- drawAspect = drawL / drawW
- End Sub
-
- ' --- Set containers points X-values ---
- Private Sub Set_ContainerPointsX()
- pCon1(0) = containerMidX - drawL / 2
- pCon2(0) = containerMidX + drawL / 2
- pCon3(0) = containerMidX + drawL / 2
- pCon4(0) = containerMidX - drawL / 2
- End Sub
-
- ' --- Set containers points Y-values ---
- Private Sub Set_ContainerPointsY()
- pCon1(1) = containerMidY - drawW / 2
- pCon2(1) = containerMidY - drawW / 2
- pCon3(1) = containerMidY + drawW / 2
- pCon4(1) = containerMidY + drawW / 2
- End Sub
-
- ' --- Create points for grating direction symbol ---
- Private Sub Create_DirSymbolPoints()
- DirSymbolPoints.Add("p1", {-30 + containerMidX, -2 + containerMidY})
- DirSymbolPoints.Add("p2", {20 + containerMidX, -2 + containerMidY})
- DirSymbolPoints.Add("p3", {12 + containerMidX, -10 + containerMidY})
- DirSymbolPoints.Add("p4", {15 + containerMidX, -13 + containerMidY})
- DirSymbolPoints.Add("p5", {30 + containerMidX, 2 + containerMidY})
- DirSymbolPoints.Add("p6", {-20 + containerMidX, 2 + containerMidY})
- DirSymbolPoints.Add("p7", {-12 + containerMidX, 10 + containerMidY})
- DirSymbolPoints.Add("p8", {-15 + containerMidX, 13 + containerMidY})
- DirSymbolPoints.Add("p9", {-30 + containerMidX, -2 + containerMidY})
- End Sub
-
- ' --- Create points for arrow symbol ---
- Private Sub Create_ArrowSymbolPoints()
- Dim offset As Integer = 20
- ArrowSymbolPoints.Add("p1", {offset, containerW - offset})
- ArrowSymbolPoints.Add("p2", {offset, containerW - offset - 40})
- ArrowSymbolPoints.Add("p3", {offset - 5, containerW - offset - 35})
- ArrowSymbolPoints.Add("p4", {offset, containerW - offset - 40})
- ArrowSymbolPoints.Add("p5", {offset + 5, containerW - offset - 35})
- ArrowSymbolPoints.Add("p6", {offset, containerW - offset - 40})
- ArrowSymbolPoints.Add("p7", {offset, containerW - offset})
- ArrowSymbolPoints.Add("p8", {offset + 40, containerW - offset})
- ArrowSymbolPoints.Add("p9", {offset + 35, containerW - offset - 5})
- ArrowSymbolPoints.Add("p10", {offset + 40, containerW - offset})
- ArrowSymbolPoints.Add("p11", {offset + 35, containerW - offset + 5})
- End Sub
-
- ' --- Updates all the gratings points ---
- Private Sub Update_GratingPoints()
- gratingAspect = gratingMaxL / gratingMaxW
-
- If gratingAspect > drawAspect Then
- 'Change draw height
- scaleDiff = gratingMaxL / drawL
-
- pCon1(1) = containerMidY - gratingMaxW / (scaleDiff * 2)
- pCon2(1) = containerMidY - gratingMaxW / (scaleDiff * 2)
- pCon3(1) = containerMidY + gratingMaxW / (scaleDiff * 2)
- pCon4(1) = containerMidY + gratingMaxW / (scaleDiff * 2)
-
- Set_ContainerPointsX()
- Else
- 'Change draw width
- scaleDiff = gratingMaxW / drawW
-
- pCon1(0) = containerMidX - gratingMaxL / (scaleDiff * 2)
- pCon2(0) = containerMidX + gratingMaxL / (scaleDiff * 2)
- pCon3(0) = containerMidX + gratingMaxL / (scaleDiff * 2)
- pCon4(0) = containerMidX - gratingMaxL / (scaleDiff * 2)
-
- Set_ContainerPointsY()
- End If
-
- 'Redraw grating
- Me.Refresh()
-
- 'SW X-values
- pCon1(2) = (-gratingMaxL / 2) / 1000
- pCon2(2) = (gratingMaxL / 2) / 1000
- pCon3(2) = (gratingMaxL / 2) / 1000
- pCon4(2) = (-gratingMaxL / 2) / 1000
-
- 'SW Y-values
- pCon1(3) = (gratingMaxW / 2) / 1000
- pCon2(3) = (gratingMaxW / 2) / 1000
- pCon3(3) = (-gratingMaxW / 2) / 1000
- pCon4(3) = (-gratingMaxW / 2) / 1000
- End Sub
-
- ' --- Draw all the lines for the container and grating ---
- Private Sub DrawingPanel_Paint(sender As Object, e As System.Windows.Forms.PaintEventArgs)
- ' Draw outer grating (red)
- Dim penCon As Pen = New Pen(Color.DarkRed, 1)
- penCon.DashPattern = {4, 8}
- e.Graphics.DrawLine(penCon, CInt(pCon1(0)), CInt(pCon1(1)), CInt(pCon2(0)), CInt(pCon2(1)))
- e.Graphics.DrawLine(penCon, CInt(pCon2(0)), CInt(pCon2(1)), CInt(pCon3(0)), CInt(pCon3(1)))
- e.Graphics.DrawLine(penCon, CInt(pCon3(0)), CInt(pCon3(1)), CInt(pCon4(0)), CInt(pCon4(1)))
- e.Graphics.DrawLine(penCon, CInt(pCon4(0)), CInt(pCon4(1)), CInt(pCon1(0)), CInt(pCon1(1)))
-
- ' Draw grating direction symbol
- Dim symPen As Pen = New Pen(Color.Black, 1)
- For i = 1 To DirSymbolPoints.Count - 1
- e.Graphics.DrawLine(symPen, DirSymbolPoints("p" & i)(0), DirSymbolPoints("p" & i)(1), DirSymbolPoints("p" & i + 1)(0), DirSymbolPoints("p" & i + 1)(1))
- Next
-
- ' Draw arrow symbol
- For i = 1 To ArrowSymbolPoints.Count - 1
- e.Graphics.DrawLine(symPen, ArrowSymbolPoints("p" & i)(0), ArrowSymbolPoints("p" & i)(1), ArrowSymbolPoints("p" & i + 1)(0), ArrowSymbolPoints("p" & i + 1)(1))
- Next
- e.Graphics.TranslateTransform(20, containerW - 20)
- e.Graphics.DrawString("Length", New Font("Microsoft Sans Serif", 8), Brushes.Black, New Point(45, -7))
- e.Graphics.RotateTransform(-90)
- e.Graphics.DrawString("Width", New Font("Microsoft Sans Serif", 8), Brushes.Black, New Point(45, -4))
- e.Graphics.RotateTransform(90)
- e.Graphics.TranslateTransform(-20, -containerW + 20)
-
- ' Draw actual grating (black)
- Dim pen As Pen = New Pen(Color.Black, 2)
- For i = 0 To pointsOrder.Count - 1
- Dim pTemp1() As Decimal
- Dim pTemp2() As Decimal
-
- pTemp1 = points(pointsOrder(i))
- Try
- pTemp2 = points(pointsOrder(i + 1))
- Catch ex As Exception
- pTemp2 = points(pointsOrder(0))
- End Try
-
- e.Graphics.DrawLine(pen, CInt(pTemp1(0)), CInt(pTemp1(1)), CInt(pTemp2(0)), CInt(pTemp2(1)))
- Next
- End Sub
-
- ' --- Sets the start points for the grating ---
- Private Sub Create_StartPoints()
- For i = 1 To 4
- points.Add("p" & i, CallByName(Me, "pCon" & i, vbGet))
- pointsFunc.Add("p" & i, True)
- pointsOrder.Add("p" & i)
- Next
- End Sub
-
- ' --- Generate a table containing all the points X- and Y-values ---
- Private Function Create_PointTable()
- Dim pointTable As New DataTable
- pointTable.Columns.Add("X", GetType(Decimal))
- pointTable.Columns.Add("Y", GetType(Decimal))
-
- For i = 0 To pointsOrder.Count - 1
- Dim pTemp() As Decimal
- pTemp = points(pointsOrder(i))
-
- pointTable.Rows.Add()
- pointTable.Rows(i)("X") = pTemp(2)
- pointTable.Rows(i)("Y") = pTemp(3)
- Next
-
- Return pointTable
- End Function
-
- ' --- Check if the key pressed is a number ---
- Private Sub Check_IfNumber(e As KeyPressEventArgs)
- If Asc(e.KeyChar) <> 8 Then
- If Asc(e.KeyChar) < 48 Or Asc(e.KeyChar) > 57 Then
- e.Handled = True
- End If
- End If
- End Sub
-
- ' --- Creates the table with points data used in SW ---
- Private Function Create_ExportTable() As DataTable
- Dim lSpacing As String = ComboBox_MeshSize.Text.Split("x")(0)
- Dim cSpacing As String = ComboBox_MeshSize.Text.Split("x")(1).Split(" ")(0)
-
- Dim gratingTable As New DataTable
- gratingTable.Columns.Add("TYPE", GetType(String))
- gratingTable.Columns.Add("SERRATED", GetType(Boolean))
- gratingTable.Columns.Add("WIDTH", GetType(Decimal))
- gratingTable.Columns.Add("LENGTH", GetType(Decimal))
- gratingTable.Columns.Add("LOADBAR_THICKNESS", GetType(Decimal))
- gratingTable.Columns.Add("LOADBAR_HEIGHT", GetType(Decimal))
- gratingTable.Columns.Add("LOADBAR_SPACING", GetType(Decimal))
- gratingTable.Columns.Add("CROSSBAR_SPACING", GetType(Decimal))
- gratingTable.Columns.Add("CROSSBAR_DIAMETER", GetType(Decimal))
- gratingTable.Columns.Add("CROSSBAR_THICKNESS", GetType(Decimal))
- gratingTable.Columns.Add("CROSSBAR_HEIGHT", GetType(Decimal))
-
- gratingTable.Rows.Add()
-
- gratingTable.Rows(0)("SERRATED") = False 'Hämta från GUI
- gratingTable.Rows(0)("WIDTH") = CDec(ComboBox_Width.Text)
- gratingTable.Rows(0)("LENGTH") = CDec(ComboBox_Length.Text)
- gratingTable.Rows(0)("LOADBAR_THICKNESS") = CDec(ComboBox_Thickness.Text)
- gratingTable.Rows(0)("LOADBAR_HEIGHT") = CDec(ComboBox_Height.Text)
- gratingTable.Rows(0)("LOADBAR_SPACING") = CDec(lSpacing)
- gratingTable.Rows(0)("CROSSBAR_SPACING") = CDec(cSpacing)
-
- If ComboBox_TypeChooser.Text = "Pressure Welded" Then
- gratingTable.Rows(0)("TYPE") = "pressure_welded" ' Här behövs namn på HLCt modellen
- gratingTable.Rows(0)("CROSSBAR_DIAMETER") = 5
- gratingTable.Rows(0)("CROSSBAR_THICKNESS") = 0
- gratingTable.Rows(0)("CROSSBAR_HEIGHT") = 0
- Else
- gratingTable.Rows(0)("TYPE") = "type_a" ' Här behövs namn på HLCt modellen
- gratingTable.Rows(0)("CROSSBAR_DIAMETER") = 0
- gratingTable.Rows(0)("CROSSBAR_THICKNESS") = 2
- gratingTable.Rows(0)("CROSSBAR_HEIGHT") = 15
- End If
-
- Return gratingTable
- End Function
-
- Private Sub Create_TextBox(TextBoxName As String, TextBoxText As String, TextBoxLeft As Integer, TextBoxTop As Integer, TextBoxWidth As Integer)
- Dim textBoxTemp As New TextBox
- textBoxTemp.Name = TextBoxName
- textBoxTemp.Text = TextBoxText
- textBoxTemp.Left = TextBoxLeft
- textBoxTemp.Top = TextBoxTop
- textBoxTemp.Width = TextBoxWidth
- textBoxTemp.Font = New Font("Microsoft Sans Serif", 10)
- Me.Controls.Add(textBoxTemp)
- End Sub
-
- Private Sub Create_Label(LabelName As String, LabelText As String, LabelLeft As Integer, LabelTop As Integer)
- Dim LabelTemp As New Label
- LabelTemp.Name = LabelName
- LabelTemp.Text = LabelText
- LabelTemp.Left = LabelLeft
- LabelTemp.Top = LabelTop
- LabelTemp.Font = New Font("Microsoft Sans Serif", 10)
- Me.Controls.Add(LabelTemp)
- End Sub
@@ -361,489 +98,84 @@ Public Class GUI
' --- When user changes grating type ---
Private Sub ComboBox_TypeChooser_TextChanged(sender As Object, e As EventArgs) Handles ComboBox_TypeChooser.TextChanged
- ComboBox_Material.Enabled = True
- ComboBox_Material.Items.Clear()
- gratingType = ComboBox_TypeChooser.Text
-
- Dim materialDT As DataTable = dataBase("Material")
- Dim typeColumn As Integer = Get_ColumnIndex("TYPE", materialDT)
- Dim materialColumn As Integer = Get_ColumnIndex("MATERIAL", materialDT)
-
- Dim typeInDT As String = materialDT.Rows(0)(typeColumn)
- For i = 0 To materialDT.Rows.Count - 1
- If gratingType = materialDT.Rows(i)(typeColumn) Then
- ComboBox_Material.Items.Add(materialDT.Rows(i)(materialColumn))
- End If
- Try
- typeInDT = materialDT.Rows(i + 1)(typeColumn)
- Catch ex As Exception
- End Try
- Next
-
- ComboBox_Material.Text = ComboBox_Material.Items(0)
+ GUI_Gratings_Data.TypeChanged(sender, e)
End Sub
- Private Function Get_ColumnIndex(columnName As String, activeDT As DataTable)
- Dim columnIndex As Integer = -1
- Dim columnCounter As Integer = 0
- While columnIndex = -1
- If activeDT.Columns(columnCounter).ColumnName = columnName Then
- columnIndex = columnCounter
- End If
- columnCounter = columnCounter + 1
- End While
-
- Return columnIndex
- End Function
' --- When user changes grating material ---
Private Sub ComboBox_Material_TextChanged(sender As Object, e As EventArgs) Handles ComboBox_Material.TextChanged
- ComboBox_MeshSize.Enabled = True
- gratingMaterial = ComboBox_Material.Text
+ GUI_Gratings_Data.MaterialChanged(sender, e)
- Dim serratedDT As DataTable = dataBase("Serrated")
- Dim typeColumn As Integer = Get_ColumnIndex("TYPE", serratedDT)
- Dim materialColumn As Integer = Get_ColumnIndex("MATERIAL", serratedDT)
-
- Dim removeCheckBox As Boolean = True
- Dim typeInDT As String = serratedDT.Rows(0)(typeColumn)
- Dim materialInDT As String = serratedDT.Rows(0)(materialColumn)
- If serratedCheckBoxBol = False Then
- For i = 0 To serratedDT.Rows.Count - 1
- If gratingMaterial = materialInDT AndAlso gratingType = typeInDT Then
- serratedCheckBox.Name = "CheckBox_Serrated"
- serratedCheckBox.Text = "Serrated"
- serratedCheckBox.Left = 115
- serratedCheckBox.Top = 115
- AddHandler serratedCheckBox.CheckedChanged, AddressOf CheckBox_Serrated_CheckedChanged
- Me.Controls.Add(serratedCheckBox)
- serratedCheckBoxBol = True
- Exit For
- End If
- Try
- typeInDT = serratedDT.Rows(i + 1)(typeColumn)
- materialInDT = serratedDT.Rows(i + 1)(materialColumn)
- Catch ex As Exception
- End Try
- Next
- Else
- For i = 0 To serratedDT.Rows.Count - 1
- If gratingMaterial = materialInDT AndAlso gratingType = typeInDT Then
- removeCheckBox = False
- Exit For
- End If
- Try
- typeInDT = serratedDT.Rows(i + 1)(typeColumn)
- materialInDT = serratedDT.Rows(i + 1)(materialColumn)
- Catch ex As Exception
- End Try
- Next
- If serratedCheckBoxBol = True AndAlso removeCheckBox = True Then
- RemoveHandler serratedCheckBox.CheckedChanged, AddressOf CheckBox_Serrated_CheckedChanged
- Me.Controls.RemoveByKey("CheckBox_Serrated")
- serratedCheckBoxBol = False
- gratingSerrated = False
- End If
- End If
-
-
- If lacqueredCheckBoxBol = False AndAlso (gratingMaterial = "Hot dip galvanized steel" OrElse gratingMaterial = "Untreated") Then
- lacqueredCheckBox.Name = "CheckBox_Lacquered"
- lacqueredCheckBox.Text = "Lacquered"
- lacqueredCheckBox.Left = 115
- lacqueredCheckBox.Top = 135
- AddHandler lacqueredCheckBox.CheckedChanged, AddressOf CheckBox_Lacquered_CheckedChanged
- Me.Controls.Add(lacqueredCheckBox)
- lacqueredCheckBoxBol = True
- ElseIf lacqueredCheckBoxBol = True AndAlso gratingMaterial <> "Hot dip galvanized steel" AndAlso gratingMaterial <> "Untreated" Then
- RemoveHandler lacqueredCheckBox.CheckedChanged, AddressOf CheckBox_Lacquered_CheckedChanged
- Me.Controls.RemoveByKey("CheckBox_Lacquered")
- lacqueredCheckBoxBol = False
- gratingLacquered = False
- End If
-
- ' Untreated finns för alla som är varmförzinkade enligt Jakob Teams
- Update_AvalaibleMeshes()
- End Sub
-
-
- Private Sub CheckBox_Serrated_CheckedChanged(sender As Object, e As EventArgs)
- If sender.Checked Then
- gratingSerrated = True
- Update_AvalaibleMeshes()
- Else
- gratingSerrated = False
- Update_AvalaibleMeshes()
- End If
- End Sub
-
- Private Sub CheckBox_Lacquered_CheckedChanged(sender As Object, e As EventArgs)
- 'Här hanterar vi om den är lackad eller inte
- 'påverkar ej övrig kod (förutom kommentar att det är special order)
- If sender.Checked Then
- gratingLacquered = True
-
- Else
- gratingLacquered = False
-
- End If
- End Sub
-
- Private Sub Update_AvalaibleMeshes()
- ComboBox_MeshSize.Items.Clear()
-
- Dim meshesDT As DataTable = dataBase("Meshes")
- Dim typeColumn As Integer = Get_ColumnIndex("TYPE", meshesDT)
- Dim materialColumn As Integer = Get_ColumnIndex("MATERIAL", meshesDT)
- Dim serratedColumn As Integer = Get_ColumnIndex("SERRATED", meshesDT)
-
- Dim typeInDT As String = meshesDT.Rows(0)(typeColumn)
- Dim materialInDT As String = meshesDT.Rows(0)(materialColumn)
- Dim serratedInDT As Boolean = CBool(meshesDT.Rows(0)(serratedColumn))
- For i = 0 To meshesDT.Rows.Count - 1
- If gratingSerrated = serratedInDT AndAlso gratingMaterial = materialInDT AndAlso gratingType = typeInDT Then
- Dim item As String
- item = meshesDT.Rows(i)("LB-SPACING") & "x" & meshesDT.Rows(i)("CB-SPACING") & " (" & meshesDT.Rows(i)("NAME") & ")"
-
- Dim addItem As Boolean = True
- For j = 0 To ComboBox_MeshSize.Items.Count - 1
- If item = ComboBox_MeshSize.Items(j) Then
- addItem = False
- Exit For
- End If
- Next
- If addItem = True Then
- ComboBox_MeshSize.Items.Add(item)
- End If
- End If
- Try
- typeInDT = meshesDT.Rows(i + 1)(typeColumn)
- materialInDT = meshesDT.Rows(i + 1)(materialColumn)
- serratedInDT = meshesDT.Rows(i + 1)(serratedColumn)
- Catch ex As Exception
- End Try
- Next
-
- If ComboBox_MeshSize.Items.Count = 0 Then
- ComboBox_MeshSize.Items.Add("")
- End If
End Sub
' --- When user changes mesh size ---
Private Sub ComboBox_MeshSize_TextChanged(sender As Object, e As EventArgs) Handles ComboBox_MeshSize.TextChanged
- ComboBox_Height.Enabled = True
- ComboBox_Height.Items.Clear()
- gratingMesh = ComboBox_MeshSize.Text
- loadBarSpacing = CInt(gratingMesh.Split("x")(0))
- crossBarSpacing = CInt(gratingMesh.Split("x")(1).Split(" ")(0))
+ GUI_Gratings_Data.MeshChanged(sender, e)
- ' Add heights
- If loadBarSpacing = 12 And crossBarSpacing = 100 Then
- ComboBox_Height.Items.Add("20")
- ComboBox_Height.Items.Add("25")
- End If
End Sub
' --- When user changes grating height ---
Private Sub ComboBox_Height_TextChanged(sender As Object, e As EventArgs) Handles ComboBox_Height.TextChanged
- ComboBox_Thickness.Enabled = True
- ComboBox_Thickness.Items.Clear()
- gratingHeight = CInt(ComboBox_Height.Text)
+ GUI_Gratings_Data.HeightChanged(sender, e)
- ' Add thicknesses
- If gratingHeight = 20 Then
- ComboBox_Thickness.Items.Add("2")
- ComboBox_Thickness.Items.Add("3")
- End If
End Sub
' --- When user changes grating thickness ---
Private Sub ComboBox_Thickness_TextChanged(sender As Object, e As EventArgs) Handles ComboBox_Thickness.TextChanged
- ComboBox_Width.Enabled = True
- ComboBox_Width.Items.Clear()
- ComboBox_Length.Enabled = True
- ComboBox_Length.Items.Clear()
- loadBarThickness = CInt(ComboBox_Thickness.Text)
- ' Add Widths
- ComboBox_Width.Items.Add("300")
- ComboBox_Width.Items.Add("500")
- ComboBox_Width.Items.Add("1000")
- ComboBox_Width.Text = ComboBox_Width.Items(0)
+ GUI_Gratings_Data.ThicknessChanged(sender, e)
- ' Add Length
- ComboBox_Length.Items.Add("500")
- ComboBox_Length.Items.Add("1000")
- ComboBox_Length.Text = ComboBox_Length.Items(0)
End Sub
- Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
- If CheckBox1.Checked Then
- ComboBox_Width.DropDownStyle = ComboBoxStyle.DropDownList
- Else
- ComboBox_Width.DropDownStyle = ComboBoxStyle.DropDown
- End If
+ Private Sub CheckBox_WholeMeshWidths_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox_WholeMeshWidths.CheckedChanged
+ GUI_Gratings_Data.WholeMeshWidthsChanged(sender, e)
+
End Sub
' --- Grating width changed ---
Private Sub WidthB_TextChanged(sender As Object, e As EventArgs) Handles ComboBox_Width.TextChanged
+ GUI_Gratings_Data.WidthChanged(sender, e)
-
- If ComboBox_Width.Text <> "" Then
- If CDec(ComboBox_Width.Text) > 0 Then
- gratingMaxW = CDec(ComboBox_Width.Text)
- Update_GratingPoints()
- End If
- End If
-
- 'If stocked length options exist
- If gratingMaxW = 500 Then
- Dim stockedCheckBox As New CheckBox
- stockedCheckBox.Name = "CheckBox_Stocked"
- stockedCheckBox.Text = "Only stocked lengths"
- stockedCheckBox.Left = 94
- stockedCheckBox.Top = 386
- stockedCheckBox.Checked = True
- Me.Controls.Add(stockedCheckBox)
- End If
End Sub
' --- Check if width is a number ---
Private Sub ComboBox_Width_KeyPress(sender As Object, e As KeyPressEventArgs) Handles ComboBox_Width.KeyPress
- Check_IfNumber(e)
+ GUI_Gratings_Data.Check_IfNumber(e)
End Sub
' --- Grating length changed ---
Private Sub LengthBox_TextChanged(sender As Object, e As EventArgs) Handles ComboBox_Length.TextChanged
- If ComboBox_Length.Text <> "" Then
- If CDec(ComboBox_Length.Text) > 0 Then
- gratingMaxL = CDec(ComboBox_Length.Text)
- Update_GratingPoints()
- End If
- End If
+ GUI_Gratings_Data.LengthChanged(sender, e)
+
End Sub
' --- Check if length is a number ---
Private Sub ComboBox_Length_KeyPress(sender As Object, e As KeyPressEventArgs) Handles ComboBox_Length.KeyPress
- Check_IfNumber(e)
+ GUI_Gratings_Data.Check_IfNumber(e)
End Sub
-
-
' --- When angle button is pressed ---
Private Sub AngleButton_Click(sender As Object, e As EventArgs) Handles AngleButton.Click
- Me.Controls("AngleButton").Enabled = False
- Me.Controls("Button_Square").Enabled = False
+ GUI_Functions.AngleButton(sender, e)
- Dim buttonX As Integer = Me.Controls("AngleButton").Location.X
- Dim buttonY As Integer = Me.Controls("AngleButton").Location.Y
-
- Create_TextBox("X_TextBox", "", buttonX + 20, buttonY + 40, 60)
- AddHandler Me.Controls("X_TextBox").TextChanged, AddressOf FunctionText_Changed
- Create_Label("X_Label", "1", buttonX, buttonY + 43)
-
- Create_TextBox("Y_TextBox", "", buttonX + 130, buttonY + 40, 60)
- AddHandler Me.Controls("Y_TextBox").TextChanged, AddressOf FunctionText_Changed
- Create_Label("Y_Label", "2", buttonX + 110, buttonY + 43)
-
- angleFunctionActive = True
End Sub
' --- When square button is pressed ---
Private Sub Button_Square_Click(sender As Object, e As EventArgs) Handles Button_Square.Click
- Me.Controls("AngleButton").Enabled = False
- Me.Controls("Button_Square").Enabled = False
+ GUI_Functions.SquareButtton(sender, e)
- Dim buttonX As Integer = Me.Controls("Button_Square").Location.X
- Dim buttonY As Integer = Me.Controls("Button_Square").Location.Y
-
- Create_TextBox("X_TextBox", "", buttonX + 20, buttonY + 40, 60)
- AddHandler Me.Controls("X_TextBox").TextChanged, AddressOf FunctionText_Changed
- Create_Label("X_Label", "1", buttonX, buttonY + 43)
-
- Create_TextBox("Y_TextBox", "", buttonX + 130, buttonY + 40, 60)
- AddHandler Me.Controls("Y_TextBox").TextChanged, AddressOf FunctionText_Changed
- Create_Label("Y_Label", "2", buttonX + 110, buttonY + 43)
-
- ' Add option for corner or side
-
- squareFunctionActive = True
- End Sub
-
-
- Private Sub FunctionText_Changed(sender As TextBox, e As EventArgs)
- If Not Me.Controls("X_TextBox").Text = "" And Not Me.Controls("Y_TextBox").Text = "" Then
- If containerPanel.Controls.Count = 0 Then
- ' Create Buttons for all clickable points
- For i = 0 To pointsOrder.Count - 1
- If pointsFunc(pointsOrder(i)) Then
- Dim pointButton As New Button
- pointButton.Width = 30
- pointButton.Height = 30
-
- pointButton.Left = points(pointsOrder(i))(0) - pointButton.Width / 2
- pointButton.Top = points(pointsOrder(i))(1) - pointButton.Height / 2
-
- pointButton.Name = pointsOrder(i) & "_Button"
- pointButton.Text = ""
-
- pointButton.BackColor = Color.FromArgb(50, Color.Red)
- pointButton.FlatStyle = FlatStyle.Flat
- pointButton.FlatAppearance.BorderSize = 0
- pointButton.FlatAppearance.MouseOverBackColor = Color.Red
- pointButton.FlatAppearance.MouseDownBackColor = Color.DarkRed
-
- Dim gp As New Drawing.Drawing2D.GraphicsPath
- gp.AddEllipse(New Rectangle(New Point(0, 0), New Size(30, 30)))
- pointButton.Region = New Region(gp)
-
- containerPanel.Controls.Add(pointButton)
-
- AddHandler pointButton.Click, AddressOf PointButton_Click
- End If
- Next
- pointCounter = pointCounter + 1
- End If
- End If
- End Sub
-
- ' --- When a function button is pressed ---
- Private Sub PointButton_Click(sender As Button, e As EventArgs)
- 'Determine which point is being pressed
- Dim pointPressed As String = sender.Name.Split("_")(0)
- Dim index As Integer = pointsOrder.IndexOf(pointPressed)
-
- ' Remove point buttons
- For i = 0 To pointsOrder.Count - 1
- If pointsFunc(pointsOrder(i)) Then
- RemoveHandler containerPanel.Controls(pointsOrder(i) & "_Button").Click, AddressOf PointButton_Click
- containerPanel.Controls.RemoveByKey(pointsOrder(i) & "_Button")
- End If
- Next
-
- 'Retrive that points coords
- Dim pXP As Decimal = points(pointPressed)(0)
- Dim pYP As Decimal = points(pointPressed)(1)
- Dim pXSW As Decimal = points(pointPressed)(2)
- Dim pYSW As Decimal = points(pointPressed)(3)
-
- Dim d1P As Decimal = Me.Controls("X_TextBox").Text / scaleDiff ' BEHÖVS Cdec??
- Dim d2P As Decimal = Me.Controls("Y_TextBox").Text / scaleDiff
- Dim d1SW As Decimal = Me.Controls("X_TextBox").Text / 1000
- Dim d2SW As Decimal = Me.Controls("Y_TextBox").Text / 1000
-
- Dim numOfNewPoints As Integer
-
- If angleFunctionActive Then
- If pXP < containerMidX Then
- If pYP > containerMidY Then
- 'Kvadrant 4
- points.Add("pA" & pointCounter * 2 - 1, {pXP + d1P, pYP, pXSW + d1SW, pYSW})
- points.Add("pA" & pointCounter * 2, {pXP, pYP - d2P, pXSW, pYSW + d2SW})
- Else
- 'Kvadrant 1
- points.Add("pA" & pointCounter * 2 - 1, {pXP, pYP + d2P, pXSW, pYSW - d2SW})
- points.Add("pA" & pointCounter * 2, {pXP + d1P, pYP, pXSW + d1SW, pYSW})
- End If
- Else
- If pYP > containerMidY Then
- 'Kvadrant 3
- points.Add("pA" & pointCounter * 2 - 1, {pXP, pYP - d2P, pXSW, pYSW + d2SW})
- points.Add("pA" & pointCounter * 2, {pXP - d1P, pYP, pXSW - d1SW, pYSW})
- Else
- 'Kvadrant 2
- points.Add("pA" & pointCounter * 2 - 1, {pXP - d1P, pYP, pXSW - d1SW, pYSW})
- points.Add("pA" & pointCounter * 2, {pXP, pYP + d2P, pXSW, pYSW - d2SW})
- End If
- End If
- pointsFunc.Add("pA" & pointCounter * 2 - 1, False)
- pointsFunc.Add("pA" & pointCounter * 2, False)
-
- 'Insert two new points
- pointsOrder.Insert(index + 1, "pA" & pointCounter * 2 - 1)
- pointsOrder.Insert(index + 2, "pA" & pointCounter * 2)
-
- numOfNewPoints = 2
- angleFunctionActive = False
-
- Else
- If pXP < containerMidX Then
- If pYP > containerMidY Then
- 'Kvadrant 4
- points.Add("pS" & pointCounter * 3 - 2, {pXP + d1P, pYP, pXSW + d1SW, pYSW})
- points.Add("pS" & pointCounter * 3 - 1, {pXP + d1P, pYP - d2P, pXSW + d1SW, pYSW + d2SW})
- points.Add("pS" & pointCounter * 3, {pXP, pYP - d2P, pXSW, pYSW + d2SW})
- Else
- 'Kvadrant 1
- points.Add("pS" & pointCounter * 3 - 2, {pXP, pYP + d2P, pXSW, pYSW - d2SW})
- points.Add("pS" & pointCounter * 3 - 1, {pXP + d1P, pYP + d2P, pXSW + d1SW, pYSW - d2SW})
- points.Add("pS" & pointCounter * 3, {pXP + d1P, pYP, pXSW + d1SW, pYSW})
- End If
- Else
- If pYP > containerMidY Then
- 'Kvadrant 3
- points.Add("pS" & pointCounter * 3 - 2, {pXP, pYP - d2P, pXSW, pYSW + d2SW})
- points.Add("pS" & pointCounter * 3 - 1, {pXP - d1P, pYP - d2P, pXSW - d1SW, pYSW + d2SW})
- points.Add("pS" & pointCounter * 3, {pXP - d1P, pYP, pXSW - d1SW, pYSW})
- Else
- 'Kvadrant 2
- points.Add("pS" & pointCounter * 3 - 2, {pXP - d1P, pYP, pXSW - d1SW, pYSW})
- points.Add("pS" & pointCounter * 3 - 1, {pXP - d1P, pYP + d2P, pXSW - d1SW, pYSW - d2SW})
- points.Add("pS" & pointCounter * 3, {pXP, pYP + d2P, pXSW, pYSW - d2SW})
- End If
- End If
- pointsFunc.Add("pS" & pointCounter * 3 - 2, True)
- pointsFunc.Add("pS" & pointCounter * 3 - 1, False)
- pointsFunc.Add("pS" & pointCounter * 3, True)
-
- 'Insert new points
- pointsOrder.Insert(index + 1, "pS" & pointCounter * 3 - 2)
- pointsOrder.Insert(index + 2, "pS" & pointCounter * 3 - 1)
- pointsOrder.Insert(index + 3, "pS" & pointCounter * 3)
-
- numOfNewPoints = 3
-
- squareFunctionActive = False
-
- End If
- pointsOrder.RemoveAt(index)
-
- 'Redraw grating
- Me.Refresh()
-
- RemoveHandler Me.Controls("X_TextBox").TextChanged, AddressOf FunctionText_Changed
- Me.Controls.RemoveByKey("X_TextBox")
-
- RemoveHandler Me.Controls("Y_TextBox").TextChanged, AddressOf FunctionText_Changed
- Me.Controls.RemoveByKey("Y_TextBox")
-
- Me.Controls.RemoveByKey("X_Label")
- Me.Controls.RemoveByKey("Y_Label")
-
- Me.Controls("AngleButton").Enabled = True
- Me.Controls("Button_Square").Enabled = True
End Sub
' --- Settings button clicked ---
Private Sub SettingsButton_Click(sender As Object, e As EventArgs) Handles SettingsButton.Click
- Program.Update_KB()
+ GUI_Settings.ButtonClicked(sender, e)
End Sub
' --- When export to SW button is pressed ---
Private Sub ExportSWButton_Click(sender As Object, e As EventArgs) Handles ExportSWButton.Click
- Dim exportTable As DataTable
- exportTable = Create_ExportTable()
-
-
- Program.Build_Grating(exportTable)
-
- 'Test för att SW API
- Dim pointTable As New DataTable
- pointTable = Create_PointTable()
-
- Program.Export_SW(pointTable, 0.025) 'Make variable ref to Height
-
+ SW_HLCt_Gratings.BuildGrating()
+ SW_Drawing_Gratings.CreateDrawing()
End Sub
End Class
\ No newline at end of file
diff --git a/Wardrobe/GUI_Drawing_Panel.vb b/Wardrobe/GUI_Drawing_Panel.vb
new file mode 100644
index 0000000..bb487fd
--- /dev/null
+++ b/Wardrobe/GUI_Drawing_Panel.vb
@@ -0,0 +1,191 @@
+Public Class GUI_Drawing_Panel
+ Private Shared pCon1(3) As Decimal 'pCon(0) = pixel X, pCon(2) = SW X, etc.
+ Private Shared pCon2(3) As Decimal
+ Private Shared pCon3(3) As Decimal
+ Private Shared pCon4(3) As Decimal
+
+ Private Shared containerL, containerW, containerMidX, containerMidY As Integer
+ Private Shared drawL As Integer = 1
+ Private Shared drawW As Integer = 1
+
+ Private Shared DirSymbolPoints As New Dictionary(Of String, Decimal())
+
+ Private Shared ArrowSymbolPoints As New Dictionary(Of String, Decimal())
+
+ Private Shared drawAspect, gratingAspect As Decimal
+ Private Shared scaleDiff As Decimal = 1
+
+ Public Shared pointsOrder As New List(Of String)
+ Public Shared points As New Dictionary(Of String, Decimal())
+
+ Private Shared gratingMaxW As Decimal = 1000
+ Private Shared gratingMaxL As Decimal = 1000
+
+ Private Shared pointsFunc As New Dictionary(Of String, Boolean)
+
+ Public Shared Sub Load_DrawingPanel()
+ Get_DrawboxParameters()
+ Set_ContainerPointsX()
+ Set_ContainerPointsY()
+
+ Create_DirSymbolPoints()
+ Create_ArrowSymbolPoints()
+ Update_GratingPoints()
+ Create_StartPoints()
+ End Sub
+
+ ' --- Retrive parameters for the drawing box ---
+ Private Shared Sub Get_DrawboxParameters()
+ containerL = GUI.containerPanel.Size.Width
+ containerW = GUI.containerPanel.Size.Height
+
+ containerMidX = containerL / 2
+ containerMidY = containerW / 2
+
+ drawL = containerL - 80
+ drawW = containerW - 80
+
+ drawAspect = drawL / drawW
+ End Sub
+
+ ' --- Set containers points X-values ---
+ Private Shared Sub Set_ContainerPointsX()
+ pCon1(0) = containerMidX - drawL / 2
+ pCon2(0) = containerMidX + drawL / 2
+ pCon3(0) = containerMidX + drawL / 2
+ pCon4(0) = containerMidX - drawL / 2
+ End Sub
+
+ ' --- Set containers points Y-values ---
+ Private Shared Sub Set_ContainerPointsY()
+ pCon1(1) = containerMidY - drawW / 2
+ pCon2(1) = containerMidY - drawW / 2
+ pCon3(1) = containerMidY + drawW / 2
+ pCon4(1) = containerMidY + drawW / 2
+ End Sub
+
+
+ ' --- Create points for grating direction symbol ---
+ Private Shared Sub Create_DirSymbolPoints()
+ DirSymbolPoints.Add("p1", {-30 + containerMidX, -2 + containerMidY})
+ DirSymbolPoints.Add("p2", {20 + containerMidX, -2 + containerMidY})
+ DirSymbolPoints.Add("p3", {12 + containerMidX, -10 + containerMidY})
+ DirSymbolPoints.Add("p4", {15 + containerMidX, -13 + containerMidY})
+ DirSymbolPoints.Add("p5", {30 + containerMidX, 2 + containerMidY})
+ DirSymbolPoints.Add("p6", {-20 + containerMidX, 2 + containerMidY})
+ DirSymbolPoints.Add("p7", {-12 + containerMidX, 10 + containerMidY})
+ DirSymbolPoints.Add("p8", {-15 + containerMidX, 13 + containerMidY})
+ DirSymbolPoints.Add("p9", {-30 + containerMidX, -2 + containerMidY})
+ End Sub
+
+ ' --- Create points for arrow symbol ---
+ Private Shared Sub Create_ArrowSymbolPoints()
+ Dim offset As Integer = 20
+ ArrowSymbolPoints.Add("p1", {offset, containerW - offset})
+ ArrowSymbolPoints.Add("p2", {offset, containerW - offset - 40})
+ ArrowSymbolPoints.Add("p3", {offset - 5, containerW - offset - 35})
+ ArrowSymbolPoints.Add("p4", {offset, containerW - offset - 40})
+ ArrowSymbolPoints.Add("p5", {offset + 5, containerW - offset - 35})
+ ArrowSymbolPoints.Add("p6", {offset, containerW - offset - 40})
+ ArrowSymbolPoints.Add("p7", {offset, containerW - offset})
+ ArrowSymbolPoints.Add("p8", {offset + 40, containerW - offset})
+ ArrowSymbolPoints.Add("p9", {offset + 35, containerW - offset - 5})
+ ArrowSymbolPoints.Add("p10", {offset + 40, containerW - offset})
+ ArrowSymbolPoints.Add("p11", {offset + 35, containerW - offset + 5})
+ End Sub
+
+ ' --- Updates all the gratings points ---
+ Private Shared Sub Update_GratingPoints()
+ gratingAspect = gratingMaxL / gratingMaxW
+
+ If gratingAspect > drawAspect Then
+ 'Change draw height
+ scaleDiff = gratingMaxL / drawL
+
+ pCon1(1) = containerMidY - gratingMaxW / (scaleDiff * 2)
+ pCon2(1) = containerMidY - gratingMaxW / (scaleDiff * 2)
+ pCon3(1) = containerMidY + gratingMaxW / (scaleDiff * 2)
+ pCon4(1) = containerMidY + gratingMaxW / (scaleDiff * 2)
+
+ Set_ContainerPointsX()
+ Else
+ 'Change draw width
+ scaleDiff = gratingMaxW / drawW
+
+ pCon1(0) = containerMidX - gratingMaxL / (scaleDiff * 2)
+ pCon2(0) = containerMidX + gratingMaxL / (scaleDiff * 2)
+ pCon3(0) = containerMidX + gratingMaxL / (scaleDiff * 2)
+ pCon4(0) = containerMidX - gratingMaxL / (scaleDiff * 2)
+
+ Set_ContainerPointsY()
+ End If
+
+ 'Redraw grating
+ GUI.Refresh()
+
+ 'SW X-values
+ pCon1(2) = (-gratingMaxL / 2) / 1000
+ pCon2(2) = (gratingMaxL / 2) / 1000
+ pCon3(2) = (gratingMaxL / 2) / 1000
+ pCon4(2) = (-gratingMaxL / 2) / 1000
+
+ 'SW Y-values
+ pCon1(3) = (gratingMaxW / 2) / 1000
+ pCon2(3) = (gratingMaxW / 2) / 1000
+ pCon3(3) = (-gratingMaxW / 2) / 1000
+ pCon4(3) = (-gratingMaxW / 2) / 1000
+ End Sub
+
+ ' --- Sets the start points for the grating ---
+ Private Shared Sub Create_StartPoints()
+ For i = 1 To 4
+ points.Add("p" & i, CallByName(GUI, "pCon" & i, vbGet))
+ pointsFunc.Add("p" & i, True)
+ pointsOrder.Add("p" & i)
+ Next
+ End Sub
+
+ ' --- Draw all the lines for the container and grating ---
+ Public Shared Sub DrawingPanel_Paint(sender As Object, e As System.Windows.Forms.PaintEventArgs)
+ ' Draw outer grating (red)
+ Dim penCon As Pen = New Pen(Color.DarkRed, 1)
+ penCon.DashPattern = {4, 8}
+ e.Graphics.DrawLine(penCon, CInt(pCon1(0)), CInt(pCon1(1)), CInt(pCon2(0)), CInt(pCon2(1)))
+ e.Graphics.DrawLine(penCon, CInt(pCon2(0)), CInt(pCon2(1)), CInt(pCon3(0)), CInt(pCon3(1)))
+ e.Graphics.DrawLine(penCon, CInt(pCon3(0)), CInt(pCon3(1)), CInt(pCon4(0)), CInt(pCon4(1)))
+ e.Graphics.DrawLine(penCon, CInt(pCon4(0)), CInt(pCon4(1)), CInt(pCon1(0)), CInt(pCon1(1)))
+
+ ' Draw grating direction symbol
+ Dim symPen As Pen = New Pen(Color.Black, 1)
+ For i = 1 To DirSymbolPoints.Count - 1
+ e.Graphics.DrawLine(symPen, DirSymbolPoints("p" & i)(0), DirSymbolPoints("p" & i)(1), DirSymbolPoints("p" & i + 1)(0), DirSymbolPoints("p" & i + 1)(1))
+ Next
+
+ ' Draw arrow symbol
+ For i = 1 To ArrowSymbolPoints.Count - 1
+ e.Graphics.DrawLine(symPen, ArrowSymbolPoints("p" & i)(0), ArrowSymbolPoints("p" & i)(1), ArrowSymbolPoints("p" & i + 1)(0), ArrowSymbolPoints("p" & i + 1)(1))
+ Next
+ e.Graphics.TranslateTransform(20, containerW - 20)
+ e.Graphics.DrawString("Length", New Font("Microsoft Sans Serif", 8), Brushes.Black, New Point(45, -7))
+ e.Graphics.RotateTransform(-90)
+ e.Graphics.DrawString("Width", New Font("Microsoft Sans Serif", 8), Brushes.Black, New Point(45, -4))
+ e.Graphics.RotateTransform(90)
+ e.Graphics.TranslateTransform(-20, -containerW + 20)
+
+ ' Draw actual grating (black)
+ Dim pen As Pen = New Pen(Color.Black, 2)
+ For i = 0 To pointsOrder.Count - 1
+ Dim pTemp1() As Decimal
+ Dim pTemp2() As Decimal
+
+ pTemp1 = points(pointsOrder(i))
+ Try
+ pTemp2 = points(pointsOrder(i + 1))
+ Catch ex As Exception
+ pTemp2 = points(pointsOrder(0))
+ End Try
+
+ e.Graphics.DrawLine(pen, CInt(pTemp1(0)), CInt(pTemp1(1)), CInt(pTemp2(0)), CInt(pTemp2(1)))
+ Next
+ End Sub
+End Class
diff --git a/Wardrobe/GUI_Functions.vb b/Wardrobe/GUI_Functions.vb
new file mode 100644
index 0000000..78b3eb4
--- /dev/null
+++ b/Wardrobe/GUI_Functions.vb
@@ -0,0 +1,193 @@
+Public Class GUI_Functions
+ Public Shared Sub AngleButton(sender As Object, e As EventArgs)
+ Me.Controls("AngleButton").Enabled = False
+ Me.Controls("Button_Square").Enabled = False
+
+ Dim buttonX As Integer = Me.Controls("AngleButton").Location.X
+ Dim buttonY As Integer = Me.Controls("AngleButton").Location.Y
+
+ Create_TextBox("X_TextBox", "", buttonX + 20, buttonY + 40, 60)
+ AddHandler Me.Controls("X_TextBox").TextChanged, AddressOf FunctionText_Changed
+ Create_Label("X_Label", "1", buttonX, buttonY + 43)
+
+ Create_TextBox("Y_TextBox", "", buttonX + 130, buttonY + 40, 60)
+ AddHandler Me.Controls("Y_TextBox").TextChanged, AddressOf FunctionText_Changed
+ Create_Label("Y_Label", "2", buttonX + 110, buttonY + 43)
+
+ angleFunctionActive = True
+ End Sub
+
+ Public Shared Sub SquareButtton(sender As Object, e As EventArgs)
+ Me.Controls("AngleButton").Enabled = False
+ Me.Controls("Button_Square").Enabled = False
+
+ Dim buttonX As Integer = Me.Controls("Button_Square").Location.X
+ Dim buttonY As Integer = Me.Controls("Button_Square").Location.Y
+
+ Create_TextBox("X_TextBox", "", buttonX + 20, buttonY + 40, 60)
+ AddHandler Me.Controls("X_TextBox").TextChanged, AddressOf FunctionText_Changed
+ Create_Label("X_Label", "1", buttonX, buttonY + 43)
+
+ Create_TextBox("Y_TextBox", "", buttonX + 130, buttonY + 40, 60)
+ AddHandler Me.Controls("Y_TextBox").TextChanged, AddressOf FunctionText_Changed
+ Create_Label("Y_Label", "2", buttonX + 110, buttonY + 43)
+
+ ' Add option for corner or side
+
+ squareFunctionActive = True
+
+ End Sub
+
+ Private Sub FunctionText_Changed(sender As TextBox, e As EventArgs)
+ If Not Me.Controls("X_TextBox").Text = "" And Not Me.Controls("Y_TextBox").Text = "" Then
+ If containerPanel.Controls.Count = 0 Then
+ ' Create Buttons for all clickable points
+ For i = 0 To pointsOrder.Count - 1
+ If pointsFunc(pointsOrder(i)) Then
+ Dim pointButton As New Button
+ pointButton.Width = 30
+ pointButton.Height = 30
+
+ pointButton.Left = points(pointsOrder(i))(0) - pointButton.Width / 2
+ pointButton.Top = points(pointsOrder(i))(1) - pointButton.Height / 2
+
+ pointButton.Name = pointsOrder(i) & "_Button"
+ pointButton.Text = ""
+
+ pointButton.BackColor = Color.FromArgb(50, Color.Red)
+ pointButton.FlatStyle = FlatStyle.Flat
+ pointButton.FlatAppearance.BorderSize = 0
+ pointButton.FlatAppearance.MouseOverBackColor = Color.Red
+ pointButton.FlatAppearance.MouseDownBackColor = Color.DarkRed
+
+ Dim gp As New Drawing.Drawing2D.GraphicsPath
+ gp.AddEllipse(New Rectangle(New Point(0, 0), New Size(30, 30)))
+ pointButton.Region = New Region(gp)
+
+ containerPanel.Controls.Add(pointButton)
+
+ AddHandler pointButton.Click, AddressOf PointButton_Click
+ End If
+ Next
+ pointCounter = pointCounter + 1
+ End If
+ End If
+ End Sub
+
+ ' --- When a function button is pressed ---
+ Private Sub PointButton_Click(sender As Button, e As EventArgs)
+ 'Determine which point is being pressed
+ Dim pointPressed As String = sender.Name.Split("_")(0)
+ Dim index As Integer = pointsOrder.IndexOf(pointPressed)
+
+ ' Remove point buttons
+ For i = 0 To pointsOrder.Count - 1
+ If pointsFunc(pointsOrder(i)) Then
+ RemoveHandler containerPanel.Controls(pointsOrder(i) & "_Button").Click, AddressOf PointButton_Click
+ containerPanel.Controls.RemoveByKey(pointsOrder(i) & "_Button")
+ End If
+ Next
+
+ 'Retrive that points coords
+ Dim pXP As Decimal = points(pointPressed)(0)
+ Dim pYP As Decimal = points(pointPressed)(1)
+ Dim pXSW As Decimal = points(pointPressed)(2)
+ Dim pYSW As Decimal = points(pointPressed)(3)
+
+ Dim d1P As Decimal = Me.Controls("X_TextBox").Text / scaleDiff ' BEHÖVS Cdec??
+ Dim d2P As Decimal = Me.Controls("Y_TextBox").Text / scaleDiff
+ Dim d1SW As Decimal = Me.Controls("X_TextBox").Text / 1000
+ Dim d2SW As Decimal = Me.Controls("Y_TextBox").Text / 1000
+
+ Dim numOfNewPoints As Integer
+
+ If angleFunctionActive Then
+ If pXP < containerMidX Then
+ If pYP > containerMidY Then
+ 'Kvadrant 4
+ points.Add("pA" & pointCounter * 2 - 1, {pXP + d1P, pYP, pXSW + d1SW, pYSW})
+ points.Add("pA" & pointCounter * 2, {pXP, pYP - d2P, pXSW, pYSW + d2SW})
+ Else
+ 'Kvadrant 1
+ points.Add("pA" & pointCounter * 2 - 1, {pXP, pYP + d2P, pXSW, pYSW - d2SW})
+ points.Add("pA" & pointCounter * 2, {pXP + d1P, pYP, pXSW + d1SW, pYSW})
+ End If
+ Else
+ If pYP > containerMidY Then
+ 'Kvadrant 3
+ points.Add("pA" & pointCounter * 2 - 1, {pXP, pYP - d2P, pXSW, pYSW + d2SW})
+ points.Add("pA" & pointCounter * 2, {pXP - d1P, pYP, pXSW - d1SW, pYSW})
+ Else
+ 'Kvadrant 2
+ points.Add("pA" & pointCounter * 2 - 1, {pXP - d1P, pYP, pXSW - d1SW, pYSW})
+ points.Add("pA" & pointCounter * 2, {pXP, pYP + d2P, pXSW, pYSW - d2SW})
+ End If
+ End If
+ pointsFunc.Add("pA" & pointCounter * 2 - 1, False)
+ pointsFunc.Add("pA" & pointCounter * 2, False)
+
+ 'Insert two new points
+ pointsOrder.Insert(index + 1, "pA" & pointCounter * 2 - 1)
+ pointsOrder.Insert(index + 2, "pA" & pointCounter * 2)
+
+ numOfNewPoints = 2
+ angleFunctionActive = False
+
+ Else
+ If pXP < containerMidX Then
+ If pYP > containerMidY Then
+ 'Kvadrant 4
+ points.Add("pS" & pointCounter * 3 - 2, {pXP + d1P, pYP, pXSW + d1SW, pYSW})
+ points.Add("pS" & pointCounter * 3 - 1, {pXP + d1P, pYP - d2P, pXSW + d1SW, pYSW + d2SW})
+ points.Add("pS" & pointCounter * 3, {pXP, pYP - d2P, pXSW, pYSW + d2SW})
+ Else
+ 'Kvadrant 1
+ points.Add("pS" & pointCounter * 3 - 2, {pXP, pYP + d2P, pXSW, pYSW - d2SW})
+ points.Add("pS" & pointCounter * 3 - 1, {pXP + d1P, pYP + d2P, pXSW + d1SW, pYSW - d2SW})
+ points.Add("pS" & pointCounter * 3, {pXP + d1P, pYP, pXSW + d1SW, pYSW})
+ End If
+ Else
+ If pYP > containerMidY Then
+ 'Kvadrant 3
+ points.Add("pS" & pointCounter * 3 - 2, {pXP, pYP - d2P, pXSW, pYSW + d2SW})
+ points.Add("pS" & pointCounter * 3 - 1, {pXP - d1P, pYP - d2P, pXSW - d1SW, pYSW + d2SW})
+ points.Add("pS" & pointCounter * 3, {pXP - d1P, pYP, pXSW - d1SW, pYSW})
+ Else
+ 'Kvadrant 2
+ points.Add("pS" & pointCounter * 3 - 2, {pXP - d1P, pYP, pXSW - d1SW, pYSW})
+ points.Add("pS" & pointCounter * 3 - 1, {pXP - d1P, pYP + d2P, pXSW - d1SW, pYSW - d2SW})
+ points.Add("pS" & pointCounter * 3, {pXP, pYP + d2P, pXSW, pYSW - d2SW})
+ End If
+ End If
+ pointsFunc.Add("pS" & pointCounter * 3 - 2, True)
+ pointsFunc.Add("pS" & pointCounter * 3 - 1, False)
+ pointsFunc.Add("pS" & pointCounter * 3, True)
+
+ 'Insert new points
+ pointsOrder.Insert(index + 1, "pS" & pointCounter * 3 - 2)
+ pointsOrder.Insert(index + 2, "pS" & pointCounter * 3 - 1)
+ pointsOrder.Insert(index + 3, "pS" & pointCounter * 3)
+
+ numOfNewPoints = 3
+
+ squareFunctionActive = False
+
+ End If
+ pointsOrder.RemoveAt(index)
+
+ 'Redraw grating
+ Me.Refresh()
+
+ RemoveHandler Me.Controls("X_TextBox").TextChanged, AddressOf FunctionText_Changed
+ Me.Controls.RemoveByKey("X_TextBox")
+
+ RemoveHandler Me.Controls("Y_TextBox").TextChanged, AddressOf FunctionText_Changed
+ Me.Controls.RemoveByKey("Y_TextBox")
+
+ Me.Controls.RemoveByKey("X_Label")
+ Me.Controls.RemoveByKey("Y_Label")
+
+ Me.Controls("AngleButton").Enabled = True
+ Me.Controls("Button_Square").Enabled = True
+ End Sub
+End Class
diff --git a/Wardrobe/GUI_Gratings_Data.vb b/Wardrobe/GUI_Gratings_Data.vb
new file mode 100644
index 0000000..42f4192
--- /dev/null
+++ b/Wardrobe/GUI_Gratings_Data.vb
@@ -0,0 +1,334 @@
+Public Class GUI_Gratings_Data
+ ' --- Creates the table with points data used in SW ---
+ Public Shared Function Create_ExportTable() As DataTable
+ Dim lSpacing As String = GUI.ComboBox_MeshSize.Text.Split("x")(0)
+ Dim cSpacing As String = GUI.ComboBox_MeshSize.Text.Split("x")(1).Split(" ")(0)
+
+ Dim gratingTable As New DataTable
+ gratingTable.Columns.Add("TYPE", GetType(String))
+ gratingTable.Columns.Add("SERRATED", GetType(Boolean))
+ gratingTable.Columns.Add("WIDTH", GetType(Decimal))
+ gratingTable.Columns.Add("LENGTH", GetType(Decimal))
+ gratingTable.Columns.Add("LOADBAR_THICKNESS", GetType(Decimal))
+ gratingTable.Columns.Add("LOADBAR_HEIGHT", GetType(Decimal))
+ gratingTable.Columns.Add("LOADBAR_SPACING", GetType(Decimal))
+ gratingTable.Columns.Add("CROSSBAR_SPACING", GetType(Decimal))
+ gratingTable.Columns.Add("CROSSBAR_DIAMETER", GetType(Decimal))
+ gratingTable.Columns.Add("CROSSBAR_THICKNESS", GetType(Decimal))
+ gratingTable.Columns.Add("CROSSBAR_HEIGHT", GetType(Decimal))
+
+ gratingTable.Rows.Add()
+
+ gratingTable.Rows(0)("SERRATED") = False 'Hämta från GUI
+ gratingTable.Rows(0)("WIDTH") = CDec(GUI.ComboBox_Width.Text)
+ gratingTable.Rows(0)("LENGTH") = CDec(GUI.ComboBox_Length.Text)
+ gratingTable.Rows(0)("LOADBAR_THICKNESS") = CDec(GUI.ComboBox_Thickness.Text)
+ gratingTable.Rows(0)("LOADBAR_HEIGHT") = CDec(GUI.ComboBox_Height.Text)
+ gratingTable.Rows(0)("LOADBAR_SPACING") = CDec(lSpacing)
+ gratingTable.Rows(0)("CROSSBAR_SPACING") = CDec(cSpacing)
+
+ If GUI.ComboBox_TypeChooser.Text = "Pressure Welded" Then
+ gratingTable.Rows(0)("TYPE") = "pressure_welded" ' Här behövs namn på HLCt modellen
+ gratingTable.Rows(0)("CROSSBAR_DIAMETER") = 5
+ gratingTable.Rows(0)("CROSSBAR_THICKNESS") = 0
+ gratingTable.Rows(0)("CROSSBAR_HEIGHT") = 0
+ Else
+ gratingTable.Rows(0)("TYPE") = "type_a" ' Här behövs namn på HLCt modellen
+ gratingTable.Rows(0)("CROSSBAR_DIAMETER") = 0
+ gratingTable.Rows(0)("CROSSBAR_THICKNESS") = 2
+ gratingTable.Rows(0)("CROSSBAR_HEIGHT") = 15
+ End If
+
+ Return gratingTable
+ End Function
+
+
+ ' --- Generate a table containing all the points X- and Y-values ---
+ Public Shared Function Create_PointTable()
+ Dim pointTable As New DataTable
+ pointTable.Columns.Add("X", GetType(Decimal))
+ pointTable.Columns.Add("Y", GetType(Decimal))
+
+ For i = 0 To GUI.pointsOrder.Count - 1
+ Dim pTemp() As Decimal
+ pTemp = GUI.points(GUI.pointsOrder(i))
+
+ pointTable.Rows.Add()
+ pointTable.Rows(i)("X") = pTemp(2)
+ pointTable.Rows(i)("Y") = pTemp(3)
+ Next
+
+ Return pointTable
+ End Function
+
+
+ ' --- Check if the key pressed is a number ---
+ Private Sub Check_IfNumber(e As KeyPressEventArgs)
+ If Asc(e.KeyChar) <> 8 Then
+ If Asc(e.KeyChar) < 48 Or Asc(e.KeyChar) > 57 Then
+ e.Handled = True
+ End If
+ End If
+ End Sub
+
+
+ Private Sub Create_TextBox(TextBoxName As String, TextBoxText As String, TextBoxLeft As Integer, TextBoxTop As Integer, TextBoxWidth As Integer)
+ Dim textBoxTemp As New TextBox
+ textBoxTemp.Name = TextBoxName
+ textBoxTemp.Text = TextBoxText
+ textBoxTemp.Left = TextBoxLeft
+ textBoxTemp.Top = TextBoxTop
+ textBoxTemp.Width = TextBoxWidth
+ textBoxTemp.Font = New Font("Microsoft Sans Serif", 10)
+ Me.Controls.Add(textBoxTemp)
+ End Sub
+
+ Private Sub Create_Label(LabelName As String, LabelText As String, LabelLeft As Integer, LabelTop As Integer)
+ Dim LabelTemp As New Label
+ LabelTemp.Name = LabelName
+ LabelTemp.Text = LabelText
+ LabelTemp.Left = LabelLeft
+ LabelTemp.Top = LabelTop
+ LabelTemp.Font = New Font("Microsoft Sans Serif", 10)
+ Me.Controls.Add(LabelTemp)
+ End Sub
+
+ Public Shared Sub TypeChanged(sender As Object, e As EventArgs)
+ ComboBox_Material.Enabled = True
+ ComboBox_Material.Items.Clear()
+ gratingType = ComboBox_TypeChooser.Text
+
+ Dim materialDT As DataTable = dataBase("Material")
+ Dim typeColumn As Integer = Get_ColumnIndex("TYPE", materialDT)
+ Dim materialColumn As Integer = Get_ColumnIndex("MATERIAL", materialDT)
+
+ Dim typeInDT As String = materialDT.Rows(0)(typeColumn)
+ For i = 0 To materialDT.Rows.Count - 1
+ If gratingType = materialDT.Rows(i)(typeColumn) Then
+ ComboBox_Material.Items.Add(materialDT.Rows(i)(materialColumn))
+ End If
+ Try
+ typeInDT = materialDT.Rows(i + 1)(typeColumn)
+ Catch ex As Exception
+ End Try
+ Next
+
+ ComboBox_Material.Text = ComboBox_Material.Items(0)
+ End Sub
+
+ Public Shared Sub MaterialChanged(sender As Object, e As EventArgs)
+ ComboBox_MeshSize.Enabled = True
+ gratingMaterial = ComboBox_Material.Text
+
+ Dim serratedDT As DataTable = dataBase("Serrated")
+
+ Dim removeCheckBox As Boolean = True
+ Dim typeInDT As String = serratedDT.Rows(0)("TYPE")
+ Dim materialInDT As String = serratedDT.Rows(0)("MATERIAL")
+ If serratedCheckBoxBol = False Then
+ For i = 0 To serratedDT.Rows.Count - 1
+ If gratingMaterial = materialInDT AndAlso gratingType = typeInDT Then
+ serratedCheckBox.Name = "CheckBox_Serrated"
+ serratedCheckBox.Text = "Serrated"
+ serratedCheckBox.Left = 115
+ serratedCheckBox.Top = 115
+ AddHandler serratedCheckBox.CheckedChanged, AddressOf CheckBox_Serrated_CheckedChanged
+ Me.Controls.Add(serratedCheckBox)
+ serratedCheckBoxBol = True
+ Exit For
+ End If
+ Try
+ typeInDT = serratedDT.Rows(i + 1)("TYPE")
+ materialInDT = serratedDT.Rows(i + 1)("MATERIAL")
+ Catch ex As Exception
+ End Try
+ Next
+ Else
+ For i = 0 To serratedDT.Rows.Count - 1
+ If gratingMaterial = materialInDT AndAlso gratingType = typeInDT Then
+ removeCheckBox = False
+ Exit For
+ End If
+ Try
+ typeInDT = serratedDT.Rows(i + 1)("TYPE")
+ materialInDT = serratedDT.Rows(i + 1)("MATERIAL")
+ Catch ex As Exception
+ End Try
+ Next
+ If serratedCheckBoxBol = True AndAlso removeCheckBox = True Then
+ RemoveHandler serratedCheckBox.CheckedChanged, AddressOf CheckBox_Serrated_CheckedChanged
+ Me.Controls.RemoveByKey("CheckBox_Serrated")
+ serratedCheckBoxBol = False
+ gratingSerrated = False
+ End If
+ End If
+
+
+ If lacqueredCheckBoxBol = False AndAlso (gratingMaterial = "Hot dip galvanized steel" OrElse gratingMaterial = "Untreated") Then
+ lacqueredCheckBox.Name = "CheckBox_Lacquered"
+ lacqueredCheckBox.Text = "Lacquered"
+ lacqueredCheckBox.Left = 115
+ lacqueredCheckBox.Top = 135
+ AddHandler lacqueredCheckBox.CheckedChanged, AddressOf CheckBox_Lacquered_CheckedChanged
+ Me.Controls.Add(lacqueredCheckBox)
+ lacqueredCheckBoxBol = True
+ ElseIf lacqueredCheckBoxBol = True AndAlso gratingMaterial <> "Hot dip galvanized steel" AndAlso gratingMaterial <> "Untreated" Then
+ RemoveHandler lacqueredCheckBox.CheckedChanged, AddressOf CheckBox_Lacquered_CheckedChanged
+ Me.Controls.RemoveByKey("CheckBox_Lacquered")
+ lacqueredCheckBoxBol = False
+ gratingLacquered = False
+ End If
+
+ ' Untreated finns för alla som är varmförzinkade enligt Jakob Teams
+ Update_AvalaibleMeshes()
+ End Sub
+
+ Private Sub CheckBox_Serrated_CheckedChanged(sender As Object, e As EventArgs)
+ If sender.Checked Then
+ gratingSerrated = True
+ Update_AvalaibleMeshes()
+ Else
+ gratingSerrated = False
+ Update_AvalaibleMeshes()
+ End If
+ End Sub
+
+ Private Sub CheckBox_Lacquered_CheckedChanged(sender As Object, e As EventArgs)
+ 'Här hanterar vi om den är lackad eller inte
+ 'påverkar ej övrig kod (förutom kommentar att det är special order)
+ If sender.Checked Then
+ gratingLacquered = True
+
+ Else
+ gratingLacquered = False
+
+ End If
+ End Sub
+
+ Private Sub Update_AvalaibleMeshes()
+ ComboBox_MeshSize.Items.Clear()
+
+ Dim meshesDT As DataTable = dataBase("Meshes")
+ Dim typeColumn As Integer = Get_ColumnIndex("TYPE", meshesDT)
+ Dim materialColumn As Integer = Get_ColumnIndex("MATERIAL", meshesDT)
+ Dim serratedColumn As Integer = Get_ColumnIndex("SERRATED", meshesDT)
+
+ Dim typeInDT As String = meshesDT.Rows(0)(typeColumn)
+ Dim materialInDT As String = meshesDT.Rows(0)(materialColumn)
+ Dim serratedInDT As Boolean = CBool(meshesDT.Rows(0)(serratedColumn))
+ For i = 0 To meshesDT.Rows.Count - 1
+ If gratingSerrated = serratedInDT AndAlso gratingMaterial = materialInDT AndAlso gratingType = typeInDT Then
+ Dim item As String
+ item = meshesDT.Rows(i)("LB-SPACING") & "x" & meshesDT.Rows(i)("CB-SPACING") & " (" & meshesDT.Rows(i)("NAME") & ")"
+
+ Dim addItem As Boolean = True
+ For j = 0 To ComboBox_MeshSize.Items.Count - 1
+ If item = ComboBox_MeshSize.Items(j) Then
+ addItem = False
+ Exit For
+ End If
+ Next
+ If addItem = True Then
+ ComboBox_MeshSize.Items.Add(item)
+ End If
+ End If
+ Try
+ typeInDT = meshesDT.Rows(i + 1)(typeColumn)
+ materialInDT = meshesDT.Rows(i + 1)(materialColumn)
+ serratedInDT = meshesDT.Rows(i + 1)(serratedColumn)
+ Catch ex As Exception
+ End Try
+ Next
+
+ If ComboBox_MeshSize.Items.Count = 0 Then
+ ComboBox_MeshSize.Items.Add("")
+ End If
+ End Sub
+
+ Public Shared Sub MeshChanged(sender As Object, e As EventArgs)
+ ComboBox_Height.Enabled = True
+ ComboBox_Height.Items.Clear()
+ gratingMesh = ComboBox_MeshSize.Text
+ loadBarSpacing = CInt(gratingMesh.Split("x")(0))
+ crossBarSpacing = CInt(gratingMesh.Split("x")(1).Split(" ")(0))
+
+ ' Add heights
+ If loadBarSpacing = 12 And crossBarSpacing = 100 Then
+ ComboBox_Height.Items.Add("20")
+ ComboBox_Height.Items.Add("25")
+ End If
+ End Sub
+
+ Public Shared Sub HeightChanged(sender As Object, e As EventArgs)
+ ComboBox_Thickness.Enabled = True
+ ComboBox_Thickness.Items.Clear()
+ gratingHeight = CInt(ComboBox_Height.Text)
+
+ ' Add thicknesses
+ If gratingHeight = 20 Then
+ ComboBox_Thickness.Items.Add("2")
+ ComboBox_Thickness.Items.Add("3")
+ End If
+ End Sub
+
+ Public Shared Sub ThicknessChanged(sender As Object, e As EventArgs)
+ ComboBox_Width.Enabled = True
+ ComboBox_Width.Items.Clear()
+ ComboBox_Length.Enabled = True
+ ComboBox_Length.Items.Clear()
+ loadBarThickness = CInt(ComboBox_Thickness.Text)
+
+ ' Add Widths
+ ComboBox_Width.Items.Add("300")
+ ComboBox_Width.Items.Add("500")
+ ComboBox_Width.Items.Add("1000")
+ ComboBox_Width.Text = ComboBox_Width.Items(0)
+
+ ' Add Length
+ ComboBox_Length.Items.Add("500")
+ ComboBox_Length.Items.Add("1000")
+ ComboBox_Length.Text = ComboBox_Length.Items(0)
+ End Sub
+
+ Public Shared Sub WholeMeshWidthsChanged(sender As Object, e As EventArgs)
+ If CheckBox_WholeMeshWidths.Checked Then
+ ComboBox_Width.DropDownStyle = ComboBoxStyle.DropDownList
+ Else
+ ComboBox_Width.DropDownStyle = ComboBoxStyle.DropDown
+ End If
+ End Sub
+
+ Public Shared Sub WidthChanged(sender As Object, e As EventArgs)
+
+ If ComboBox_Width.Text <> "" Then
+ If CDec(ComboBox_Width.Text) > 0 Then
+ gratingMaxW = CDec(ComboBox_Width.Text)
+ Update_GratingPoints()
+ End If
+ End If
+
+ 'If stocked length options exist
+ If gratingMaxW = 500 Then
+ Dim stockedCheckBox As New CheckBox
+ stockedCheckBox.Name = "CheckBox_Stocked"
+ stockedCheckBox.Text = "Only stocked lengths"
+ stockedCheckBox.Left = 94
+ stockedCheckBox.Top = 386
+ stockedCheckBox.Checked = True
+ Me.Controls.Add(stockedCheckBox)
+ End If
+ End Sub
+
+ Public Shared Sub LengthChanged(sender As Object, e As EventArgs)
+ If ComboBox_Length.Text <> "" Then
+ If CDec(ComboBox_Length.Text) > 0 Then
+ gratingMaxL = CDec(ComboBox_Length.Text)
+ Update_GratingPoints()
+ End If
+ End If
+ End Sub
+
+
+End Class
+
+
diff --git a/Wardrobe/GUI_Settings.vb b/Wardrobe/GUI_Settings.vb
new file mode 100644
index 0000000..35c43b8
--- /dev/null
+++ b/Wardrobe/GUI_Settings.vb
@@ -0,0 +1,9 @@
+Imports XCCLibrary
+Imports SldWorks
+Public Class GUI_Settings
+
+ ' --- Settings button clicked ---
+ Public Shared Sub ButtonClicked(sender As Object, e As EventArgs)
+ adminClass.updateDatabase()
+ End Sub
+End Class
diff --git a/Wardrobe/Program.vb b/Wardrobe/SW_Drawing_Gratings.vb
similarity index 69%
rename from Wardrobe/Program.vb
rename to Wardrobe/SW_Drawing_Gratings.vb
index 41eb648..b45fd6f 100644
--- a/Wardrobe/Program.vb
+++ b/Wardrobe/SW_Drawing_Gratings.vb
@@ -1,45 +1,11 @@
Imports XCCLibrary
Imports SldWorks
-Public Class Program
+Public Class SW_Drawing_Gratings
+ Public Shared Sub CreateDrawing()
+ Dim pointTable As New DataTable
+ pointTable = GUI_Gratings_Data.Create_PointTable()
- Public Shared Sub Load_XCC(filesFolder As String, HLCtFolder As String)
- adminClass.loadSettings(filesFolder, HLCtFolder, "SolidWorks")
- End Sub
-
- Public Shared Sub Update_KB()
- adminClass.updateDatabase()
- End Sub
-
- Public Shared Sub Build_Grating(impTable As DataTable)
- XCCBaseClass.newDesign()
- ExternalClass.PopulateTamplateXMLGroup()
-
- Dim inst_ As Integer = 0
- Dim parentID As Integer = 0
- Dim gratingParameters As DataRow = impTable.Rows(0)
- inst_ = ExternalClass.instantiate_parts(parentID, gratingParameters("TYPE"), "") ' Ange pressure welded eller type A, Serrated?
- ExternalClass.modify_parameter_value("DP_GRATING_WIDTH", inst_, gratingParameters("WIDTH"))
- ExternalClass.modify_parameter_value("DP_GRATING_LENGTH", inst_, gratingParameters("LENGTH"))
- ExternalClass.modify_parameter_value("DP_LOADBAR_THICKNESS", inst_, gratingParameters("LOADBAR_THICKNESS"))
- ExternalClass.modify_parameter_value("DP_LOADBAR_HEIGHT", inst_, gratingParameters("LOADBAR_HEIGHT"))
- ExternalClass.modify_parameter_value("DP_LOADBAR_SPACING", inst_, gratingParameters("LOADBAR_SPACING"))
- ExternalClass.modify_parameter_value("DP_CROSSBAR_SPACING", inst_, gratingParameters("CROSSBAR_SPACING"))
-
- If gratingParameters("TYPE") = "pressure_welded" Then
- ExternalClass.modify_parameter_value("DP_CROSSBAR_DIAMETER", inst_, gratingParameters("CROSSBAR_DIAMETER"))
- Else
- ExternalClass.modify_parameter_value("DP_CROSSBAR_THICKNESS", inst_, gratingParameters("CROSSBAR_THICKNESS"))
- ExternalClass.modify_parameter_value("DP_CROSSBAR_HEIGHT", inst_, gratingParameters("CROSSBAR_HEIGHT"))
- End If
-
- importClass.copyGroupsByDataSet(ExternalClass.groupds_new)
- Dim grNr = groupClass.NewGroupID
- Dim designTable = designModel.selectDesign("*")
- Dim designName = designTable.rows(0)("designName")
- groupClass.InstantiateGroup(designName, grNr, "START")
- End Sub
-
- Public Shared Sub Export_SW(pointTable As DataTable, gratingHeight As Decimal)
+ Dim gratingHeight As Decimal = 0.025 ' Behövs variabel
Dim swApp As SldWorks.SldWorks
swApp = CType(System.Runtime.InteropServices.Marshal.GetActiveObject("SldWorks.Application"), SldWorks.SldWorks)
Dim Model As ModelDoc2
@@ -108,10 +74,9 @@ Public Class Program
Model.ClearSelection2(True)
Create_Drawing(iPart)
-
End Sub
- Public Shared Sub Create_Drawing(iModel As SldWorks.IModelDoc2)
+ Private Shared Sub Create_Drawing(iModel As SldWorks.IModelDoc2)
Dim swApp As SldWorks.SldWorks
swApp = CType(System.Runtime.InteropServices.Marshal.GetActiveObject("SldWorks.Application"), SldWorks.SldWorks)
diff --git a/Wardrobe/SW_HLCt_Gratings.vb b/Wardrobe/SW_HLCt_Gratings.vb
new file mode 100644
index 0000000..11e6ffa
--- /dev/null
+++ b/Wardrobe/SW_HLCt_Gratings.vb
@@ -0,0 +1,36 @@
+Imports XCCLibrary
+Imports SldWorks
+Public Class SW_HLCt_Gratings
+ Public Shared Sub BuildGrating()
+ Dim exportTable As DataTable
+ exportTable = GUI_Gratings_Data.Create_ExportTable()
+
+ XCCBaseClass.newDesign()
+ ExternalClass.PopulateTamplateXMLGroup()
+
+ Dim inst_ As Integer
+ Dim parentID As Integer = 0
+ Dim gratingParameters As DataRow = exportTable.Rows(0)
+ inst_ = ExternalClass.instantiate_parts(parentID, gratingParameters("TYPE"), "") ' Ange pressure_welded eller type A, Serrated?
+ ExternalClass.modify_parameter_value("DP_GRATING_WIDTH", inst_, gratingParameters("WIDTH"))
+ ExternalClass.modify_parameter_value("DP_GRATING_LENGTH", inst_, gratingParameters("LENGTH"))
+ ExternalClass.modify_parameter_value("DP_LOADBAR_THICKNESS", inst_, gratingParameters("LOADBAR_THICKNESS"))
+ ExternalClass.modify_parameter_value("DP_LOADBAR_HEIGHT", inst_, gratingParameters("LOADBAR_HEIGHT"))
+ ExternalClass.modify_parameter_value("DP_LOADBAR_SPACING", inst_, gratingParameters("LOADBAR_SPACING"))
+ ExternalClass.modify_parameter_value("DP_CROSSBAR_SPACING", inst_, gratingParameters("CROSSBAR_SPACING"))
+
+ If gratingParameters("TYPE") = "pressure_welded" Then
+ ExternalClass.modify_parameter_value("DP_CROSSBAR_DIAMETER", inst_, gratingParameters("CROSSBAR_DIAMETER"))
+ Else
+ ExternalClass.modify_parameter_value("DP_CROSSBAR_THICKNESS", inst_, gratingParameters("CROSSBAR_THICKNESS"))
+ ExternalClass.modify_parameter_value("DP_CROSSBAR_HEIGHT", inst_, gratingParameters("CROSSBAR_HEIGHT"))
+ End If
+
+ importClass.copyGroupsByDataSet(ExternalClass.groupds_new)
+ Dim grNr = groupClass.NewGroupID
+ Dim designTable = designModel.selectDesign("*")
+ Dim designName = designTable.rows(0)("designName")
+ groupClass.InstantiateGroup(designName, grNr, "START")
+ End Sub
+
+End Class
diff --git a/Wardrobe/Wardrobe.vbproj b/Wardrobe/Wardrobe.vbproj
index 77f04be..adef9c9 100644
--- a/Wardrobe/Wardrobe.vbproj
+++ b/Wardrobe/Wardrobe.vbproj
@@ -74,7 +74,10 @@
-
+
+
+
+
Form
@@ -98,6 +101,8 @@
Settings.settings
True
+
+