diff --git a/Wardrobe/GUI/Individual.Designer.vb b/Wardrobe/GUI/Individual.Designer.vb
index e045128..33cd770 100644
--- a/Wardrobe/GUI/Individual.Designer.vb
+++ b/Wardrobe/GUI/Individual.Designer.vb
@@ -59,6 +59,11 @@ Partial Class Individual
Me.Panel_Grating = New System.Windows.Forms.Panel()
Me.Label2 = New System.Windows.Forms.Label()
Me.Label1 = New System.Windows.Forms.Label()
+ Me.CheckBox_Instructions = New System.Windows.Forms.CheckBox()
+ Me.CheckBox_Frames = New System.Windows.Forms.CheckBox()
+ Me.CheckBox_GratingDrawing = New System.Windows.Forms.CheckBox()
+ Me.CheckBox_FrameDrawing = New System.Windows.Forms.CheckBox()
+ Me.CheckBox_3DModel = New System.Windows.Forms.CheckBox()
Me.Panel_Data.SuspendLayout()
Me.Panel_Recesses.SuspendLayout()
Me.Panel_Grating.SuspendLayout()
@@ -67,6 +72,11 @@ Partial Class Individual
'Panel_Data
'
Me.Panel_Data.BackColor = System.Drawing.SystemColors.GradientActiveCaption
+ Me.Panel_Data.Controls.Add(Me.CheckBox_3DModel)
+ Me.Panel_Data.Controls.Add(Me.CheckBox_FrameDrawing)
+ Me.Panel_Data.Controls.Add(Me.CheckBox_GratingDrawing)
+ Me.Panel_Data.Controls.Add(Me.CheckBox_Frames)
+ Me.Panel_Data.Controls.Add(Me.CheckBox_Instructions)
Me.Panel_Data.Controls.Add(Me.Button_Back)
Me.Panel_Data.Controls.Add(Me.TextBox_Width)
Me.Panel_Data.Controls.Add(Me.ComboBox_Width)
@@ -94,42 +104,45 @@ Partial Class Individual
Me.Panel_Data.Location = New System.Drawing.Point(0, 0)
Me.Panel_Data.Margin = New System.Windows.Forms.Padding(0)
Me.Panel_Data.Name = "Panel_Data"
- Me.Panel_Data.Size = New System.Drawing.Size(315, 772)
+ Me.Panel_Data.Size = New System.Drawing.Size(420, 950)
Me.Panel_Data.TabIndex = 0
'
'Button_Back
'
- Me.Button_Back.Location = New System.Drawing.Point(9, 10)
- Me.Button_Back.Margin = New System.Windows.Forms.Padding(2)
+ Me.Button_Back.Location = New System.Drawing.Point(12, 12)
+ Me.Button_Back.Margin = New System.Windows.Forms.Padding(3, 2, 3, 2)
Me.Button_Back.Name = "Button_Back"
- Me.Button_Back.Size = New System.Drawing.Size(42, 33)
+ Me.Button_Back.Size = New System.Drawing.Size(56, 41)
Me.Button_Back.TabIndex = 27
Me.Button_Back.Text = "Back"
Me.Button_Back.UseVisualStyleBackColor = True
'
'TextBox_Width
'
- Me.TextBox_Width.Location = New System.Drawing.Point(110, 465)
+ Me.TextBox_Width.Location = New System.Drawing.Point(147, 572)
+ Me.TextBox_Width.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.TextBox_Width.Name = "TextBox_Width"
- Me.TextBox_Width.Size = New System.Drawing.Size(155, 20)
+ Me.TextBox_Width.Size = New System.Drawing.Size(205, 22)
Me.TextBox_Width.TabIndex = 26
'
'ComboBox_Width
'
Me.ComboBox_Width.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.ComboBox_Width.FormattingEnabled = True
- Me.ComboBox_Width.Location = New System.Drawing.Point(110, 465)
+ Me.ComboBox_Width.Location = New System.Drawing.Point(147, 572)
+ Me.ComboBox_Width.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.ComboBox_Width.Name = "ComboBox_Width"
- Me.ComboBox_Width.Size = New System.Drawing.Size(155, 21)
+ Me.ComboBox_Width.Size = New System.Drawing.Size(205, 24)
Me.ComboBox_Width.TabIndex = 25
'
'Label7
'
Me.Label7.AutoSize = True
Me.Label7.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
- Me.Label7.Location = New System.Drawing.Point(269, 402)
+ Me.Label7.Location = New System.Drawing.Point(359, 495)
+ Me.Label7.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Label7.Name = "Label7"
- Me.Label7.Size = New System.Drawing.Size(23, 13)
+ Me.Label7.Size = New System.Drawing.Size(30, 17)
Me.Label7.TabIndex = 24
Me.Label7.Text = "mm"
'
@@ -137,9 +150,10 @@ Partial Class Individual
'
Me.Label6.AutoSize = True
Me.Label6.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
- Me.Label6.Location = New System.Drawing.Point(269, 468)
+ Me.Label6.Location = New System.Drawing.Point(359, 576)
+ Me.Label6.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Label6.Name = "Label6"
- Me.Label6.Size = New System.Drawing.Size(23, 13)
+ Me.Label6.Size = New System.Drawing.Size(30, 17)
Me.Label6.TabIndex = 23
Me.Label6.Text = "mm"
'
@@ -147,9 +161,10 @@ Partial Class Individual
'
Me.Label5.AutoSize = True
Me.Label5.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
- Me.Label5.Location = New System.Drawing.Point(269, 328)
+ Me.Label5.Location = New System.Drawing.Point(359, 404)
+ Me.Label5.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Label5.Name = "Label5"
- Me.Label5.Size = New System.Drawing.Size(23, 13)
+ Me.Label5.Size = New System.Drawing.Size(30, 17)
Me.Label5.TabIndex = 22
Me.Label5.Text = "mm"
'
@@ -157,9 +172,10 @@ Partial Class Individual
'
Me.Label4.AutoSize = True
Me.Label4.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
- Me.Label4.Location = New System.Drawing.Point(269, 281)
+ Me.Label4.Location = New System.Drawing.Point(359, 346)
+ Me.Label4.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Label4.Name = "Label4"
- Me.Label4.Size = New System.Drawing.Size(23, 13)
+ Me.Label4.Size = New System.Drawing.Size(30, 17)
Me.Label4.TabIndex = 21
Me.Label4.Text = "mm"
'
@@ -167,18 +183,20 @@ Partial Class Individual
'
Me.Label3.AutoSize = True
Me.Label3.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
- Me.Label3.Location = New System.Drawing.Point(269, 237)
+ Me.Label3.Location = New System.Drawing.Point(359, 292)
+ Me.Label3.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Label3.Name = "Label3"
- Me.Label3.Size = New System.Drawing.Size(23, 13)
+ Me.Label3.Size = New System.Drawing.Size(30, 17)
Me.Label3.TabIndex = 20
Me.Label3.Text = "mm"
'
'Button_Export_GUI
'
Me.Button_Export_GUI.BackColor = System.Drawing.Color.Transparent
- Me.Button_Export_GUI.Location = New System.Drawing.Point(49, 704)
+ Me.Button_Export_GUI.Location = New System.Drawing.Point(65, 866)
+ Me.Button_Export_GUI.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.Button_Export_GUI.Name = "Button_Export_GUI"
- Me.Button_Export_GUI.Size = New System.Drawing.Size(75, 23)
+ Me.Button_Export_GUI.Size = New System.Drawing.Size(100, 28)
Me.Button_Export_GUI.TabIndex = 18
Me.Button_Export_GUI.Text = "Export GUI"
Me.Button_Export_GUI.UseVisualStyleBackColor = False
@@ -186,9 +204,10 @@ Partial Class Individual
'Button_Export_SW
'
Me.Button_Export_SW.BackColor = System.Drawing.Color.Transparent
- Me.Button_Export_SW.Location = New System.Drawing.Point(176, 704)
+ Me.Button_Export_SW.Location = New System.Drawing.Point(235, 866)
+ Me.Button_Export_SW.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.Button_Export_SW.Name = "Button_Export_SW"
- Me.Button_Export_SW.Size = New System.Drawing.Size(75, 23)
+ Me.Button_Export_SW.Size = New System.Drawing.Size(100, 28)
Me.Button_Export_SW.TabIndex = 17
Me.Button_Export_SW.Text = "Export SW"
Me.Button_Export_SW.UseVisualStyleBackColor = False
@@ -197,9 +216,10 @@ Partial Class Individual
'
Me.Label_Heading.AutoSize = True
Me.Label_Heading.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
- Me.Label_Heading.Location = New System.Drawing.Point(70, 37)
+ Me.Label_Heading.Location = New System.Drawing.Point(93, 46)
+ Me.Label_Heading.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Label_Heading.Name = "Label_Heading"
- Me.Label_Heading.Size = New System.Drawing.Size(166, 20)
+ Me.Label_Heading.Size = New System.Drawing.Size(198, 25)
Me.Label_Heading.TabIndex = 15
Me.Label_Heading.Text = "Grating Parameters"
'
@@ -207,9 +227,10 @@ Partial Class Individual
'
Me.Label_Material.AutoSize = True
Me.Label_Material.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
- Me.Label_Material.Location = New System.Drawing.Point(46, 143)
+ Me.Label_Material.Location = New System.Drawing.Point(61, 176)
+ Me.Label_Material.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Label_Material.Name = "Label_Material"
- Me.Label_Material.Size = New System.Drawing.Size(58, 17)
+ Me.Label_Material.Size = New System.Drawing.Size(69, 20)
Me.Label_Material.TabIndex = 14
Me.Label_Material.Text = "Material"
'
@@ -217,9 +238,10 @@ Partial Class Individual
'
Me.Label_Mesh.AutoSize = True
Me.Label_Mesh.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
- Me.Label_Mesh.Location = New System.Drawing.Point(31, 233)
+ Me.Label_Mesh.Location = New System.Drawing.Point(41, 287)
+ Me.Label_Mesh.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Label_Mesh.Name = "Label_Mesh"
- Me.Label_Mesh.Size = New System.Drawing.Size(73, 17)
+ Me.Label_Mesh.Size = New System.Drawing.Size(88, 20)
Me.Label_Mesh.TabIndex = 13
Me.Label_Mesh.Text = "Mesh Size"
'
@@ -227,9 +249,10 @@ Partial Class Individual
'
Me.Label_Height.AutoSize = True
Me.Label_Height.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
- Me.Label_Height.Location = New System.Drawing.Point(55, 279)
+ Me.Label_Height.Location = New System.Drawing.Point(73, 343)
+ Me.Label_Height.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Label_Height.Name = "Label_Height"
- Me.Label_Height.Size = New System.Drawing.Size(49, 17)
+ Me.Label_Height.Size = New System.Drawing.Size(58, 20)
Me.Label_Height.TabIndex = 12
Me.Label_Height.Text = "Height"
'
@@ -237,9 +260,10 @@ Partial Class Individual
'
Me.Label_Thickness.AutoSize = True
Me.Label_Thickness.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
- Me.Label_Thickness.Location = New System.Drawing.Point(32, 324)
+ Me.Label_Thickness.Location = New System.Drawing.Point(43, 399)
+ Me.Label_Thickness.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Label_Thickness.Name = "Label_Thickness"
- Me.Label_Thickness.Size = New System.Drawing.Size(72, 17)
+ Me.Label_Thickness.Size = New System.Drawing.Size(85, 20)
Me.Label_Thickness.TabIndex = 11
Me.Label_Thickness.Text = "Thickness"
'
@@ -247,9 +271,10 @@ Partial Class Individual
'
Me.Label_Width.AutoSize = True
Me.Label_Width.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
- Me.Label_Width.Location = New System.Drawing.Point(60, 465)
+ Me.Label_Width.Location = New System.Drawing.Point(80, 572)
+ Me.Label_Width.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Label_Width.Name = "Label_Width"
- Me.Label_Width.Size = New System.Drawing.Size(44, 17)
+ Me.Label_Width.Size = New System.Drawing.Size(52, 20)
Me.Label_Width.TabIndex = 10
Me.Label_Width.Text = "Width"
'
@@ -257,9 +282,10 @@ Partial Class Individual
'
Me.Label_Length.AutoSize = True
Me.Label_Length.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
- Me.Label_Length.Location = New System.Drawing.Point(52, 398)
+ Me.Label_Length.Location = New System.Drawing.Point(69, 490)
+ Me.Label_Length.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Label_Length.Name = "Label_Length"
- Me.Label_Length.Size = New System.Drawing.Size(52, 17)
+ Me.Label_Length.Size = New System.Drawing.Size(60, 20)
Me.Label_Length.TabIndex = 9
Me.Label_Length.Text = "Length"
'
@@ -267,62 +293,69 @@ Partial Class Individual
'
Me.Label_Type.AutoSize = True
Me.Label_Type.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
- Me.Label_Type.Location = New System.Drawing.Point(64, 101)
+ Me.Label_Type.Location = New System.Drawing.Point(85, 124)
+ Me.Label_Type.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Label_Type.Name = "Label_Type"
- Me.Label_Type.Size = New System.Drawing.Size(40, 16)
+ Me.Label_Type.Size = New System.Drawing.Size(45, 20)
Me.Label_Type.TabIndex = 8
Me.Label_Type.Text = "Type"
'
'TextBox_Length
'
- Me.TextBox_Length.Location = New System.Drawing.Point(110, 398)
+ Me.TextBox_Length.Location = New System.Drawing.Point(147, 490)
+ Me.TextBox_Length.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.TextBox_Length.Name = "TextBox_Length"
- Me.TextBox_Length.Size = New System.Drawing.Size(155, 20)
+ Me.TextBox_Length.Size = New System.Drawing.Size(205, 22)
Me.TextBox_Length.TabIndex = 7
'
'ComboBox_Mesh
'
Me.ComboBox_Mesh.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.ComboBox_Mesh.FormattingEnabled = True
- Me.ComboBox_Mesh.Location = New System.Drawing.Point(110, 233)
+ Me.ComboBox_Mesh.Location = New System.Drawing.Point(147, 287)
+ Me.ComboBox_Mesh.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.ComboBox_Mesh.Name = "ComboBox_Mesh"
- Me.ComboBox_Mesh.Size = New System.Drawing.Size(155, 21)
+ Me.ComboBox_Mesh.Size = New System.Drawing.Size(205, 24)
Me.ComboBox_Mesh.TabIndex = 6
'
'ComboBox_Thickness
'
Me.ComboBox_Thickness.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.ComboBox_Thickness.FormattingEnabled = True
- Me.ComboBox_Thickness.Location = New System.Drawing.Point(110, 323)
+ Me.ComboBox_Thickness.Location = New System.Drawing.Point(147, 398)
+ Me.ComboBox_Thickness.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.ComboBox_Thickness.Name = "ComboBox_Thickness"
- Me.ComboBox_Thickness.Size = New System.Drawing.Size(155, 21)
+ Me.ComboBox_Thickness.Size = New System.Drawing.Size(205, 24)
Me.ComboBox_Thickness.TabIndex = 3
'
'ComboBox_Height
'
Me.ComboBox_Height.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.ComboBox_Height.FormattingEnabled = True
- Me.ComboBox_Height.Location = New System.Drawing.Point(110, 278)
+ Me.ComboBox_Height.Location = New System.Drawing.Point(147, 342)
+ Me.ComboBox_Height.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.ComboBox_Height.Name = "ComboBox_Height"
- Me.ComboBox_Height.Size = New System.Drawing.Size(155, 21)
+ Me.ComboBox_Height.Size = New System.Drawing.Size(205, 24)
Me.ComboBox_Height.TabIndex = 2
'
'ComboBox_Material
'
Me.ComboBox_Material.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.ComboBox_Material.FormattingEnabled = True
- Me.ComboBox_Material.Location = New System.Drawing.Point(110, 142)
+ Me.ComboBox_Material.Location = New System.Drawing.Point(147, 175)
+ Me.ComboBox_Material.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.ComboBox_Material.Name = "ComboBox_Material"
- Me.ComboBox_Material.Size = New System.Drawing.Size(155, 21)
+ Me.ComboBox_Material.Size = New System.Drawing.Size(205, 24)
Me.ComboBox_Material.TabIndex = 1
'
'ComboBox_Type
'
Me.ComboBox_Type.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.ComboBox_Type.FormattingEnabled = True
- Me.ComboBox_Type.Location = New System.Drawing.Point(110, 101)
+ Me.ComboBox_Type.Location = New System.Drawing.Point(147, 124)
+ Me.ComboBox_Type.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.ComboBox_Type.Name = "ComboBox_Type"
- Me.ComboBox_Type.Size = New System.Drawing.Size(155, 21)
+ Me.ComboBox_Type.Size = New System.Drawing.Size(205, 24)
Me.ComboBox_Type.TabIndex = 0
'
'Panel_Recesses
@@ -336,8 +369,9 @@ Partial Class Individual
Me.Panel_Recesses.Controls.Add(Me.Button_Angle_Corner)
Me.Panel_Recesses.Controls.Add(Me.Label_Recesses)
Me.Panel_Recesses.Location = New System.Drawing.Point(0, 0)
+ Me.Panel_Recesses.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.Panel_Recesses.Name = "Panel_Recesses"
- Me.Panel_Recesses.Size = New System.Drawing.Size(1395, 120)
+ Me.Panel_Recesses.Size = New System.Drawing.Size(1860, 148)
Me.Panel_Recesses.TabIndex = 1
'
'Button_Radius
@@ -348,9 +382,10 @@ Partial Class Individual
Me.Button_Radius.Enabled = False
Me.Button_Radius.FlatAppearance.BorderColor = System.Drawing.Color.Black
Me.Button_Radius.FlatStyle = System.Windows.Forms.FlatStyle.Flat
- Me.Button_Radius.Location = New System.Drawing.Point(1006, 25)
+ Me.Button_Radius.Location = New System.Drawing.Point(1341, 31)
+ Me.Button_Radius.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.Button_Radius.Name = "Button_Radius"
- Me.Button_Radius.Size = New System.Drawing.Size(70, 70)
+ Me.Button_Radius.Size = New System.Drawing.Size(93, 86)
Me.Button_Radius.TabIndex = 22
Me.Button_Radius.UseVisualStyleBackColor = False
'
@@ -361,9 +396,10 @@ Partial Class Individual
Me.Button_Square_Middle.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.Button_Square_Middle.FlatAppearance.BorderColor = System.Drawing.Color.Black
Me.Button_Square_Middle.FlatStyle = System.Windows.Forms.FlatStyle.Flat
- Me.Button_Square_Middle.Location = New System.Drawing.Point(901, 25)
+ Me.Button_Square_Middle.Location = New System.Drawing.Point(1201, 31)
+ Me.Button_Square_Middle.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.Button_Square_Middle.Name = "Button_Square_Middle"
- Me.Button_Square_Middle.Size = New System.Drawing.Size(70, 70)
+ Me.Button_Square_Middle.Size = New System.Drawing.Size(93, 86)
Me.Button_Square_Middle.TabIndex = 21
Me.Button_Square_Middle.UseVisualStyleBackColor = False
'
@@ -374,9 +410,10 @@ Partial Class Individual
Me.Button_Square_Side.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.Button_Square_Side.FlatAppearance.BorderColor = System.Drawing.Color.Black
Me.Button_Square_Side.FlatStyle = System.Windows.Forms.FlatStyle.Flat
- Me.Button_Square_Side.Location = New System.Drawing.Point(796, 25)
+ Me.Button_Square_Side.Location = New System.Drawing.Point(1061, 31)
+ Me.Button_Square_Side.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.Button_Square_Side.Name = "Button_Square_Side"
- Me.Button_Square_Side.Size = New System.Drawing.Size(70, 70)
+ Me.Button_Square_Side.Size = New System.Drawing.Size(93, 86)
Me.Button_Square_Side.TabIndex = 20
Me.Button_Square_Side.UseVisualStyleBackColor = False
'
@@ -387,9 +424,10 @@ Partial Class Individual
Me.Button_Angle_Side.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.Button_Angle_Side.FlatAppearance.BorderColor = System.Drawing.Color.Black
Me.Button_Angle_Side.FlatStyle = System.Windows.Forms.FlatStyle.Flat
- Me.Button_Angle_Side.Location = New System.Drawing.Point(586, 25)
+ Me.Button_Angle_Side.Location = New System.Drawing.Point(781, 31)
+ Me.Button_Angle_Side.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.Button_Angle_Side.Name = "Button_Angle_Side"
- Me.Button_Angle_Side.Size = New System.Drawing.Size(70, 70)
+ Me.Button_Angle_Side.Size = New System.Drawing.Size(93, 86)
Me.Button_Angle_Side.TabIndex = 19
Me.Button_Angle_Side.UseVisualStyleBackColor = False
'
@@ -400,9 +438,10 @@ Partial Class Individual
Me.Button_Square_Corner.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.Button_Square_Corner.FlatAppearance.BorderColor = System.Drawing.Color.Black
Me.Button_Square_Corner.FlatStyle = System.Windows.Forms.FlatStyle.Flat
- Me.Button_Square_Corner.Location = New System.Drawing.Point(691, 25)
+ Me.Button_Square_Corner.Location = New System.Drawing.Point(921, 31)
+ Me.Button_Square_Corner.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.Button_Square_Corner.Name = "Button_Square_Corner"
- Me.Button_Square_Corner.Size = New System.Drawing.Size(70, 70)
+ Me.Button_Square_Corner.Size = New System.Drawing.Size(93, 86)
Me.Button_Square_Corner.TabIndex = 18
Me.Button_Square_Corner.UseVisualStyleBackColor = False
'
@@ -413,9 +452,10 @@ Partial Class Individual
Me.Button_Angle_Corner.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.Button_Angle_Corner.FlatAppearance.BorderColor = System.Drawing.Color.Black
Me.Button_Angle_Corner.FlatStyle = System.Windows.Forms.FlatStyle.Flat
- Me.Button_Angle_Corner.Location = New System.Drawing.Point(481, 25)
+ Me.Button_Angle_Corner.Location = New System.Drawing.Point(641, 31)
+ Me.Button_Angle_Corner.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.Button_Angle_Corner.Name = "Button_Angle_Corner"
- Me.Button_Angle_Corner.Size = New System.Drawing.Size(70, 70)
+ Me.Button_Angle_Corner.Size = New System.Drawing.Size(93, 86)
Me.Button_Angle_Corner.TabIndex = 17
Me.Button_Angle_Corner.UseVisualStyleBackColor = False
'
@@ -423,9 +463,10 @@ Partial Class Individual
'
Me.Label_Recesses.AutoSize = True
Me.Label_Recesses.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
- Me.Label_Recesses.Location = New System.Drawing.Point(329, 36)
+ Me.Label_Recesses.Location = New System.Drawing.Point(439, 44)
+ Me.Label_Recesses.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Label_Recesses.Name = "Label_Recesses"
- Me.Label_Recesses.Size = New System.Drawing.Size(88, 20)
+ Me.Label_Recesses.Size = New System.Drawing.Size(106, 25)
Me.Label_Recesses.TabIndex = 16
Me.Label_Recesses.Text = "Recesses"
'
@@ -434,18 +475,20 @@ Partial Class Individual
Me.Panel_Grating.BackColor = System.Drawing.Color.White
Me.Panel_Grating.Controls.Add(Me.Label2)
Me.Panel_Grating.Controls.Add(Me.Label1)
- Me.Panel_Grating.Location = New System.Drawing.Point(315, 120)
+ Me.Panel_Grating.Location = New System.Drawing.Point(420, 148)
+ Me.Panel_Grating.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.Panel_Grating.Name = "Panel_Grating"
- Me.Panel_Grating.Size = New System.Drawing.Size(1080, 652)
+ Me.Panel_Grating.Size = New System.Drawing.Size(1440, 802)
Me.Panel_Grating.TabIndex = 2
'
'Label2
'
Me.Label2.AutoSize = True
Me.Label2.Font = New System.Drawing.Font("Microsoft Sans Serif", 7.8!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
- Me.Label2.Location = New System.Drawing.Point(64, 625)
+ Me.Label2.Location = New System.Drawing.Point(85, 769)
+ Me.Label2.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Label2.Name = "Label2"
- Me.Label2.Size = New System.Drawing.Size(13, 13)
+ Me.Label2.Size = New System.Drawing.Size(16, 17)
Me.Label2.TabIndex = 1
Me.Label2.Text = "L"
'
@@ -453,22 +496,75 @@ Partial Class Individual
'
Me.Label1.AutoSize = True
Me.Label1.Font = New System.Drawing.Font("Microsoft Sans Serif", 7.8!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
- Me.Label1.Location = New System.Drawing.Point(13, 575)
+ Me.Label1.Location = New System.Drawing.Point(17, 708)
+ Me.Label1.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Label1.Name = "Label1"
- Me.Label1.Size = New System.Drawing.Size(18, 13)
+ Me.Label1.Size = New System.Drawing.Size(21, 17)
Me.Label1.TabIndex = 0
Me.Label1.Text = "W"
'
+ 'CheckBox_Instructions
+ '
+ Me.CheckBox_Instructions.AutoSize = True
+ Me.CheckBox_Instructions.Location = New System.Drawing.Point(235, 835)
+ Me.CheckBox_Instructions.Name = "CheckBox_Instructions"
+ Me.CheckBox_Instructions.Size = New System.Drawing.Size(166, 21)
+ Me.CheckBox_Instructions.TabIndex = 28
+ Me.CheckBox_Instructions.Text = "Assembly Instructions"
+ Me.CheckBox_Instructions.UseVisualStyleBackColor = True
+ '
+ 'CheckBox_Frames
+ '
+ Me.CheckBox_Frames.AutoSize = True
+ Me.CheckBox_Frames.Location = New System.Drawing.Point(235, 781)
+ Me.CheckBox_Frames.Name = "CheckBox_Frames"
+ Me.CheckBox_Frames.Size = New System.Drawing.Size(106, 21)
+ Me.CheckBox_Frames.TabIndex = 29
+ Me.CheckBox_Frames.Text = "Add Frames"
+ Me.CheckBox_Frames.UseVisualStyleBackColor = True
+ '
+ 'CheckBox_GratingDrawing
+ '
+ Me.CheckBox_GratingDrawing.AutoSize = True
+ Me.CheckBox_GratingDrawing.Location = New System.Drawing.Point(235, 754)
+ Me.CheckBox_GratingDrawing.Name = "CheckBox_GratingDrawing"
+ Me.CheckBox_GratingDrawing.Size = New System.Drawing.Size(132, 21)
+ Me.CheckBox_GratingDrawing.TabIndex = 30
+ Me.CheckBox_GratingDrawing.Text = "Grating Drawing"
+ Me.CheckBox_GratingDrawing.UseVisualStyleBackColor = True
+ '
+ 'CheckBox_FrameDrawing
+ '
+ Me.CheckBox_FrameDrawing.AutoSize = True
+ Me.CheckBox_FrameDrawing.Enabled = False
+ Me.CheckBox_FrameDrawing.Location = New System.Drawing.Point(235, 808)
+ Me.CheckBox_FrameDrawing.Name = "CheckBox_FrameDrawing"
+ Me.CheckBox_FrameDrawing.Size = New System.Drawing.Size(125, 21)
+ Me.CheckBox_FrameDrawing.TabIndex = 31
+ Me.CheckBox_FrameDrawing.Text = "Frame Drawing"
+ Me.CheckBox_FrameDrawing.UseVisualStyleBackColor = True
+ '
+ 'CheckBox_3DModel
+ '
+ Me.CheckBox_3DModel.AutoSize = True
+ Me.CheckBox_3DModel.Location = New System.Drawing.Point(235, 727)
+ Me.CheckBox_3DModel.Name = "CheckBox_3DModel"
+ Me.CheckBox_3DModel.Size = New System.Drawing.Size(141, 21)
+ Me.CheckBox_3DModel.TabIndex = 32
+ Me.CheckBox_3DModel.Text = "3D Grating Model"
+ Me.CheckBox_3DModel.UseVisualStyleBackColor = True
+ '
'Individual
'
- Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+ Me.AutoScaleDimensions = New System.Drawing.SizeF(8.0!, 16.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.BackColor = System.Drawing.SystemColors.Control
- Me.ClientSize = New System.Drawing.Size(1167, 718)
+ Me.ClientSize = New System.Drawing.Size(1556, 884)
Me.Controls.Add(Me.Panel_Data)
Me.Controls.Add(Me.Panel_Recesses)
Me.Controls.Add(Me.Panel_Grating)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
+ Me.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.Name = "Individual"
Me.Text = "Individual"
Me.Panel_Data.ResumeLayout(False)
@@ -517,4 +613,9 @@ Partial Class Individual
Friend WithEvents ComboBox_Width As ComboBox
Friend WithEvents Button_Back As Button
Friend WithEvents Button_Radius As Button
+ Friend WithEvents CheckBox_FrameDrawing As CheckBox
+ Friend WithEvents CheckBox_GratingDrawing As CheckBox
+ Friend WithEvents CheckBox_Frames As CheckBox
+ Friend WithEvents CheckBox_Instructions As CheckBox
+ Friend WithEvents CheckBox_3DModel As CheckBox
End Class
diff --git a/Wardrobe/GUI/Individual.resx b/Wardrobe/GUI/Individual.resx
index 09c2fb7..49ef412 100644
--- a/Wardrobe/GUI/Individual.resx
+++ b/Wardrobe/GUI/Individual.resx
@@ -120,59 +120,61 @@
- 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
+ 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
@@ -231,251 +233,249 @@
uOqa1j0JBv3QeGSnwtnCmmDQgbjqmtY9CQb90Hhkp8LZwppg0IG46prWPQkG/dB4ZKfC2cKaYNCBuOqa
1j0JBv3QeGSnwtnCmmDQgbjqmtY9CQb90Hhkp8LZwppg0IG46prWPQkG/dB4ZKfC2cKaYNCBuOqa1j0J
Bv3QeGSnwtnCmmDQgbjqmtY9CQb90Hhkp8LZwppg0IG46prWPQkG/dB4ZKfC2cKaYNCBuOqa1j0JBv3Q
- eGSnwtnCmmDQgbjqmtY9CQb90Hhkp8LZwppg0IG46prWPQkG/dB4ZKfC2cKaYNCBuOqa1j0JBv3QeGSn
- wtnCmmDQgbjqmtY9CQb90Hhkp8LZwppg0IG46prWPQkG/dB4ZKfC2cKaYNCBuOqa1j0JBv3QeGSnwtnC
- mmDQgbjqmtY9CQb90Hhkp8LZwppg0IG46prWPQkG/dB4ZOcrnD+3sCbUHw31oQEkfcc/KD9PXcrOeGTn
- K5y/tLAC8OyXqUvZGY/sVDhbWAF4ZtAPjUd2KpwtrAA8M+iHxiM7Fc4WVgCeGfRD45GdCmcLKwDPDPqh
- 8chOhbOFFYBnBv3QeGSnwtnCCsAzg35oPLJT4WxhBeCZQT80HtmpcLawAvDMoB8aj+xUOFtYAXhm0A+N
- R3YqnC2sADwz6IfGIzsVzhZWAJ4Z9EPjkZ0KZwsrAM8M+qHxyE6Fs4UVgGcG/dB4ZKfC2cIKwDODfmg8
- slPhbGEF4JlBPzQe2alwtrAC8MygHxqP7FQ4W1gBeGbQD41HdiqcLawAPDPoh8YjOxXOFlYAnhn0Q+OR
- nQpnCysAzwz6ofHIToWzhRWAZwb90Hhkp8LZwgrAM4N+aDyyU+FsYQXgmUE/NB7Z+QrnTxXQsJ+//AgQ
- Vl0zddCln6YuZWc8AgDvMh4BgHcZjwDAu4xHAOBdxiMA8C7jEQB4l/EIALzLeAQA3mU8AgDvMh4BgHcZ
- jwDAu4xHAOBdxiMA8C7jEQB4l/EIALzLeAQA3mU8AgDvMh4BgHcZjwDAu4xHAOBdxiMA8C7jEQB4l/EI
- ALzLeAQA3mU8AgDvMh4BgHcZjwDAu4xHAOBdxiMA8C7jEQB4l/EIALzLeAQA3mU8AgDvMh4BgHcZjwDA
- u4xHAOBdxiMA8C7jEQB4l/EIALzLeAQA3mU8AgDvMh4BgHcZjwDAu4xHAOBdxiMA8C7jEQB4l/EIALzL
- eAQA3mU8AgDvMh4BgHcZjwDAu4xHAOBdxiMA8C7jEQB4l/EIALzLeAQA3mU8AgDvMh4BgHcZjwDAu4xH
- AOBdxiMA8C7jEQB4l/EIALzLeAQA3mU8AgDvMh4BgHcZjwDAu4xHAOBdxiMA8C7jEQB4l/EIALzLeAQA
- 3mU8AgDvMh4BgHcZjwDAu4xHAOBdxiMA8C7jEQB4l/EIALzLeAQA3mU8AgDvMh4BgHcZjwDAm/z6w/8A
- /5LainB3TgwAAAAASUVORK5CYII=
+ eGSnwtnCmmDQgbjqmtY9CQb90Hhk5yucP7ewJtQfDfWhASR9xz8oP09dys54ZOcrnL+0sALw7JepS9kZ
+ j+xUOFtYAXhm0A+NR3YqnC2sADwz6IfGIzsVzhZWAJ4Z9EPjkZ0KZwsrAM8M+qHxyE6Fs4UVgGcG/dB4
+ ZKfC2cIKwDODfmg8slPhbGEF4JlBPzQe2alwtrAC8MygHxqP7FQ4W1gBeGbQD41HdiqcLawAPDPoh8Yj
+ OxXOFlYAnhn0Q+ORnQpnCysAzwz6ofHIToWzhRWAZwb90Hhkp8LZwgrAM4N+aDyyU+FsYQXgmUE/NB7Z
+ qXC2sALwzKAfGo/sVDhbWAF4ZtAPjUd2KpwtrAA8M+iHxiM7Fc4WVgCeGfRD45GdCmcLKwDPDPqh8chO
+ hbOFFYBnBv3QeGSnwtnCCsAzg35oPLJT4WxhBeCZQT80Htn5CudPFdCwn7/8CBBWXTN10KWfpi5lZzwC
+ AO8yHgGAdxmPAMC7jEcA4F3GIwDwLuMRAHiX8QgAvMt4BADeZTwCAO8yHgGAdxmPAMC7jEcA4F3GIwDw
+ LuMRAHiX8QgAvMt4BADeZTwCAO8yHgGAdxmPAMC7jEcA4F3GIwDwLuMRAHiX8QgAvMt4BADeZTwCAO8y
+ HgGAdxmPAMC7jEcA4F3GIwDwLuMRAHiX8QgAvMt4BADeZTwCAO8yHgGAdxmPAMC7jEcA4F3GIwDwLuMR
+ AHiX8QgAvMt4BADeZTwCAO8yHgGAdxmPAMC7jEcA4F3GIwDwLuMRAHiX8QgAvMt4BADeZTwCAO8yHgGA
+ dxmPAMC7jEcA4F3GIwDwLuMRAHiX8QgAvMt4BADeZTwCAO8yHgGAdxmPAMC7jEcA4F3GIwDwLuMRAHiX
+ 8QgAvMt4BADeZTwCAO8yHgGAdxmPAMC7jEcA4F3GIwDwLuMRAHiX8QgAvMt4BADeZTwCAO8yHgGAdxmP
+ AMC7jEcA4F3GIwDwLuMRAHiX8QgAvMt4BADeZTwCAO8yHgGAdxmPAMCb/PrD/wD/ktqKcHdODAAAAABJ
+ RU5ErkJggg==
- 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
+ iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t+KAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAu
+ IwAALiMBeKU/dgAAGghJREFUeF7t17GtZUGSJMrRZBdYRVuEL9JoMGxr0SL0ZmC5gD/iBDIaNz+MsETB
+ mUscr/Cq//r3v/8NADwuhgDAW2IIALwlhgDAW2IIALwlhgDAW2IIALwlhgDAW2IIALwlhgDAW2IIALwl
+ hgDAW2IIALwlhgDAW2IIALwlhgDAW2IIALwlhgDAW2IIALwlhgDAW2IIALwlhgDAW2IIALwlhgDAW2II
+ ALwlhgDAW2IIALwlhgDAW2IIALwlhgDAW2IIALwlhgDAW2IIALwlhgDAW2IIALwlhgDAW2IIALwlhgDA
+ W2IIALwlhgDAW2IIALwlhgDAW2IIALwlhgDAW2IIALwlhgDAW2IIALwlhgDAW2IIALwlhgDAW2IIALwl
+ hgDAW2IIALwlhgDAW2IIALwlhgDAW2IIALwlhgDAW2IIALwlhgDAW2IIALwlhgDAW2IIALwlhgDAW2II
+ ALwlhgDAW2IIALwlhgDAW2IIALwlhgDAW2IIALwlhgDAW2IIALwlhgDAW2IIALwlhgDAW2IIALwlhgDA
+ W2IIALwlhgDAW2IIALwlhgDAW2IIALwlhgz913/9f8d/w6/5P//rf8NX/zz+tex/4i1lJIYM/b/jef4E
+ v+UcTvhF/4q3lJEYMmTQ+VHhkMIvMOgXxZAhg86PCocUfoFBvyiGDBl0flQ4pPALDPpFMWTIoPOjwiGF
X2DQL4ohQwadHxUOKfwCg35RDBky6PyocEjhFxj0i2LIkEHnR4VDCr/AoF8UQ4YMOj8qHFL4BQb9ohgy
ZND5UeGQwi8w6BfFkCGDzo8KhxR+gUG/KIYMGXR+VDik8AsM+kUxZMig86PCIYVfYNAviiFDBp0fFQ4p
- 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
- Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eD
- Qb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0
- i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8o
- hsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LI
- TJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxU
- OVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWz
- lXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZ
- Nxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWD
- QQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0
- YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW
- 1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3d
- mnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1p
- t2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7
- Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eD
- Qb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0
- i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8o
- hsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LI
- TJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxU
- OVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWz
- lXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZ
- Nxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWD
- QQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0
- YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW
- 1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3d
- mnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1p
- t2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7
- Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eD
- Qb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0
- i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8o
- hsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LI
- TJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxU
- OVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWz
- lXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZ
- Nxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWD
- QQfW1a1pt2eDQb8ohsxUOVtZNxh0YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsxUOVtZNxh0
- YF3dmnZ7Nhj0i2LITJWzlXWDQQfW1a1pt2eDQb8ohsyccv6zlXVD/aOh/qIBbPpP/Afln+mWMhNDZk45
- /9XKCsDf/pVuKTMxZKbK2coKwN8M+kUxZKbK2coKwN8M+kUxZKbK2coKwN8M+kUxZKbK2coKwN8M+kUx
- ZKbK2coKwN8M+kUxZKbK2coKwN8M+kUxZKbK2coKwN8M+kUxZKbK2coKwN8M+kUxZKbK2coKwN8M+kUx
- ZKbK2coKwN8M+kUxZKbK2coKwN8M+kUxZKbK2coKwN8M+kUxZKbK2coKwN8M+kUxZKbK2coKwN8M+kUx
- ZKbK2coKwN8M+kUxZKbK2coKwN8M+kUxZKbK2coKwN8M+kUxZKbK2coKwN8M+kUxZKbK2coKwN8M+kUx
- ZKbK2coKwN8M+kUxZKbK2coKwN8M+kUxZKbK2coKwN8M+kUxZKbK2coKwN8M+kUxZOaU83+qoMv+efw3
- wLK6NekG3fQ/6ZYyE0MA4C0xBADeEkMA4C0xBADeEkMA4C0xBADeEkMA4C0xBADeEkMA4C0xBADeEkMA
- 4C0xBADeEkMA4C0xBADeEkMA4C0xBADeEkMA4C0xBADeEkMA4C0xBADeEkMA4C0xBADeEkMA4C0xBADe
- EkMA4C0xBADeEkMA4C0xBADeEkMA4C0xBADeEkMA4C0xBADeEkMA4C0xBADeEkMA4C0xBADeEkMA4C0x
- BADeEkMA4C0xBADeEkMA4C0xBADeEkMA4C0xBADeEkMA4C0xBADeEkMA4C0xBADeEkMA4C0xBADeEkMA
- 4C0xBADeEkMA4C0xBADeEkMA4C0xBADeEkMA4C0xBADeEkMA4C0xBADeEkMA4C0xBADeEkMA4C0xBADe
- EkMA4C0xBADeEkMA4C0xBADeEkMA4C0xBADeEkMA4C0xBADeEkMA4C0xBADeEkMA4C0xBADeEkMA4C0x
- BADeEkMA4C0xBADeEkMA4C0xBADeEkMA4CX//q//C2i8aCmoLJEpAAAAAElFTkSuQmCC
+ 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
+ Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2
+ GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NB
+ vyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSL
+ YshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiG
+ zFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshM
+ lbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5
+ W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOV
+ dYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3
+ GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNB
+ B9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRg
+ Xd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bV
+ rWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2a
+ dns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3
+ Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2
+ GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NB
+ vyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSL
+ YshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiG
+ zFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshM
+ lbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5
+ W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOV
+ dYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3
+ GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNB
+ B9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRg
+ Xd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bV
+ rWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2a
+ dns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3
+ Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2
+ GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NB
+ vyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSL
+ YshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiG
+ zFQ5W1k3GHRgXd2adns2GPSLYshMlbOVdYNBB9bVrWm3Z4NBvyiGzFQ5W1k3GHRgXd2adns2GPSLYshM
+ lbOVdYNBB9bVrWm3Z4NBvyiGzJxy/rOVdUP9o6H+ogFs+k/8B+Wf6ZYyE0NmTjn/1coKwN/+lW4pMzFk
+ psrZygrA3wz6RTFkpsrZygrA3wz6RTFkpsrZygrA3wz6RTFkpsrZygrA3wz6RTFkpsrZygrA3wz6RTFk
+ psrZygrA3wz6RTFkpsrZygrA3wz6RTFkpsrZygrA3wz6RTFkpsrZygrA3wz6RTFkpsrZygrA3wz6RTFk
+ psrZygrA3wz6RTFkpsrZygrA3wz6RTFkpsrZygrA3wz6RTFkpsrZygrA3wz6RTFkpsrZygrA3wz6RTFk
+ psrZygrA3wz6RTFkpsrZygrA3wz6RTFkpsrZygrA3wz6RTFkpsrZygrA3wz6RTFkpsrZygrA3wz6RTFk
+ psrZygrA3wz6RTFkpsrZygrA3wz6RTFkpsrZygrA3wz6RTFk5pTzf6qgy/55/DfAsro16Qbd9D/pljIT
+ QwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEE
+ AN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDg
+ LTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4S
+ QwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEE
+ AN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDg
+ LTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4SQwDgLTEEAN4S
+ QwDgLTEEAN4SQwDgJf/+r/8LaLxoKagskSkAAAAASUVORK5CYII=
- iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t+KAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- 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
- aftn76hJMrIAAAAASUVORK5CYII=
+ iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t+KAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAu
+ IwAALiMBeKU/dgAAGL1JREFUeF7t19FtrddxhmGVkA4SIA2kRJXgktSBc6kulA6cNXbg2OOhdM6cNeQ/
+ ez8XD0B8N5sAh+slf/rLX/4CACxXjgDALuUIAOxSjgDALuUIAOxSjgDALuUIAOxSjgDALuUIAOxSjgDA
+ LuUIAOxSjgDALuUIAOxSjgDALuUIAOxSjgDALuUIAOxSjgDALuUIAOxSjgDALuUIAOxSjgDALuUIAOxS
+ jgDALuUIAOxSjgDALuUIAOxSjgDALuUIAOxSjgDALuUIAOxSjgDALuUIAOxSjgDALuUIAOxSjgDALuUI
+ AOxSjgDALuUIAOxSjgDALuUIAOxSjgDALuUIAOxSjgDALuUIAOxSjgDALuUIAOxSjgDALuUIAOxSjgDA
+ LuUIAOxSjgDALuUIAOxSjgDALuUIAOxSjgDALuUIAOxSjgDALuUIAOxSjgDALuUIAOxSjgDALuUIAOxS
+ jgDALuUIAOxSjgDALuUIAOxSjgDALuUIAOxSjgDALuUIAOxSjgDALuUIAOxSjgDALuUIAOxSjgDALuUI
+ AOxSjgDALuUIAOxSjgDALuUIAOxSjgDALuUIAOxSjjT99NOfjl/gaf7z3/8Dvtevx2/D/ly+pbSUI01/
+ ezzPV/As5+GEJ/qtfEtpKUeaBJ2HKh5SeAJBv6gcaRJ0Hqp4SOEJBP2icqRJ0Hmo4iGFJxD0i8qRJkHn
+ oYqHFJ5A0C8qR5oEnYcqHlJ4AkG/qBxpEnQeqnhI4QkE/aJypEnQeajiIYUnEPSLypEmQeehiocUnkDQ
+ LypHmgSdhyoeUngCQb+oHGkSdB6qeEjhCQT9onKkSdB5qOIhhScQ9IvKkSZB56GKhxSeQNAvKkeaBJ2H
+ Kh5SeAJBv6gcaRJ0Hqp4SOEJBP2icqRJ0Hmo4iGFJxD0i8qRJkHnoYqHFJ5A0C8qR5oEnYcqHlJ4AkG/
+ qBxpEnQeqnhI4QkE/aJypEnQeajiIYUnEPSLypEmQeehiocUnkDQLypHmgSdhyoeUngCQb+oHGkSdB6q
+ eEjhCQT9onKkSdB5qOIhhScQ9IvKkabPCXp8xs882p+O6mf3Vf7nPJw/w3f65agifNOv5VtKSznS9DlB
+ /7n8bJ7hp5/+7fjvf/h5fbX/Of6r/F7hd5zYRtSrCN/0S/XZ9JQjTYL+3sScF3JiK+jLlCNNgv6+xJwX
+ c2Ir6MuUI02C/p7EnBd0Yivoy5QjTYL+fsScF3ViK+jLlCNNgv5exJwXdmIr6MuUI02C/j7EnBd3Yivo
+ y5QjTYL+HsScN3BiK+jLlCNNgv76xJw3cWIr6MuUI02C/trEnDdyYivoy5QjTYL+usScN3NiK+jLlCNN
+ gv6axJw3dGIr6MuUI02C/nrEnDd1Yivoy5QjTYL+WsScN3ZiK+jLlCNNgv46xJw3d2Ir6MuUI02C/hrE
+ HAR9oXKkSdD3E3P4qxNbQV+mHGkS9N3EHP7uxFbQlylHmgR9LzGHf3JiK+jLlCNNgr6TmMO/OLEV9GXK
+ kSZB30fMoXRiK+jLlCNNgr6LmMOHTmwFfZlypEnQ9xBz+F0ntoK+TDnSJOg7iDn8oRNbQV+mHGkS9OcT
+ c/gmJ7aCvkw50iTozybm8M1ObAV9mXKkSdCfS8zhu5zYCvoy5UiToD+TmMN3O7EV9GXKkSZBfx4xh5YT
+ W0FfphxpEvRnEXNoO7EV9GXKkSZBfw4xhx9yYivoy5QjTYL+DGIOP+zEVtCXKUeaBP3riTlccWIr6MuU
+ I02C/rXEHK45sRX0ZcqRJkH/OmIOV53YCvoy5UiToH8NMYfrTmwFfZlypEnQP5+Yw4gTW0FfphxpEvTP
+ JeYw5sRW0JcpR5oE/fOIOYw6sRX0ZcqRJkH/HGIO405sBX2ZcqRJ0OeJOXyKE1tBX6YcaRL0WWIOn+bE
+ VtCXKUeaBH2OmMOnOrEV9GXKkSZBnyHm8OlObAV9mXKkSdDvE3P4Eie2gr5MOdIk6HeJOXyZE1tBX6Yc
+ aRL0e8QcvtSJraAvU440CfodYg5f7sRW0JcpR5oE/ceJOTzCia2gL1OONAn6jxFzeIwTW0FfphxpEvQ+
+ MYdHObEV9GXKkSZB7xFzeJwTW0FfphxpEvTvJ+bwSCe2gr5MOdIk6N9HzOGxTmwFfZlypEnQv52Yw6Od
+ 2Ar6MuVIk6B/GzGHxzuxFfRlypEmQf9jYg4rnNgK+jLlSJOg/z4xhzVObAV9mXKkSdA/JuawyomtoC9T
+ jjQJek3MYZ0TW0FfphxpEvR/Jeaw0omtoC9TjjQJ+j8Tc1jrxFbQlylHmgT9/4k5rHZiK+jLlCNNgv43
+ Yg7rndgK+jLlSJOgizm8iBNbQV+mHGl696CLObyME1tBX6YcaXrnoIs5vJQTW0Ffphxpetegizm8nBNb
+ QV+mHGl6x6CLObykE1tBX6YcaXq3oIs5vKwTW0Ffphxpeqegizm8tBNbQV+mHGl6l6CLOby8E1tBX6Yc
+ aXqHoIs5vIUTW0FfphxpevWgizm8jRNbQV+mHGl65aCLObyVE1tBX6YcaXrVoIs5vJ0TW0FfphxpesWg
+ izm8pRNbQV+mHGl6taCLObytE1tBX6YcaXqloIs5vLUTW0FfphxpepWgizm8vRNbQV+mHGl6haCLOXCc
+ 2Ar6MuVI0/agiznwf05sBX2ZcqRpc9DFHPgHJ7aCvkw50rQ16GIOJCe2gr5MOdK0MehiDhRObAV9mXKk
+ aVvQxRz4wImtoC9TjjRtCrqYA7/jxFbQlylHmrYEXcyBP3BiK+jLlCNNG4Iu5sA3OLEV9GXKkaanB13M
+ gW90Yivoy5QjTU8OupgD3+HEVtCXKUeanhp0MQe+04mtoC9TjjQ9MehiDjSc2Ar6MuVI09OCLuZA04mt
+ oC9TjjQ9KehiDvyAE1tBX6YcaXpK0MUc+EEntoK+TDnS9ISgizlwwYmtoC9TjjR9ddDFHLjkxFbQlylH
+ mr4y6GIOXHRiK+jLlCNNXxV0MQcuO7EV9GXKkaavCLqYAwNObAV9mXKk6bODLubAkBNbQV+mHGn6zKCL
+ OTDoxFbQlylHmj4r6GIODDuxFfRlypGmzwn6nw4xB0ad2Ar6MuVI0+cE/UnEHF7Uia2gL1OONL1X0MUc
+ XtiJraAvU440vU/QxRxe3ImtoC9TjjS9R9DFHN7Aia2gL1OONL1+0MUc3sSJraAvU440vXbQxRzeyImt
+ oC9TjjS9btDFHN7Mia2gL1OONL1m0MUc3tCJraAvU440vV7QxRze1ImtoC9TjjS9VtDFHN7Yia2gL1OO
+ NL1O0MUc3tyJraAvU440vUbQxRwQ9IXKkab9QRdz4K9ObAV9mXKkaXfQxRz4uxNbQV+mHGnaG3QxB/7J
+ ia2gL1OONO0MupgD/+LEVtCXKUea9gVdzIHSia2gL1OONO0KupgDHzqxFfRlypGmPUEXc+B3ndgK+jLl
+ SNOOoIs58IdObAV9mXKk6flBF3Pgm5zYCvoy5UjTs4Mu5sA3O7EV9GXKkabnBl3Mge9yYivoy5QjTc8M
+ upgD3+3EVtCXKUeanhd0MQdaTmwFfZlypOlZQRdzoO3EVtCXKUeanhN0MQd+yImtoC9TjjQ9I+hiDvyw
+ E1tBX6Ycafr6oIs5cMWJraAvU440fW3QxRy45sRW0JcpR5q+LuhiDlx1Yivoy5QjTV8TdDEHrjuxFfRl
+ ypGmzw+6mAMjTmwFfZlypOlzgy7mwJgTW0Ffphxp+rygizkw6sRW0JcpR5o+J+hiDow7sRX0ZcqRnjjO
+ dKwTfq4+G+CmeGvS2zNB0C8qR3riONOxThB0YFy8NentmSDoF5UjPXGc6VgnCDowLt6a9PZMEPSLypGe
+ OM50rBMEHRgXb016eyYI+kXlSE8cZzrWCYIOjIu3Jr09EwT9onKkJ44zHesEQQfGxVuT3p4Jgn5ROdIT
+ x5mOdYKgA+PirUlvzwRBv6gc6YnjTMc6QdCBcfHWpLdngqBfVI70xHGmY50g6MC4eGvS2zNB0C8qR3ri
+ ONOxThB0YFy8NentmSDoF5UjPXGc6VgnCDowLt6a9PZMEPSLypGeOM50rBMEHRgXb016eyYI+kXlSE8c
+ ZzrWCYIOjIu3Jr09EwT9onKkJ44zHesEQQfGxVuT3p4Jgn5ROdITx5mOdYKgA+PirUlvzwRBv6gc6Ynj
+ TMc6QdCBcfHWpLdngqBfVI70xHGmY50g6MC4eGvS2zNB0C8qR3riONOxThB0YFy8NentmSDoF5UjPXGc
+ 6VgnCDowLt6a9PZMEPSLypGeOM50rBMEHRgXb016eyYI+kXlSE8cZzrWCYIOjIu3Jr09EwT9onKkJ44z
+ HesEQQfGxVuT3p4Jgn5ROdITx5mOdYKgA+PirUlvzwRBv6gc6YnjTMc6QdCBcfHWpLdngqBfVI70xHGm
+ Y50g6MC4eGvS2zNB0C8qR3riONOxThB0YFy8NentmSDoF5UjPXGc6VgnCDowLt6a9PZMEPSLypGeOM50
+ rBMEHRgXb016eyYI+kXlSE8cZzrWCYIOjIu3Jr09EwT9onKkJ44zHesEQQfGxVuT3p4Jgn5ROdITx5mO
+ dYKgA+PirUlvzwRBv6gc6YnjTMc6QdCBcfHWpLdngqBfVI70xHGmY50g6MC4eGvS2zNB0C8qR3riONOx
+ ThB0YFy8NentmSDoF5UjPXGc6VgnCDowLt6a9PZMEPSLypGeOM50rBMEHRgXb016eyYI+kXlSE8cZzrW
+ CYIOjIu3Jr09EwT9onKkJ44zHesEQQfGxVuT3p4Jgn5ROdITx5mOdYKgA+PirUlvzwRBv6gc6YnjTMc6
+ QdCBcfHWpLdngqBfVI70xHGmY50g6MC4eGvS2zNB0C8qR3riONOxThB0YFy8NentmSDoF5UjPXGc6Vgn
+ CDowLt6a9PZMEPSLypGeOM50rBMEHRgXb016eyYI+kXlSE8cZzrWCYIOjIu3Jr09EwT9onKkJ44zHesE
+ QQfGxVuT3p4Jgn5ROdITx5mOdYKgA+PirUlvzwRBv6gc6YnjTMc6QdCBcfHWpLdngqBfVI70xHGmY50g
+ 6MC4eGvS2zNB0C8qR3riONOxThB0YFy8NentmSDoF5UjPXGc6VgnCDowLt6a9PZMEPSLypGeOM50rBME
+ HRgXb016eyYI+kXlSE8cZzrWCYIOjIu3Jr09EwT9onKkJ44zHesEQQfGxVuT3p4Jgn5ROdITx5mOdYKg
+ A+PirUlvzwRBv6gc6YnjTMc6QdCBcfHWpLdngqBfVI70xHGmY50g6MC4eGvS2zNB0C8qR3riONOxThB0
+ YFy8NentmSDoF5UjPXGc6VgnCDowLt6a9PZMEPSLypGeOM50rBMEHRgXb016eyYI+kXlSE8cZzrWCYIO
+ jIu3Jr09EwT9onKkJ44zHesEQQfGxVuT3p4Jgn5ROdITx5mOdYKgA+PirUlvzwRBv6gc6YnjTMc6QdCB
+ cfHWpLdngqBfVI70xHGmY50g6MC4eGvS2zNB0C8qR3riONOxThB0YFy8NentmSDoF5UjPXGc6VgnCDow
+ Lt6a9PZMEPSLypGeOM50rBMEHRgXb016eyYI+kXlSE8cZzrWCYIOjIu3Jr09EwT9onKkJ44zHesEQQfG
+ xVuT3p4Jgn5ROdITx5mOdYKgA+PirUlvzwRBv6gc6YnjTMc6QdCBcfHWpLdngqBfVI70xHGmY50g6MC4
+ eGvS2zNB0C8qR3riONOxThB0YFy8NentmSDoF5UjPXGc6VgnCDowLt6a9PZMEPSLypGeOM50rBMEHRgX
+ b016eyYI+kXlSE8cZzrWCYIOjIu3Jr09EwT9onKkJ44zHesEQQfGxVuT3p4Jgn5ROdITx5mOdYKgA+Pi
+ rUlvzwRBv6gc6YnjTMc6QdCBcfHWpLdngqBfVI70xHGmY50g6MC4eGvS2zNB0C8qR3riONOxThB0YFy8
+ NentmSDoF5UjPXGc6VgnCDowLt6a9PZMEPSLypGeOM50rBMEHRgXb016eyYI+kXlSE8cZzrWCYIOjIu3
+ Jr09EwT9onKkJ44zHesEQQfGxVuT3p4Jgn5ROdITx5mOdYKgA+PirUlvzwRBv6gc6YnjTMc6QdCBcfHW
+ pLdngqBfVI70xHGmY50g6MC4eGvS2zNB0C8qR3riONOxThB0YFy8NentmSDoF5UjPXGc6VgnCDowLt6a
+ 9PZMEPSLypGeOM50rBMEHRgXb016eyYI+kXlSE8cZzrWCYIOjIu3Jr09EwT9onKkJ44zHesEQQfGxVuT
+ 3p4Jgn5ROdITx5mOdYKgA+PirUlvzwRBv6gc6YnjTMc6QdCBcfHWpLdngqBfVI70xHGmY50g6MC4eGvS
+ 2zNB0C8qR3riONOxThB0YFy8NentmSDoF5UjPXGc6VgnCDowLt6a9PZMEPSLypGeOM50rBMEHRgXb016
+ eyYI+kXlSE8cZzrWCYIOjIu3Jr09EwT9onKkJ44zHesEQQfGxVuT3p4Jgn5ROdITx5mOdYKgA+PirUlv
+ zwRBv6gc6YnjTMc6QdCBcfHWpLdngqBfVI70xHGmY50g6MC4eGvS2zNB0C8qR3riONOxThB0YFy8Nent
+ mSDoF5UjPXGc6VgnCDowLt6a9PZMEPSLypGeOM50rBMEHRgXb016eyYI+kXlSE8cZzrWCYIOjIu3Jr09
+ EwT9onKkJ44zHesEQQfGxVuT3p4Jgn5ROdITx5mOdYKgA+PirUlvzwRBv6gc6YnjTMc6QdCBcfHWpLdn
+ gqBfVI70xHGmY50g6MC4eGvS2zNB0C8qR3riONOxThB0YFy8NentmSDoF5UjPXGc6VgnCDowLt6a9PZM
+ EPSLypGeOM50rBMEHRgXb016eyYI+kXlSE8cZzrWCYIOjIu3Jr09EwT9onKkJ44zHesEQQfGxVuT3p4J
+ gn5ROdITx5mOdYKgA+PirUlvzwRBv6gc6YnjTMc6QdCBcfHWpLdngqBfVI70xHGmY50g6MC4eGvS2zNB
+ 0C8qR3riONOxThB0YFy8NentmSDoF5UjPXGc6VgnCDowLt6a9PZMEPSLypGeOM50rBMEHRgXb016eyYI
+ +kXlSE8cZzrWCYIOjIu3Jr09EwT9onKkJ44zHesEQQfGxVuT3p4Jgn5ROdITx5mOdYKgA+PirUlvzwRB
+ v6gc6YnjTMc6QdCBcfHWpLdngqBfVI70xHGmY50g6MC4eGvS2zNB0C8qR3riONOxThB0YFy8NentmSDo
+ F5UjPXGc6VgnCDowLt6a9PZMEPSLypGeOM50rBMEHRgXb016eyYI+kXlSE8cZzrWCYIOjIu3Jr09EwT9
+ onKkJ44zHesEQQfGxVuT3p4Jgn5ROdITx5mOdYKgA+PirUlvzwRBv6gc6YnjTMc6QdCBcfHWpLdngqBf
+ VI70xHGmY50g6MC4eGvS2zNB0C8qR3riONOxThB0YFy8NentmSDoF5UjPXGc6VgnCDowLt6a9PZMEPSL
+ ypGeOM50rBMEHRgXb016eyYI+kXlSE8cZzrWCYIOjIu3Jr09EwT9onKk5xznr+lYJ8QfDfGLBjDpM/5B
+ +bV6S+kpR3rOcf6WjhWAj/1WvaX0lCM9cZzpWAH4mKBfVI70xHGmYwXgY4J+UTnSE8eZjhWAjwn6ReVI
+ TxxnOlYAPiboF5UjPXGc6VgB+JigX1SO9MRxpmMF4GOCflE50hPHmY4VgI8J+kXlSE8cZzpWAD4m6BeV
+ Iz1xnOlYAfiYoF9UjvTEcaZjBeBjgn5ROdITx5mOFYCPCfpF5UhPHGc6VgA+JugXlSM9cZzpWAH4mKBf
+ VI70xHGmYwXgY4J+UTnSE8eZjhWAjwn6ReVITxxnOlYAPiboF5UjPXGc6VgB+JigX1SO9MRxpmMF4GOC
+ flE50hPHmY4VgI8J+kXlSE8cZzpWAD4m6BeVIz1xnOlYAfiYoF9UjvTEcaZjBeBjgn5ROdITx5mOFYCP
+ CfpF5UjPOc4/x4EO+/X4BWBYvDXVG3TTn6u3lJ5yBAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2
+ KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdy
+ BAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcA
+ YJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2
+ KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdy
+ BAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcA
+ YJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdyBAB2KUcAYJdyBAA2+ctP/wtp+2fvqEkysgAAAABJ
+ RU5ErkJggg==
\ No newline at end of file
diff --git a/Wardrobe/GUI/Individual.vb b/Wardrobe/GUI/Individual.vb
index 7f55cf7..fe4cf25 100644
--- a/Wardrobe/GUI/Individual.vb
+++ b/Wardrobe/GUI/Individual.vb
@@ -232,6 +232,53 @@ Public Class Individual
Middle_Rectangle.SquareMiddleButtton(sender, e)
End Sub
+
+
+ Private Sub CheckBox_3DModel_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox_3DModel.CheckedChanged
+ If User_Input.add3DGrating = True Then
+ User_Input.add3DGrating = False
+ Else
+ User_Input.add3DGrating = True
+ End If
+ End Sub
+
+ Private Sub CheckBox_Frames_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox_Frames.CheckedChanged
+ If User_Input.addFrame = True Then
+ User_Input.addFrame = False
+ CheckBox_FrameDrawing.Checked = False
+ CheckBox_FrameDrawing.Enabled = False
+ User_Input.addFrameDrawing = False
+ Else
+ User_Input.addFrame = True
+ CheckBox_FrameDrawing.Enabled = True
+ End If
+ End Sub
+
+ Private Sub CheckBox_GratingDrawing_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox_GratingDrawing.CheckedChanged
+ If User_Input.addGratingDrawing = True Then
+ User_Input.addGratingDrawing = False
+ Else
+ User_Input.addGratingDrawing = True
+ End If
+ End Sub
+
+ Private Sub CheckBox_FrameDrawing_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox_FrameDrawing.CheckedChanged
+ If User_Input.addFrameDrawing = True Then
+ User_Input.addFrameDrawing = False
+ Else
+ User_Input.addFrameDrawing = True
+ End If
+ End Sub
+
+ Private Sub CheckBox_Instructions_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox_Instructions.CheckedChanged
+ If User_Input.addInstructions = True Then
+ User_Input.addInstructions = False
+ Else
+ User_Input.addInstructions = True
+ End If
+ End Sub
+
+
' ---------------------------------- Calculate ----------------------------------
' --- When calculate button is pressed ---
Public Sub Button_Calculate_Click(sender As Object, e As EventArgs)
@@ -244,10 +291,40 @@ Public Class Individual
If AppForm.fillMode Then
Grating_Fill.Calculate_Grid()
- 'Multiple_3D.BuildGrid()
+ Dim frameCreated As Boolean = False
+ If User_Input.add3DGrating = True Then
+ Multiple_3D.BuildGrid()
+ frameCreated = True
+ End If
+
+ If User_Input.addGratingDrawing = True Then
+ Multiple_3D_Simplified.Build_Grid(False)
+ Multiple_Drawing.Generate_Drawing()
+ End If
+
+ Dim simplifiedWithFrameCreated As Boolean = False
+ If User_Input.addFrameDrawing = True Then
+ If frameCreated = False Then
+ Multiple_3D_Simplified.Build_Grid(True)
+ simplifiedWithFrameCreated = True
+ End If
+ For Each DR As DataRow In Frame_3D.frameDT.Rows
+ If DR("TYPE") = "SIDE" Then
+ Frame_3D.Generate_End_Frame_Pieces()
+ Frame_Drawing.Create_Assemblies(simplifiedWithFrameCreated)
+ Frame_Drawing.Generate_Drawings()
+ Exit For
+ End If
+ Next
+ End If
+
+ If User_Input.addInstructions = True Then
+ If User_Input.addFrame = True AndAlso simplifiedWithFrameCreated = False Then
+ Multiple_3D_Simplified.Build_Grid(True)
+ End If
+ 'Skapa drawing filen här
+ End If
- Multiple_3D_Simplified.Build_Grid()
- Multiple_Drawing.Generate_Drawing()
Else
Individual_3D.BuildGrating()
Individual_Drawing.Create_Model_For_Drawing()
@@ -268,4 +345,5 @@ Public Class Individual
AppForm.Panel_Start.Controls.Add(Main_Menu)
Main_Menu.Show()
End Sub
+
End Class
\ No newline at end of file
diff --git a/Wardrobe/Gratings Data/User_Input.vb b/Wardrobe/Gratings Data/User_Input.vb
index c068c8c..f2e64e3 100644
--- a/Wardrobe/Gratings Data/User_Input.vb
+++ b/Wardrobe/Gratings Data/User_Input.vb
@@ -12,7 +12,11 @@
Private Shared lacqueredCheckBox As New CheckBox
Private Shared lacqueredCheckBoxBol As Boolean = False
-
+ Public Shared add3DGrating As Boolean = False
+ Public Shared addFrame As Boolean = False
+ Public Shared addGratingDrawing As Boolean = False
+ Public Shared addFrameDrawing As Boolean = False
+ Public Shared addInstructions As Boolean = False
Public Shared Sub TypeChanged(sender As Object, e As EventArgs)
Individual.ComboBox_Material.Enabled = True
Individual.ComboBox_Material.Items.Clear()
diff --git a/Wardrobe/SolidWorks/Individual_Frame_3D.vb b/Wardrobe/SolidWorks/Frame_3D.vb
similarity index 98%
rename from Wardrobe/SolidWorks/Individual_Frame_3D.vb
rename to Wardrobe/SolidWorks/Frame_3D.vb
index 5ca3e01..03194b6 100644
--- a/Wardrobe/SolidWorks/Individual_Frame_3D.vb
+++ b/Wardrobe/SolidWorks/Frame_3D.vb
@@ -1,6 +1,6 @@
Imports XCCLibrary
Imports SldWorks
-Public Class Individual_Frame_3D
+Public Class Frame_3D
Private Shared designName As String
Public Shared frameDT As New DataTable
Public Shared cuttingList As New Dictionary(Of Integer, Integer())
@@ -28,7 +28,7 @@ Public Class Individual_Frame_3D
HLCtName = "frame_l_straight"
End If
inst_ = ExternalClass.instantiate_parts(parentID, HLCtName, "")
- ExternalClass.modify_parameter_value("DP_HEIGHT", inst_, 30) 'FIXA
+ ExternalClass.modify_parameter_value("DP_HEIGHT", inst_, 40) 'FIXA: Dropdown i GUI med alla alternativ
ExternalClass.modify_parameter_value("DP_WIDTH", inst_, 40) 'FIXA
ExternalClass.modify_parameter_value("DP_ROTATION", inst_, frameDT.Rows(i)("ROTATION"))
@@ -121,10 +121,10 @@ Public Class Individual_Frame_3D
DTRow("CORNER") = Data.gratingPoints.Rows(i)("QUADRANT")
DTRow("ROTATION") = (Data.gratingPoints.Rows(i)("QUADRANT") - 1) * 90
If DTRow("CORNER") = 1 Then
- DTRow("OFFSET_W") = gratingParameters("WIDTH")
+ DTRow("OFFSET_W") = Data.gratingW 'gratingParameters("WIDTH")
DTRow("OFFSET_L") = 0
ElseIf DTRow("CORNER") = 2 Then
- DTRow("OFFSET_W") = gratingParameters("WIDTH")
+ DTRow("OFFSET_W") = Data.gratingW 'gratingParameters("WIDTH")
DTRow("OFFSET_L") = gratingParameters("LENGTH")
ElseIf DTRow("CORNER") = 3 Then
DTRow("OFFSET_W") = 0
@@ -219,7 +219,7 @@ Public Class Individual_Frame_3D
Else
DTRow("SIDE") = 2
DTRow("LENGTH") = (Data.gratingPoints.Rows(i2)("X") - Data.gratingPoints.Rows(i)("X")) * 1000 - 20 - numOfP * 200 + extraCorner1 + extraCorner2
- DTRow("OFFSET_W") = gratingParameters("WIDTH")
+ DTRow("OFFSET_W") = Data.gratingW 'gratingParameters("WIDTH")
If Data.gratingPoints.Rows(i)("NAME").substring(0, 1) = "P" Then
DTRow("OFFSET_L") = DTRow("LENGTH") + 210 - extraCorner1
Else
diff --git a/Wardrobe/SolidWorks/Individual_Frame_Drawing.vb b/Wardrobe/SolidWorks/Frame_Drawing.vb
similarity index 78%
rename from Wardrobe/SolidWorks/Individual_Frame_Drawing.vb
rename to Wardrobe/SolidWorks/Frame_Drawing.vb
index 0f68c46..3086aff 100644
--- a/Wardrobe/SolidWorks/Individual_Frame_Drawing.vb
+++ b/Wardrobe/SolidWorks/Frame_Drawing.vb
@@ -1,28 +1,42 @@
Imports SldWorks
-Public Class Individual_Frame_Drawing
+Public Class Frame_Drawing
Private Shared frameComponents
- Public Shared Sub Create_Assemblies()
+ Public Shared Sub Create_Assemblies(frameInSimplified As Boolean)
Dim swApp As SldWorks.SldWorks
swApp = CType(System.Runtime.InteropServices.Marshal.GetActiveObject("SldWorks.Application"), SldWorks.SldWorks)
Dim model As ModelDoc2
Dim assembly As IAssemblyDoc
Dim longstatus As Integer
- frameComponents = Individual_3D.partDT.Select("partType = 'frame_l_straight'")
+ If AppForm.fillMode = True Then
+ If User_Input.add3DGrating = True Then
+ frameComponents = Multiple_3D.partDT.Select("partType = 'frame_l_straight'")
+ Else
+ frameComponents = Multiple_3D_Simplified.partDT.Select("partType = 'frame_l_straight'")
+ End If
+ Else
+ If User_Input.add3DGrating = True Then
+ frameComponents = Individual_3D.partDT.Select("partType = 'frame_l_straight'")
+ Else
+ 'Finns inte -> FIXA, kan funka: frameComponents = Multiple_3D_Simplified.partDT.Select("partType = 'frame_l_straight'")
+ End If
+ End If
- For i = 0 To Individual_Frame_3D.cuttingList.Count - 1
+
+
+ For i = 0 To Frame_3D.cuttingList.Count - 1
model = swApp.NewDocument("C:\ProgramData\SolidWorks\SOLIDWORKS 2020\templates\Assembly.asmdot", 0, 0, 0)
assembly = model
Dim endPieceLength As Integer = 2000
- For j = 0 To Individual_Frame_3D.cuttingList.ElementAt(i).Value.Count - 1
- endPieceLength -= Individual_Frame_3D.sideFrameLengths("Frame " & Individual_Frame_3D.cuttingList.ElementAt(i).Value(j))
+ For j = 0 To Frame_3D.cuttingList.ElementAt(i).Value.Count - 1
+ endPieceLength -= Frame_3D.sideFrameLengths("Frame " & Frame_3D.cuttingList.ElementAt(i).Value(j))
Next
Dim numOfParts As Integer = 0
Dim endPieceExist As Integer = 0
If endPieceLength > 0 Then
- numOfParts = Individual_Frame_3D.cuttingList.ElementAt(i).Value.Count
+ numOfParts = Frame_3D.cuttingList.ElementAt(i).Value.Count
Else
- numOfParts = Individual_Frame_3D.cuttingList.ElementAt(i).Value.Count - 1
+ numOfParts = Frame_3D.cuttingList.ElementAt(i).Value.Count - 1
endPieceExist = 1
End If
@@ -30,9 +44,13 @@ Public Class Individual_Frame_Drawing
Dim coordNames(numOfParts) As String
Dim transMatrix As Object = Nothing
For j = 0 To compNames.Count - 2 + endPieceExist
- Dim frameID = Individual_Frame_3D.cuttingList.ElementAt(i).Value(j) - 1
+ Dim frameID = Frame_3D.cuttingList.ElementAt(i).Value(j) - 1
- compNames(j) = Settings.filesFolder & "\Files\CADStart\" & frameComponents(frameID)("partName") & ".SLDPRT"
+ If frameInSimplified = True Then
+ compNames(j) = Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw_support") & "\" & frameComponents(frameID)("partName") & ".SLDPRT"
+ Else
+ compNames(j) = Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw") & "\" & frameComponents(frameID)("partName") & ".SLDPRT"
+ End If
coordNames(j) = ""
Next
@@ -93,7 +111,7 @@ Public Class Individual_Frame_Drawing
Dim layMgr As LayerMgr
layMgr = iDrawing.GetLayerManager()
- For i = 0 To Individual_Frame_3D.cuttingList.Count - 1
+ For i = 0 To Frame_3D.cuttingList.Count - 1
If i > 0 Then
status = iDrawing.NewSheet3("Frame" & i + 1, 12, 12, 1, 10, False, Settings.HLCtFolder & "\Files Needed\A3 Part.slddrt",
swSheetWidth, swSheetHeight, "Same as sheet specified in Document Properties")
@@ -117,10 +135,10 @@ Public Class Individual_Frame_Drawing
Dim components = RootComp.GetChildren()
For j = 0 To components.Length - 1
Dim frameComponentName As String
- If j = Individual_Frame_3D.cuttingList.ElementAt(i).Value.Count Then
+ If j = Frame_3D.cuttingList.ElementAt(i).Value.Count Then
frameComponentName = "frame_l_end_piece" & i + 1
Else
- frameComponentName = frameComponents(Individual_Frame_3D.cuttingList.ElementAt(i).Value(j) - 1)("partName")
+ frameComponentName = frameComponents(Frame_3D.cuttingList.ElementAt(i).Value(j) - 1)("partName")
End If
Dim plane1Name As String = "OffPlane1@" & CompName & "@" & myView.GetName2 & "/" & frameComponentName & "-1@" & CompName.Split("-")(0)
@@ -128,12 +146,12 @@ Public Class Individual_Frame_Drawing
Dim xOffset As Double = 0
For k = 0 To j
- If k = Individual_Frame_3D.cuttingList.ElementAt(i).Value.Count Then
+ If k = Frame_3D.cuttingList.ElementAt(i).Value.Count Then
xOffset += (2000 / 10 - xOffset) / 2
ElseIf k = j Then
- xOffset += (Individual_Frame_3D.sideFrameLengths("Frame " & Individual_Frame_3D.cuttingList.ElementAt(i).Value(k)) / 10) / 2
+ xOffset += (Frame_3D.sideFrameLengths("Frame " & Frame_3D.cuttingList.ElementAt(i).Value(k)) / 10) / 2
Else
- xOffset += Individual_Frame_3D.sideFrameLengths("Frame " & Individual_Frame_3D.cuttingList.ElementAt(i).Value(k)) / 10
+ xOffset += Frame_3D.sideFrameLengths("Frame " & Frame_3D.cuttingList.ElementAt(i).Value(k)) / 10
End If
Next
xOffset = xOffset / 1000
@@ -154,10 +172,10 @@ Public Class Individual_Frame_Drawing
Dim balloonStyle As Integer
Dim balloonOffset As Double
Dim balloonText As String
- If j < Individual_Frame_3D.cuttingList.ElementAt(i).Value.Count Then
+ If j < Frame_3D.cuttingList.ElementAt(i).Value.Count Then
balloonStyle = 1
balloonOffset = 0.01
- balloonText = Individual_Frame_3D.cuttingList.ElementAt(i).Value(j)
+ balloonText = Frame_3D.cuttingList.ElementAt(i).Value(j)
Else
balloonStyle = 0
balloonOffset = -0.03
diff --git a/Wardrobe/SolidWorks/Individual_3D.vb b/Wardrobe/SolidWorks/Individual_3D.vb
index 6a51904..6736524 100644
--- a/Wardrobe/SolidWorks/Individual_3D.vb
+++ b/Wardrobe/SolidWorks/Individual_3D.vb
@@ -39,7 +39,7 @@ Public Class Individual_3D
Inst_Recesses(parentID, gratingParameters, recessDR)
Next
- Individual_Frame_3D.Build_Frame(gratingParameters, parentID)
+ Frame_3D.Build_Frame(gratingParameters, parentID)
importClass.copyGroupsByDataSet(ExternalClass.groupds_new)
Dim grNr = groupClass.NewGroupID
@@ -50,11 +50,11 @@ Public Class Individual_3D
Recess_Indent()
Save_Assembly()
- For Each DR As DataRow In Individual_Frame_3D.frameDT.Rows
+ For Each DR As DataRow In Frame_3D.frameDT.Rows
If DR("TYPE") = "SIDE" Then
- Individual_Frame_3D.Generate_End_Frame_Pieces()
- Individual_Frame_Drawing.Create_Assemblies()
- Individual_Frame_Drawing.Generate_Drawings()
+ Frame_3D.Generate_End_Frame_Pieces()
+ Frame_Drawing.Create_Assemblies(False) 'Fixa False
+ Frame_Drawing.Generate_Drawings()
Exit For
End If
Next
diff --git a/Wardrobe/SolidWorks/Instructions.vb b/Wardrobe/SolidWorks/Instructions.vb
new file mode 100644
index 0000000..1f3351e
--- /dev/null
+++ b/Wardrobe/SolidWorks/Instructions.vb
@@ -0,0 +1,4 @@
+Imports SldWorks
+Public Class Instructions
+
+End Class
diff --git a/Wardrobe/SolidWorks/Multiple_3D.vb b/Wardrobe/SolidWorks/Multiple_3D.vb
index f32f9c7..087027d 100644
--- a/Wardrobe/SolidWorks/Multiple_3D.vb
+++ b/Wardrobe/SolidWorks/Multiple_3D.vb
@@ -4,6 +4,8 @@ Imports SldWorks
Public Class Multiple_3D
Private Shared gratingParameters As DataRow
Private Shared designName As String
+
+ Public Shared partDT As New DataTable
Public Shared Sub BuildGrid()
Dim pointTable As DataTable
pointTable = Data.gratingPoints
@@ -55,6 +57,10 @@ Public Class Multiple_3D
Inst_Recesses(parentID, gratingParameters, recessDR)
Next
+ If User_Input.addFrame = True Then
+ Frame_3D.Build_Frame(gratingParameters, parentID)
+ End If
+
importClass.copyGroupsByDataSet(ExternalClass.groupds_new)
Dim grNr = groupClass.NewGroupID
Dim designTable = designModel.selectDesign("*")
@@ -65,6 +71,7 @@ Public Class Multiple_3D
Recess_Indent()
Save_Assembly()
+
End Sub
@@ -74,8 +81,13 @@ Public Class Multiple_3D
Dim status As Boolean
- Dim Assebmly = swApp.ActiveDoc()
- status = Assebmly.SaveAs3(Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw") & "\gratings_assembly.SLDASM", 0, 4)
+ Dim Assembly = swApp.ActiveDoc()
+ Dim swExtensions As IModelDocExtension
+ swExtensions = Assembly.Extension
+ Dim Errors As Integer
+ Dim Warnings As Integer
+ status = swExtensions.SaveAs2(Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw") & "\gratings_assembly.SLDASM",
+ 0, 4, Nothing, "", True, Errors, Warnings)
End Sub
Private Shared Sub Inst_Recesses(parentID As Integer, gratingParameters As DataRow, recessDR As DataRow)
@@ -226,7 +238,6 @@ Public Class Multiple_3D
AssemblyExtension = Assembly.Extension
Dim sldata = SelMgr.CreateSelectData
- Dim partDT As New DataTable
partDT = partModel.selectPart("*")
Dim gratingParts = partDT.Select("parentName = 'START'")
diff --git a/Wardrobe/SolidWorks/Multiple_3D_Simplified.vb b/Wardrobe/SolidWorks/Multiple_3D_Simplified.vb
index 26c67bb..a365933 100644
--- a/Wardrobe/SolidWorks/Multiple_3D_Simplified.vb
+++ b/Wardrobe/SolidWorks/Multiple_3D_Simplified.vb
@@ -6,7 +6,7 @@ Public Class Multiple_3D_Simplified
Public Shared listOfObsolete As List(Of Integer)
Public Shared partDT As New DataTable
- Public Shared Sub Build_Grid()
+ Public Shared Sub Build_Grid(withFrame As Boolean)
Dim exportTable As DataTable
exportTable = User_Input.Create_ExportTable()
@@ -41,6 +41,10 @@ Public Class Multiple_3D_Simplified
Inst_Recesses(parentID, gratingParameters, recessDR)
Next
+ If withFrame = True Then
+ Frame_3D.Build_Frame(gratingParameters, parentID)
+ End If
+
importClass.copyGroupsByDataSet(ExternalClass.groupds_new)
Dim grNr = groupClass.NewGroupID
Dim designTable = designModel.selectDesign("*")
@@ -51,7 +55,7 @@ Public Class Multiple_3D_Simplified
Recess_Indent()
Suppress_Bodies()
- Save_Assembly()
+ Save_Assembly(withFrame)
End Sub
Private Shared Sub Suppress_Bodies()
@@ -101,7 +105,7 @@ Public Class Multiple_3D_Simplified
Next
End Sub
- Private Shared Sub Save_Assembly()
+ Private Shared Sub Save_Assembly(withFrame As Boolean)
Dim swApp As SldWorks.SldWorks
swApp = CType(System.Runtime.InteropServices.Marshal.GetActiveObject("SldWorks.Application"), SldWorks.SldWorks)
Dim assembly = swApp.ActiveDoc
@@ -134,7 +138,18 @@ Public Class Multiple_3D_Simplified
status = swCustPropMgr.Add3("Revision", 30, "", 1)
Dim Assebmly = swApp.ActiveDoc()
- status = Assebmly.SaveAs3(Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw_support") & "\gratings_assembly_simplified.SLDASM", 0, 4)
+ Dim newName As String
+ If withFrame = True Then
+ newName = Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw_support") & "\gratings_assembly_simplified_with_frame.SLDASM"
+ Else
+ newName = Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw_support") & "\gratings_assembly_simplified.SLDASM"
+ End If
+ Dim swExtensions As IModelDocExtension
+ swExtensions = assembly.Extension
+ Dim Errors As Integer
+ Dim Warnings As Integer
+
+ status = swExtensions.SaveAs2(newName, 0, 4, Nothing, "", True, Errors, Warnings)
End Sub
Private Shared Sub Inst_Recesses(parentID As Integer, gratingParameters As DataRow, recessDR As DataRow)
diff --git a/Wardrobe/SolidWorks/Multiple_Drawing.vb b/Wardrobe/SolidWorks/Multiple_Drawing.vb
index 287d859..a2abfb9 100644
--- a/Wardrobe/SolidWorks/Multiple_Drawing.vb
+++ b/Wardrobe/SolidWorks/Multiple_Drawing.vb
@@ -390,10 +390,10 @@ Public Class Multiple_Drawing
Dim sheetScale = sheetProp(3)
For i = 0 To Draw_Grating.DirSymbolPoints.Count - 2
Dim x1, x2, y1, y2 As Double
- x1 = CDbl((Draw_Grating.DirSymbolPoints(i)(0) - Data.guiPanelMidX) / (20 * sheetScale)) + (swSheetWidth - 0.05) * sheetScale
- y1 = -CDbl((Draw_Grating.DirSymbolPoints(i)(1) - Data.guiPanelMidY) / (20 * sheetScale)) + (swSheetHeight / 2) * sheetScale
- x2 = CDbl((Draw_Grating.DirSymbolPoints(i + 1)(0) - Data.guiPanelMidX) / (20 * sheetScale)) + (swSheetWidth - 0.05) * sheetScale
- y2 = -CDbl((Draw_Grating.DirSymbolPoints(i + 1)(1) - Data.guiPanelMidY) / (20 * sheetScale)) + (swSheetHeight / 2) * sheetScale
+ x1 = CDbl((Draw_Grating.DirSymbolPoints(i)(0) - Data.guiPanelMidX) / 200) + (swSheetWidth - 0.05) * sheetScale
+ y1 = -CDbl((Draw_Grating.DirSymbolPoints(i)(1) - Data.guiPanelMidY) / 200) + (swSheetHeight / 2) * sheetScale
+ x2 = CDbl((Draw_Grating.DirSymbolPoints(i + 1)(0) - Data.guiPanelMidX) / 200) + (swSheetWidth - 0.05) * sheetScale
+ y2 = -CDbl((Draw_Grating.DirSymbolPoints(i + 1)(1) - Data.guiPanelMidY) / 200) + (swSheetHeight / 2) * sheetScale
skSegment = swSkMgr.CreateLine(x1, y1, 0, x2, y2, 0)
Next
@@ -402,22 +402,6 @@ Public Class Multiple_Drawing
Dim note = iDrawing.CreateText2("Load Bearing Direction", (swSheetWidth - 0.075), (swSheetHeight / 2 + 0.012), 0, 0.003, 0)
- 'For i = 0 To (Grating_Fill.numOfHorizontal * Grating_Fill.numOfVertical - 1)
- ' Dim obsoleteBool As Boolean = False
- ' For j = 0 To Multiple_3D_Simplified.listOfObsolete.Count - 1
- ' If i = Multiple_3D_Simplified.listOfObsolete(j) Then
- ' obsoleteBool = True
- ' Exit For
- ' End If
- ' Next
- ' If obsoleteBool = True Then
- ' Continue For
- ' End If
-
-
- ' gratingCounter += 1
- 'Next
-
status = swExtensions.SelectByID2(myView.GetName2, "DRAWINGVIEW", 0, 0, 0, False, 0, Nothing, 0)
Dim vNotes As Object
Dim autoBalloonParams As Object
@@ -451,50 +435,12 @@ Public Class Multiple_Drawing
Dim editedNote = swExtensions.EditBalloonProperties2(1, 2, 0, gratingCounter, 0, "", 0, False, 1, "X", 0.001)
gratingCounter += 1
Next
- Dim a = 0
- 'Dim noteInfo = vNotes(0).GetLeaderInfo()
-
-
- 'Dim noteAnnotation As IAnnotation
- 'noteAnnotation = vNotes(0).GetAnnotation()
- 'noteAnnotation.SetPosition2(noteInfo(3), noteInfo(4), 0)
- 'noteInfo = vNotes(0).GetLeaderInfo()
- 'Dim a = 0
-
-
-
-
- ''Balloons
- 'Dim balloonStyle As Integer = 1
- 'Dim balloonText As String = gratingCounter
-
-
- 'Dim worldX As Double = swSheetWidth / 2 + ((2000 / 2) / 10) / 1000 - xOffset
- 'status = swExtensions.SelectByRay(worldX, 0.153, 0, 0, 0, -1, 0.0005, 2, False, 0, 0)
-
- 'Dim BomBalloonParams As Object
- 'BomBalloonParams = swExtensions.CreateBalloonOptions()
- 'BomBalloonParams.Style = balloonStyle
- 'BomBalloonParams.Size = 2
- 'BomBalloonParams.UpperTextContent = 1
- 'BomBalloonParams.UpperText = """"
- 'BomBalloonParams.ShowQuantity = False
- 'BomBalloonParams.QuantityPlacement = 1
- 'BomBalloonParams.QuantityDenotationText = "X"
- 'BomBalloonParams.QuantityOverride = False
- 'Dim myNote = swExtensions.InsertBOMBalloon2(BomBalloonParams)
-
- 'Dim noteAnnotation As IAnnotation
- 'noteAnnotation = myNote.GetAnnotation()
- 'noteAnnotation.SetPosition2(worldX + balloonOffset, 0.13, 0)
-
- 'iDrawing.ClearSelection2(True)
- 'Dim balloonName As String = myNote.GetName()
- 'status = swExtensions.SelectByID2(balloonName & "@Drawing View" & i + 1, "NOTE", 0, 0, 0, False, 0, Nothing, 0)
- 'Dim editedNote = swExtensions.EditBalloonProperties2(balloonStyle, 2, 0, balloonText, 0, "", 0, False, 1, "X", 0.001)
-
+ Dim newName As String
+ newName = Settings.folderPaths("object_" & Data.objectNum & "_drawings_gratings_sw") & "\grating_drawing.SLDDRW"
+ status = iDrawing.SaveAs3(newName, 0, 0)
+ status = iDrawing.SaveAs3(Settings.folderPaths("object_" & Data.objectNum & "_drawings_gratings_pdf") & "\grating_drawing.pdf", 0, 2)
End Sub
diff --git a/Wardrobe/SolidWorks/Multiple_Drawing2.vb b/Wardrobe/SolidWorks/Multiple_Drawing2.vb
deleted file mode 100644
index 226bc04..0000000
--- a/Wardrobe/SolidWorks/Multiple_Drawing2.vb
+++ /dev/null
@@ -1,786 +0,0 @@
-Imports SldWorks
-Public Class Multiple_Drawing2
-
- Public Shared Sub Create_Models_For_Drawing()
- Dim gratingsPointsDS As DataSet = Create_GratingPoints()
-
- Dim gratingHeight As Decimal = User_Input.gratingHeight / 1000
-
- Dim swApp As SldWorks.SldWorks
- swApp = CType(System.Runtime.InteropServices.Marshal.GetActiveObject("SldWorks.Application"), SldWorks.SldWorks)
- Dim Model As ModelDoc2
- Dim RootPoint(2) As Decimal
- Dim Normal(2) As Decimal
- swApp.UserControl = True
-
- Dim swSkMgr As SketchManager
- Dim longstatus As Integer
- Dim boolstatus As Boolean
- Dim swModelDocExtension As ModelDocExtension
- Dim status As Boolean
- Dim swFeatureMgr As FeatureManager
- Dim swFeature As Feature
- Dim iPart As PartDoc
-
- Dim numOfGratings As Integer = Grating_Fill.numOfVertical * Grating_Fill.numOfHorizontal
-
- For i = 0 To numOfGratings - 1
- Model = swApp.NewDocument("C:\ProgramData\SOLIDWORKS\SOLIDWORKS 2020\templates\part.prtdot", 0, 0, 0)
-
- swSkMgr = Model.SketchManager
- swSkMgr.InsertSketch(True)
- boolstatus = Model.Extension.SelectByID2("Front Plane", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
- Model.ClearSelection2(True)
-
- For Each DR As DataRow In gratingsPointsDS.Tables(i).Rows
- Dim skPoint As SketchPoint
- Dim pX = DR("X")
- Dim pY = DR("Y")
- skPoint = swSkMgr.CreatePoint(pX, pY, 0)
- Next
-
- For Each DR1 As DataRow In gratingsPointsDS.Tables(i).Rows
- Dim skLine As SketchLine
- Dim rowIndex = gratingsPointsDS.Tables(i).Rows.IndexOf(DR1)
- Dim DR2 As DataRow
-
- Try
- DR2 = gratingsPointsDS.Tables(i).Rows(rowIndex + 1)
- Catch ex As Exception
- DR2 = gratingsPointsDS.Tables(i).Rows(0)
- End Try
-
- Dim pX1 = DR1("X")
- Dim pY1 = DR1("Y")
- Dim pX2 = DR2("X")
- Dim pY2 = DR2("Y")
-
- skLine = swSkMgr.CreateLine(pX1, pY1, 0, pX2, pY2, 0)
- Next
-
- swSkMgr.InsertSketch(True)
-
- swModelDocExtension = Model.Extension
- status = swModelDocExtension.SelectByID2("Sketch1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
-
- swFeatureMgr = Model.FeatureManager
- swFeature = swFeatureMgr.FeatureExtrusion3(True, False, False, 0, 0, gratingHeight, 0, False, False, False, False, 0, 0, False, False, False, False, True, True, True, 0, 0, False)
-
-
- ' MIddle points if needed
-
-
- Model.ClearSelection2(True)
- boolstatus = Model.Extension.SelectByID2("Front Plane", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
- Model.FeatureManager.InsertRefPlane(8, gratingHeight, 0, 0, 0, 0)
-
- iPart = swApp.ActiveDoc
- Dim newName As String
- newName = Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw_support") & "\simplified_grating_" & i + 1 & ".SLDPRT"
-
-
- ' Title head data
-
-
- longstatus = iPart.SaveAs3(newName, 0, 0)
- swApp.CloseDoc(newName)
- Next
-
- ' --- Assembly ---
- Dim assembly As IAssemblyDoc
- Dim AssemblyExtension As SldWorks.ModelDocExtension
- Model = swApp.NewDocument("C:\ProgramData\SolidWorks\SOLIDWORKS 2020\templates\Assembly.asmdot", 0, 0, 0)
- assembly = Model
- AssemblyExtension = assembly.Extension
-
- Dim compNames(numOfGratings - 1) As String
- Dim coordNames(numOfGratings - 1) As String
- Dim transMatrix As Object = Nothing
- For i = 0 To numOfGratings - 1
- compNames(i) = Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw_support") & "\simplified_grating_" & i + 1 & ".SLDPRT"
- coordNames(i) = ""
- Next
-
- Dim assemComps As Object
- assemComps = assembly.AddComponents3((compNames), (transMatrix), (coordNames))
-
- Model.ViewZoomtofit2()
- longstatus = Model.SaveAs3(Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw_support") & "\simplified_grating_assembly.SLDASM", 0, 0)
-
- ' --- Delete Obsolete ---
- Dim listOfObsolete As List(Of Integer)
- listOfObsolete = Multiple_3D.Find_Obsolete()
-
- For i = 0 To listOfObsolete.Count - 1
- assembly.ClearSelection2(True)
- boolstatus = AssemblyExtension.SelectByID2("simplified_grating_" & listOfObsolete(i) & "-1@simplified_grating_assembly", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
- assembly.EditDelete
-
- My.Computer.FileSystem.DeleteFile(Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw_support") & "\simplified_grating_" & listOfObsolete(i) & ".SLDPRT")
- Next
-
- Dim swErrors As Integer
- Dim swWarnings As Integer
- boolstatus = assembly.Save3(1, swErrors, swWarnings)
- End Sub
-
- Private Shared Function Create_GratingPoints()
- Dim pointsDS As New DataSet
-
- Dim numOfGratings As Integer = Grating_Fill.numOfVertical * Grating_Fill.numOfHorizontal
-
- For i = 0 To numOfGratings - 1
- Dim pointsDT As New DataTable
- pointsDT.Columns.Add("NAME", GetType(String))
- pointsDT.Columns.Add("TYPE", GetType(String))
- pointsDT.Columns.Add("X", GetType(Decimal))
- pointsDT.Columns.Add("Y", GetType(Decimal))
-
- Dim GAPointsDT As New DataTable
- GAPointsDT.Columns.Add("NAME", GetType(String))
- GAPointsDT.Columns.Add("X", GetType(Decimal))
- GAPointsDT.Columns.Add("Y", GetType(Decimal))
-
- ' --- Determine grossArea points ----
- Dim pX(3) As Decimal
- Dim pY(3) As Decimal
-
- Dim columnNum As Integer = (i + Grating_Fill.numOfHorizontal) Mod Grating_Fill.numOfHorizontal
- If columnNum <> (Grating_Fill.numOfHorizontal - 1) Then
- ' Columnn: alla utom sista
- pX(0) = Data.grossAreaPoints.Rows(0)("X") + Grating_Fill.minLength * columnNum / 1000
- pX(1) = pX(0) + Grating_Fill.minLength / 1000
- pX(2) = pX(1)
- pX(3) = pX(0)
- Else
- ' Column: sista
- pX(0) = Data.grossAreaPoints.Rows(0)("X") + Grating_Fill.minLength * columnNum / 1000
- pX(1) = Data.grossAreaPoints.Rows(1)("X")
- pX(2) = pX(1)
- pX(3) = pX(0)
- End If
-
- Dim rowNum As Integer = Math.Floor(i / Grating_Fill.numOfHorizontal)
- If rowNum < Grating_Fill.numOfVertical - 2 Then
- ' Row: alla utom sista och näst sista
- pY(0) = Data.grossAreaPoints.Rows(0)("Y") - Grating_Fill.maxSingleWidth * rowNum / 1000
- pY(1) = pY(0)
- pY(2) = pY(0) - Grating_Fill.maxSingleWidth / 1000
- pY(3) = pY(2)
- ElseIf rowNum < Grating_Fill.numOfVertical - 1 Then
- ' Row: Näst sista
- pY(0) = Data.grossAreaPoints.Rows(0)("Y") - Grating_Fill.maxSingleWidth * rowNum / 1000
- pY(1) = pY(0)
- If Grating_Fill.widthRevNeeded = True Then
- pY(2) = pY(0) - Grating_Fill.revWidth / 1000
- Else
- pY(2) = pY(0) - Grating_Fill.maxSingleWidth / 1000
- End If
- pY(3) = pY(2)
- Else
- ' Row: Sista
- If Grating_Fill.widthRevNeeded = True Then
- pY(0) = Data.grossAreaPoints.Rows(0)("Y") - Grating_Fill.maxSingleWidth * (rowNum - 1) / 1000 - Grating_Fill.revWidth / 1000
- Else
- pY(0) = Data.grossAreaPoints.Rows(0)("Y") - Grating_Fill.maxSingleWidth * rowNum / 1000
- End If
- pY(1) = pY(0)
- pY(2) = Data.grossAreaPoints.Rows(3)("Y")
- pY(3) = pY(2)
- End If
-
- For j = 0 To 3
- Dim DR As DataRow = pointsDT.NewRow()
- DR("NAME") = "GA_" & j + 1
- DR("TYPE") = "GA"
- DR("X") = pX(j)
- DR("Y") = pY(j)
- pointsDT.Rows.Add(DR)
-
- DR = GAPointsDT.NewRow()
- DR("NAME") = "GA_" & j + 1
- DR("X") = pX(j)
- DR("Y") = pY(j)
- GAPointsDT.Rows.Add(DR)
- Next
-
- ' --- Add recess points ---
- Dim recessPointsDT As New DataTable
- recessPointsDT.Columns.Add("NAME", GetType(String))
- recessPointsDT.Columns.Add("TYPE", GetType(String))
- recessPointsDT.Columns.Add("SIDE", GetType(Integer))
- recessPointsDT.Columns.Add("X", GetType(Decimal))
- recessPointsDT.Columns.Add("Y", GetType(Decimal))
-
- For j = 1 To 4
- For Each DR As DataRow In Data.gratingPoints.Rows
- Dim recessDR As DataRow = recessPointsDT.NewRow()
- recessDR("NAME") = DR("NAME")
- recessDR("SIDE") = j
- recessDR("X") = DR("X")
- recessDR("Y") = DR("Y")
- Dim pointName As String = DR("NAME")
- If pointName.Substring(0, 2) = "CA" Then
- recessDR("TYPE") = "Corner Angle"
- ElseIf pointName.Substring(0, 2) = "CR" Then
- recessDR("TYPE") = "Corner Rectangle"
- ElseIf pointName.Substring(0, 2) = "CS" Then
- recessDR("TYPE") = "Side Rectangle"
- Else
- Continue For
- End If
-
- If j = 1 Then
- If DR("Y") = pointsDT.Rows(0)("Y") Then
- If DR("X") >= pointsDT.Rows(0)("X") AndAlso DR("X") <= pointsDT.Rows(1)("X") Then
- recessPointsDT.Rows.Add(recessDR)
- End If
- End If
- ElseIf j = 2 Then
- If DR("X") = pointsDT.Rows(1)("X") Then
- If DR("Y") <= pointsDT.Rows(1)("Y") AndAlso DR("Y") >= pointsDT.Rows(2)("Y") Then
- recessPointsDT.Rows.Add(recessDR)
- End If
- End If
- ElseIf j = 3 Then
- If DR("Y") = pointsDT.Rows(2)("Y") Then
- If DR("X") <= pointsDT.Rows(2)("X") AndAlso DR("X") >= pointsDT.Rows(3)("X") Then
- recessPointsDT.Rows.Add(recessDR)
- End If
- End If
- Else
- If DR("X") = pointsDT.Rows(3)("X") Then
- If DR("Y") >= pointsDT.Rows(3)("Y") AndAlso DR("Y") <= pointsDT.Rows(0)("Y") Then
- recessPointsDT.Rows.Add(recessDR)
- End If
- End If
- End If
- Next
- Next
-
- ' --- intersecting recesses ---
- For Each DR As DataRow In Data.recessData.Rows
- If DR("RECESS TYPE") = "ANGLE" Then
- Dim recessName As String = DR("NAME")
- Dim recessAlreadyOK As Boolean = False
- For Each DR2 As DataRow In recessPointsDT.Rows
- Dim pointName As String = DR2("NAME")
- If pointName.Substring(0, 3) = recessName Then
- recessAlreadyOK = True
- Exit For
- End If
- Next
- If recessAlreadyOK = True Then
- Continue For
- End If
-
- ' Recess points
- Dim p0(1) As Decimal
- Dim p1(1) As Decimal
- Dim p2(1) As Decimal
-
- p0(0) = Data.gratingPoints.Select("NAME = '" & recessName & "_1" & "'")(0)("X")
- p0(1) = Data.gratingPoints.Select("NAME = '" & recessName & "_1" & "'")(0)("Y")
-
- p1(0) = Data.gratingPoints.Select("NAME = '" & recessName & "_2" & "'")(0)("X")
- p1(1) = Data.gratingPoints.Select("NAME = '" & recessName & "_2" & "'")(0)("Y")
-
- If DR("CORNER") = 1 OrElse DR("CORNER") = 3 Then
- p2(0) = p0(0)
- p2(1) = p1(1)
- Else
- p2(0) = p1(0)
- p2(1) = p0(1)
- End If
-
- Dim pointsInRecess As New Dictionary(Of String, Boolean)
- For Each pDR As DataRow In pointsDT.Rows
- Dim gp(1) As Decimal
- gp(0) = pDR("X")
- gp(1) = pDR("Y")
-
- pointsInRecess.Add(pDR("NAME"), Calculate_Triangle_Bool(gp, p0, p1, p2))
- Next
-
- Dim numOfPInRec As Integer = 0
- For Each bool As Boolean In pointsInRecess.Values
- If bool = True Then
- numOfPInRec += 1
- End If
- Next
-
- If numOfPInRec = 0 OrElse numOfPInRec = 4 Then
- Continue For
- End If
-
- ' - Straight line equation: y = kx + m
- Dim k As Decimal = (p1(1) - p0(1)) / (p1(0) - p0(0))
- Dim m As Decimal = p0(1) - (k * p0(0))
-
- Dim npDR As DataRow
-
- Dim x1 As Decimal = (GAPointsDT.Rows(0)("Y") - m) / k
- If x1 > GAPointsDT.Rows(0)("X") AndAlso x1 < GAPointsDT.Rows(1)("X") Then
- ' lägg till på sida 1
- npDR = pointsDT.NewRow()
- npDR("NAME") = recessName & "_1" ' fixa
- npDR("TYPE") = "Recess CA"
- npDR("X") = x1
- npDR("Y") = GAPointsDT.Rows(0)("Y")
-
- Dim inIndex As Integer = Get_RowIndex(pointsDT, 1, npDR("X"), npDR("Y"), GAPointsDT)
-
- pointsDT.Rows.InsertAt(npDR, inIndex + 1)
- End If
-
- Dim y2 As Decimal = k * GAPointsDT.Rows(1)("X") + m
- If y2 < GAPointsDT.Rows(1)("Y") AndAlso y2 > GAPointsDT.Rows(2)("Y") Then
- ' lägg till på sida 2
- npDR = pointsDT.NewRow()
- npDR("NAME") = recessName & "_2" ' fixa
- npDR("TYPE") = "Recess CA"
- npDR("X") = GAPointsDT.Rows(1)("X")
- npDR("Y") = y2
-
- Dim inIndex As Integer = Get_RowIndex(pointsDT, 2, npDR("X"), npDR("Y"), GAPointsDT)
-
- pointsDT.Rows.InsertAt(npDR, inIndex + 1)
- End If
-
- Dim x3 As Decimal = (GAPointsDT.Rows(2)("Y") - m) / k
- If x3 < GAPointsDT.Rows(2)("X") AndAlso x3 > GAPointsDT.Rows(3)("X") Then
- ' lägg till på sida 3
- npDR = pointsDT.NewRow()
- npDR("NAME") = recessName & "_3" ' fixa
- npDR("TYPE") = "Recess CA"
- npDR("X") = x3
- npDR("Y") = GAPointsDT.Rows(2)("Y")
-
- Dim inIndex As Integer = Get_RowIndex(pointsDT, 3, npDR("X"), npDR("Y"), GAPointsDT)
-
- pointsDT.Rows.InsertAt(npDR, inIndex + 1)
- End If
-
- Dim y4 As Decimal = k * GAPointsDT.Rows(3)("X") + m
- If y4 > GAPointsDT.Rows(3)("Y") AndAlso y4 < GAPointsDT.Rows(0)("Y") Then
- ' lägg till på sida 4
- npDR = pointsDT.NewRow()
- npDR("NAME") = recessName & "_4" ' fixa
- npDR("TYPE") = "Recess CA"
- npDR("X") = GAPointsDT.Rows(3)("X")
- npDR("Y") = y4
-
- Dim inIndex As Integer = Get_RowIndex(pointsDT, 4, npDR("X"), npDR("Y"), GAPointsDT)
-
- pointsDT.Rows.InsertAt(npDR, inIndex + 1)
- End If
-
- For Each key As String In pointsInRecess.Keys
- If pointsInRecess(key) = True Then
- Dim removeIndex As Integer = 0
- For k = 0 To pointsDT.Rows.Count - 1
- If pointsDT.Rows(k)("NAME") = key Then
- removeIndex = k
- End If
- Next
- pointsDT.Rows.RemoveAt(removeIndex)
- End If
- Next
- End If
- Next
-
-
- ' --- Point on grating side - recesses ---
- For Each DR As DataRow In recessPointsDT.Rows
- If DR("TYPE") = "Corner Angle" Then
- Dim pointName As String = DR("NAME")
- If pointName.Split("_")(1) = 1 Then
- Dim DR3 As DataRow = pointsDT.NewRow()
- DR3("NAME") = DR("NAME")
- DR3("TYPE") = "Recess CA"
- DR3("X") = DR("X")
- DR3("Y") = DR("Y")
-
- Dim index As Integer = Get_RowIndex(pointsDT, DR("SIDE"), DR("X"), DR("Y"), GAPointsDT)
- pointsDT.Rows.InsertAt(DR3, index + 1)
-
- If pointsDT.Rows.Count > index + 2 Then
- Dim temp As String = pointsDT.Rows(index + 2)("NAME")
- If temp.Substring(0, 2) = "GA" Then
- pointsDT.Rows.RemoveAt(index + 2)
- End If
- Else
- Dim temp As String = pointsDT.Rows(0)("NAME")
- If temp.Substring(0, 2) = "GA" Then
- pointsDT.Rows.RemoveAt(0)
- End If
- End If
-
- 'Check if remove next point aswell (If angle crosses more than one grating)
-
- Dim cornerPoint(1) As Decimal
- Dim pointNumGA As Integer = DR("SIDE") + 2
- If pointNumGA > 4 Then
- pointNumGA -= 4
- End If
-
- cornerPoint(0) = GAPointsDT.Select("NAME = 'GA_" & pointNumGA & "'")(0)("X")
- cornerPoint(1) = GAPointsDT.Select("NAME = 'GA_" & pointNumGA & "'")(0)("Y")
-
- Create_SecondAnglePoint(pointsDT, DR, cornerPoint, GAPointsDT, recessPointsDT, "")
- Else
- Dim DR3 As DataRow = pointsDT.NewRow()
- DR3("NAME") = DR("NAME")
- DR3("TYPE") = "Recess CA"
- DR3("X") = DR("X")
- DR3("Y") = DR("Y")
-
- Dim index As Integer = Get_RowIndex(pointsDT, DR("SIDE"), DR("X"), DR("Y"), GAPointsDT)
- pointsDT.Rows.InsertAt(DR3, index + 1)
-
- Dim temp As String = pointsDT.Rows(index)("NAME")
- If temp.Substring(0, 2) = "GA" Then
- pointsDT.Rows.RemoveAt(index)
- End If
-
- Dim cornerPoint(1) As Decimal
- Dim pointNumGA As Integer = DR("SIDE") - 1
- If pointNumGA < 1 Then
- pointNumGA += 4
- End If
-
- cornerPoint(0) = GAPointsDT.Select("NAME = 'GA_" & pointNumGA & "'")(0)("X")
- cornerPoint(1) = GAPointsDT.Select("NAME = 'GA_" & pointNumGA & "'")(0)("Y")
-
- Create_SecondAnglePoint(pointsDT, DR, cornerPoint, GAPointsDT, recessPointsDT, "GA_" & pointNumGA)
- End If
- End If
- Next
-
- pointsDT.TableName = "Grating " & i & " - C" & columnNum & " R" & rowNum
- pointsDS.Tables.Add(pointsDT)
- Next
-
- Return pointsDS
- End Function
-
- Private Shared Function Get_RowIndex(pDT As DataTable, side As Integer, pX As Decimal, pY As Decimal, GApDT As DataTable)
-
- Dim rowName As String = ""
- Dim newX As Decimal = pX
- Dim newY As Decimal = pY
-
- If side = 1 Then
- Dim sidePoints = pDT.Select("Y = '" & pY & "'")
- If sidePoints.Length = 0 Then
- newX = GApDT.Select("NAME = 'GA_1'")(0)("X")
- End If
- For Each DR2 As DataRow In sidePoints
- If DR2("X") < pX Then
- rowName = DR2("NAME")
- Else
- newX = GApDT.Select("NAME = 'GA_1'")(0)("X")
- Exit For
- End If
- Next
- ElseIf side = 2 Then
- Dim sidePoints = pDT.Select("X = '" & pX & "'")
- If sidePoints.Length = 0 Then
- newY = GApDT.Select("NAME = 'GA_2'")(0)("Y")
- End If
- For Each DR2 As DataRow In sidePoints
- If DR2("Y") > pY Then
- rowName = DR2("NAME")
- Else
- newY = GApDT.Select("NAME = 'GA_2'")(0)("Y")
- Exit For
- End If
- Next
- ElseIf side = 3 Then
- Dim sidePoints = pDT.Select("Y = '" & pY & "'")
- If sidePoints.Length = 0 Then
- newX = GApDT.Select("NAME = 'GA_3'")(0)("X")
- End If
- For Each DR2 As DataRow In sidePoints
- If DR2("X") > pX Then
- rowName = DR2("NAME")
- Else
- newX = GApDT.Select("NAME = 'GA_3'")(0)("X")
- Exit For
- End If
- Next
- Else
- Dim sidePoints = pDT.Select("X = '" & pX & "'")
- If sidePoints.Length = 0 Then
- newY = GApDT.Select("NAME = 'GA_4'")(0)("Y")
- Else
- If sidePoints(0)("NAME") = "GA_1" Then
- Dim pointList As New List(Of DataRow)
- For i = 1 To sidePoints.Length - 1
- pointList.Add(sidePoints(i))
- Next
- pointList.Add(sidePoints(0))
-
- For Each DR2 As DataRow In pointList
- If DR2("Y") < pY Then
- rowName = DR2("NAME")
- Else
- newY = GApDT.Select("NAME = 'GA_4'")(0)("Y")
- Exit For
- End If
- Next
- Else
- For Each DR2 As DataRow In sidePoints
- If DR2("Y") < pY Then
- rowName = DR2("NAME")
- Else
- newY = GApDT.Select("NAME = 'GA_4'")(0)("Y")
- Exit For
- End If
- Next
- End If
- End If
- End If
-
- Dim index As Integer = 0
- If rowName = "" Then
- Dim newSide As Integer = side - 1
- If newSide = 0 Then
- newSide = 4
- End If
- index = Get_RowIndex(pDT, newSide, newX, newY, GApDT)
- Else
- For j = 0 To pDT.Rows.Count - 1
- If pDT.Rows(j)("NAME") = rowName Then
- index = j
- Exit For
- End If
- Next
- End If
-
- Return index
- End Function
-
- Private Shared Sub Create_SecondAnglePoint(pDT As DataTable, rpDR As DataRow, gp As Decimal(), GApDT As DataTable, rDT As DataTable, pNameToRemove As String)
- Dim p0(1) As Decimal
- Dim p1(1) As Decimal
- Dim p2(1) As Decimal
-
- Dim newDR As DataRow = pDT.NewRow
- newDR("TYPE") = "Recess CA"
-
- Dim side As Integer = 0
- Dim pointName As String = rpDR("NAME")
- If pointName.Split("_")(1) = 1 Then
- Dim DR = Data.gratingPoints.Select("NAME = '" & pointName.Split("_")(0) & "_2" & "'")
- newDR("NAME") = pointName.Split("_")(0) & "_2"
-
- p0(0) = rpDR("X")
- p0(1) = rpDR("Y")
-
- p2(0) = DR(0)("X")
- p2(1) = DR(0)("Y")
-
- If rpDR("SIDE") + 1 > 4 Then
- side = rpDR("SIDE") + 1 - 4
- Else
- side = rpDR("SIDE") + 1
- End If
- Else
- Dim DR = Data.gratingPoints.Select("NAME = '" & pointName.Split("_")(0) & "_1" & "'")
- newDR("NAME") = pointName.Split("_")(0) & "_1"
-
- p0(0) = rpDR("X")
- p0(1) = rpDR("Y")
-
- p2(0) = DR(0)("X")
- p2(1) = DR(0)("Y")
-
- If rpDR("SIDE") - 1 < 1 Then
- side = rpDR("SIDE") - 1 + 4
- Else
- side = rpDR("SIDE") - 1
- End If
- End If
-
- For Each rDR As DataRow In rDT.Rows
- If rDR("NAME") = newDR("NAME") Then
- Exit Sub
- End If
- Next
-
- If rpDR("SIDE") = 1 OrElse rpDR("SIDE") = 3 Then
- p1(0) = p2(0)
- p1(1) = p0(1)
- ElseIf rpDR("SIDE") = 2 OrElse rpDR("SIDE") = 4 Then
- p1(0) = p0(0)
- p1(1) = p2(1)
- End If
-
- Dim gpInside As Boolean = Calculate_Triangle_Bool(gp, p0, p1, p2)
-
- Dim insertIndex As Integer = 0
- If gpInside = False Then
- ' If false => new point at side rpDR("SIDE")+1
- If side = 1 Then
- Dim c As Decimal = GApDT.Select("NAME = 'GA_1'")(0)("Y") - rpDR("Y")
- Dim z As Decimal = Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("Y") - rpDR("Y")
- Dim x As Decimal = 0
- If pointName.Split("_")(1) = 1 Then
- x = Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("X") - GApDT.Select("NAME = 'GA_1'")(0)("X")
- newDR("X") = GApDT.Select("NAME = 'GA_1'")(0)("X") + c * x / z ' Triangle likformighet
- Else
- x = GApDT.Select("NAME = 'GA_2'")(0)("X") - Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("X")
- newDR("X") = GApDT.Select("NAME = 'GA_2'")(0)("X") - c * x / z ' Triangle likformighet
- End If
- newDR("Y") = GApDT.Select("NAME = 'GA_1'")(0)("Y")
- ElseIf side = 2 Then
- Dim c As Decimal = GApDT.Select("NAME = 'GA_2'")(0)("X") - rpDR("X")
- Dim z As Decimal = Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("X") - rpDR("X")
- Dim x As Decimal = 0
- If pointName.Split("_")(1) = 1 Then
- x = GApDT.Select("NAME = 'GA_2'")(0)("Y") - Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("Y")
- newDR("Y") = GApDT.Select("NAME = 'GA_2'")(0)("Y") - c * x / z ' Triangle likformighet
- Else
- x = Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("Y") - GApDT.Select("NAME = 'GA_3'")(0)("Y")
- newDR("Y") = GApDT.Select("NAME = 'GA_3'")(0)("Y") + c * x / z ' Triangle likformighet
- End If
- newDR("X") = GApDT.Select("NAME = 'GA_2'")(0)("X")
- ElseIf side = 3 Then
- Dim c As Decimal = rpDR("Y") - GApDT.Select("NAME = 'GA_3'")(0)("Y")
- Dim z As Decimal = rpDR("Y") - Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("Y")
- Dim x As Decimal = 0
- If pointName.Split("_")(1) = 1 Then
- x = GApDT.Select("NAME = 'GA_3'")(0)("X") - Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("X")
- newDR("X") = GApDT.Select("NAME = 'GA_3'")(0)("X") - c * x / z ' Triangle likformighet
- Else
- x = Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("X") - GApDT.Select("NAME = 'GA_4'")(0)("X")
- newDR("X") = GApDT.Select("NAME = 'GA_4'")(0)("X") + c * x / z ' Triangle likformighet
- End If
- newDR("Y") = GApDT.Select("NAME = 'GA_3'")(0)("Y")
- Else
- Dim c As Decimal = rpDR("X") - GApDT.Select("NAME = 'GA_4'")(0)("X")
- Dim z As Decimal = rpDR("X") - Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("X")
- Dim x As Decimal = 0
- If pointName.Split("_")(1) = 1 Then
- x = Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("Y") - GApDT.Select("NAME = 'GA_4'")(0)("Y")
- newDR("Y") = GApDT.Select("NAME = 'GA_4'")(0)("Y") + c * x / z ' Triangle likformighet
- Else
- x = GApDT.Select("NAME = 'GA_1'")(0)("Y") - Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("Y")
- newDR("Y") = GApDT.Select("NAME = 'GA_1'")(0)("Y") - c * x / z ' Triangle likformighet
- End If
- newDR("X") = GApDT.Select("NAME = 'GA_4'")(0)("X")
- End If
-
- newDR("X") = Math.Round(newDR("X"), 3)
- newDR("Y") = Math.Round(newDR("Y"), 3)
-
- insertIndex = Get_RowIndex(pDT, side, newDR("X"), newDR("Y"), GApDT) + 1
- Else
- ' If true => remove point gp and new point at side rpDR("SIDE")+2
- Dim temp As String = newDR("NAME")
- If temp.Split("_")(1) = 1 Then
- If side = 1 Then
- side = 4
- Else
- side -= 1
- End If
- Else
- If side = 4 Then
- side = 1
- Else
- side += 1
- End If
- End If
-
- If side = 1 Then
- Dim x As Decimal = rpDR("X") - Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("X")
- Dim y As Decimal = Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("Y") - rpDR("Y")
- Dim b As Decimal = 0
- If pointName.Split("_")(1) = 1 Then
- b = Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("Y") - GApDT.Select("NAME = 'GA_1'")(0)("Y")
- newDR("X") = GApDT.Select("NAME = 'GA_1'")(0)("X") + x * b / y - (GApDT.Select("NAME = 'GA_1'")(0)("X") - Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("X")) ' Triangle likformighet
- Else
- b = GApDT.Select("NAME = 'GA_2'")(0)("Y") - Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("Y")
- newDR("X") = GApDT.Select("NAME = 'GA_2'")(0)("X") - x * b / y + (Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("X") - GApDT.Select("NAME = 'GA_2'")(0)("X")) ' Triangle likformighet
- End If
- newDR("Y") = GApDT.Select("NAME = 'GA_1'")(0)("Y")
- ElseIf side = 2 Then
- Dim x As Decimal = Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("Y") - rpDR("Y")
- Dim y As Decimal = Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("X") - rpDR("X")
- Dim b As Decimal = 0
- If pointName.Split("_")(1) = 1 Then
- b = Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("X") - GApDT.Select("NAME = 'GA_2'")(0)("X")
- newDR("Y") = GApDT.Select("NAME = 'GA_2'")(0)("Y") - x * b / y + (Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("Y") - GApDT.Select("NAME = 'GA_2'")(0)("Y"))
- Else
- b = GApDT.Select("NAME = 'GA_3'")(0)("X") - Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("X")
- newDR("Y") = GApDT.Select("NAME = 'GA_3'")(0)("Y") + x * b / y - (GApDT.Select("NAME = 'GA_3'")(0)("Y") - Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("Y"))
- End If
- newDR("X") = GApDT.Select("NAME = 'GA_2'")(0)("X")
- ElseIf side = 3 Then
- Dim x As Decimal = Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("X") - rpDR("X")
- Dim y As Decimal = rpDR("Y") - Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("Y")
- Dim b As Decimal = 0
- If pointName.Split("_")(1) = 1 Then
- b = GApDT.Select("NAME = 'GA_3'")(0)("Y") - Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("Y")
- newDR("X") = GApDT.Select("NAME = 'GA_3'")(0)("X") - x * b / y + (Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("X") - GApDT.Select("NAME = 'GA_3'")(0)("X"))
- Else
- b = Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("Y") - GApDT.Select("NAME = 'GA_4'")(0)("Y")
- newDR("X") = GApDT.Select("NAME = 'GA_4'")(0)("X") + x * b / y - (GApDT.Select("NAME = 'GA_4'")(0)("X") - Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("X"))
- End If
- newDR("Y") = GApDT.Select("NAME = 'GA_3'")(0)("Y")
- Else
- Dim x As Decimal = rpDR("Y") - Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("Y")
- Dim y As Decimal = rpDR("X") - Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("X")
- Dim b As Decimal = 0
- If pointName.Split("_")(1) = 1 Then
- b = GApDT.Select("NAME = 'GA_4'")(0)("X") - Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("X")
- newDR("Y") = GApDT.Select("NAME = 'GA_4'")(0)("Y") + x * b / y - (GApDT.Select("NAME = 'GA_4'")(0)("Y") - Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("Y"))
- Else
- b = Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("X") - GApDT.Select("NAME = 'GA_1'")(0)("X")
- newDR("Y") = GApDT.Select("NAME = 'GA_1'")(0)("Y") - x * b / y + (Data.gratingPoints.Select("NAME = '" & newDR("NAME") & "'")(0)("Y") - GApDT.Select("NAME = 'GA_1'")(0)("Y"))
- End If
- newDR("X") = GApDT.Select("NAME = 'GA_4'")(0)("X")
- End If
-
- insertIndex = Get_RowIndex(pDT, side, newDR("X"), newDR("Y"), GApDT)
-
- pDT.Rows.InsertAt(newDR, insertIndex + 1)
-
- Dim removeIndex As Integer = 0
- For k = 0 To pDT.Rows.Count - 1
- If pDT.Rows(k)("NAME") = pNameToRemove Then
- removeIndex = k
- End If
- Next
-
- pDT.Rows.RemoveAt(removeIndex)
- End If
- End Sub
-
- Private Shared Function Calculate_Triangle_Bool(gp As Decimal(), p0 As Decimal(), p1 As Decimal(), p2 As Decimal())
-
- Dim s As Decimal = p0(1) * p2(0) - p0(0) * p2(1) + (p2(1) - p0(1)) * gp(0) + (p0(0) - p2(0)) * gp(1)
- Dim t As Decimal = p0(0) * p1(1) - p0(1) * p1(0) + (p0(1) - p1(1)) * gp(0) + (p1(0) - p0(0)) * gp(1)
-
- If (s < 0 AndAlso t >= 0) OrElse (s >= 0 AndAlso t < 0) Then
- Return False
- End If
-
- Dim area As Decimal = -p1(1) * p2(0) + p0(1) * (p2(0) - p1(0)) + p0(0) * (p1(1) - p2(1)) + p1(0) * p2(1)
-
- If area < 0 Then
- If s <= 0 AndAlso s + t >= area Then
- Return True
- Else
- Return False
- End If
- Else
- If s >= 0 AndAlso s + t <= area Then
- Return True
- Else
- Return False
- End If
- End If
- End Function
-End Class
diff --git a/Wardrobe/Wardrobe.vbproj b/Wardrobe/Wardrobe.vbproj
index 66ad6d6..7cd9864 100644
--- a/Wardrobe/Wardrobe.vbproj
+++ b/Wardrobe/Wardrobe.vbproj
@@ -120,13 +120,13 @@
-
-
+
+
+
-