517 lines
24 KiB
VB.net
517 lines
24 KiB
VB.net
Imports XCCLibrary
|
|
Imports SldWorks
|
|
Public Class Frame_3D
|
|
Private Shared designName As String
|
|
Public Shared frameDT As New DataTable
|
|
Public Shared cuttingList As New Dictionary(Of Integer, Integer())
|
|
Public Shared sideFrameLengths As New Dictionary(Of String, Integer)
|
|
|
|
Public Shared Sub Build_Frame(gratingParameters As DataRow, parentID As Integer)
|
|
frameDT = Generate_FrameData(gratingParameters)
|
|
|
|
For i = 0 To frameDT.Rows.Count - 1
|
|
If frameDT.Rows(i)("TYPE") = "SIDE" Then
|
|
sideFrameLengths.Add("Frame " & sideFrameLengths.Count + 1, frameDT.Rows(i)("LENGTH"))
|
|
End If
|
|
Next
|
|
|
|
cuttingList = Generate_CuttingList(frameDT, sideFrameLengths)
|
|
|
|
Dim inst_ As Integer
|
|
|
|
Dim sideFrame As Integer = 0
|
|
For i = 0 To frameDT.Rows.Count - 1
|
|
Dim HLCtName As String
|
|
If frameDT.Rows(i)("TYPE") = "CORNER" Then
|
|
HLCtName = "frame_l_corner"
|
|
Else
|
|
HLCtName = "frame_l_straight"
|
|
End If
|
|
inst_ = ExternalClass.instantiate_parts(parentID, HLCtName, "")
|
|
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"))
|
|
ExternalClass.modify_parameter_value("DP_OFFSET_W", inst_, frameDT.Rows(i)("OFFSET_W"))
|
|
ExternalClass.modify_parameter_value("DP_OFFSET_L", inst_, frameDT.Rows(i)("OFFSET_L"))
|
|
|
|
If frameDT.Rows(i)("TYPE") = "SIDE" Then
|
|
sideFrame += 1
|
|
Dim cutOffset1 As Integer = 0
|
|
For j = 0 To cuttingList.Count - 1
|
|
For k = 0 To cuttingList.ElementAt(j).Value.Count - 1
|
|
If sideFrame = cuttingList.ElementAt(j).Value(k) Then
|
|
For l = 1 To k
|
|
cutOffset1 += sideFrameLengths("Frame " & cuttingList.ElementAt(j).Value(l - 1))
|
|
Next
|
|
End If
|
|
Next
|
|
Next
|
|
|
|
|
|
ExternalClass.modify_parameter_value("DP_CUTOFFSET1", inst_, cutOffset1)
|
|
ExternalClass.modify_parameter_value("DP_CUTOFFSET2", inst_, 2000 - frameDT.Rows(i)("LENGTH") - cutOffset1)
|
|
End If
|
|
Next
|
|
|
|
End Sub
|
|
|
|
Private Shared Function Generate_FrameData(gratingParameters As DataRow)
|
|
Dim DT As New DataTable
|
|
DT.Columns.Add("TYPE", GetType(String))
|
|
DT.Columns.Add("LENGTH", GetType(Integer))
|
|
DT.Columns.Add("SIDE", GetType(Integer))
|
|
DT.Columns.Add("CORNER", GetType(Integer))
|
|
DT.Columns.Add("ROTATION", GetType(Integer))
|
|
DT.Columns.Add("OFFSET_W", GetType(Integer))
|
|
DT.Columns.Add("OFFSET_L", GetType(Integer))
|
|
Dim DTRow As DataRow
|
|
|
|
Dim corners As New Dictionary(Of String, Boolean)
|
|
|
|
For i = 0 To Data.gratingPoints.Rows.Count - 1
|
|
|
|
Dim i2, i0 As Integer
|
|
If i = 0 Then
|
|
i0 = Data.gratingPoints.Rows.Count - 1
|
|
Else
|
|
i0 = i - 1
|
|
End If
|
|
If i = Data.gratingPoints.Rows.Count - 1 Then
|
|
i2 = 0
|
|
Else
|
|
i2 = i + 1
|
|
End If
|
|
|
|
If Data.gratingPoints.Rows(i)("RECESS OK") Then
|
|
Dim firstOK, secondOK As Boolean
|
|
|
|
If Data.gratingPoints.Rows(i)("X") = Data.gratingPoints.Rows(i0)("X") Then
|
|
If Math.Abs(Data.gratingPoints.Rows(i)("Y") - Data.gratingPoints.Rows(i0)("Y")) * 1000 >= 210 Then
|
|
firstOK = True
|
|
Else
|
|
firstOK = False
|
|
End If
|
|
Else
|
|
If Math.Abs(Data.gratingPoints.Rows(i)("X") - Data.gratingPoints.Rows(i0)("X")) * 1000 >= 210 Then
|
|
firstOK = True
|
|
Else
|
|
firstOK = False
|
|
End If
|
|
End If
|
|
|
|
If Data.gratingPoints.Rows(i)("X") = Data.gratingPoints.Rows(i2)("X") Then
|
|
If Math.Abs(Data.gratingPoints.Rows(i)("Y") - Data.gratingPoints.Rows(i2)("Y")) * 1000 >= 210 Then
|
|
secondOK = True
|
|
Else
|
|
secondOK = False
|
|
End If
|
|
Else
|
|
If Math.Abs(Data.gratingPoints.Rows(i)("X") - Data.gratingPoints.Rows(i2)("X")) * 1000 >= 210 Then
|
|
secondOK = True
|
|
Else
|
|
secondOK = False
|
|
End If
|
|
End If
|
|
|
|
If firstOK = True AndAlso secondOK = True Then
|
|
corners.Add(Data.gratingPoints.Rows(i)("NAME"), True)
|
|
DTRow = DT.NewRow
|
|
DTRow("TYPE") = "CORNER"
|
|
DTRow("CORNER") = Data.gratingPoints.Rows(i)("QUADRANT")
|
|
DTRow("ROTATION") = (Data.gratingPoints.Rows(i)("QUADRANT") - 1) * 90
|
|
If DTRow("CORNER") = 1 Then
|
|
DTRow("OFFSET_W") = Data.gratingW 'gratingParameters("WIDTH")
|
|
DTRow("OFFSET_L") = 0
|
|
ElseIf DTRow("CORNER") = 2 Then
|
|
DTRow("OFFSET_W") = Data.gratingW 'gratingParameters("WIDTH")
|
|
DTRow("OFFSET_L") = gratingParameters("LENGTH")
|
|
ElseIf DTRow("CORNER") = 3 Then
|
|
DTRow("OFFSET_W") = 0
|
|
DTRow("OFFSET_L") = gratingParameters("LENGTH")
|
|
Else
|
|
DTRow("OFFSET_W") = 0
|
|
DTRow("OFFSET_L") = 0
|
|
End If
|
|
DT.Rows.Add(DTRow)
|
|
Else
|
|
corners.Add(Data.gratingPoints.Rows(i)("NAME"), False)
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
For i = 0 To Data.gratingPoints.Rows.Count - 1
|
|
Dim i2 As Integer
|
|
If i = Data.gratingPoints.Rows.Count - 1 Then
|
|
i2 = 0
|
|
Else
|
|
i2 = i + 1
|
|
End If
|
|
|
|
Dim sideFrame As Boolean = False
|
|
If Data.gratingPoints.Rows(i)("X") = Data.gratingPoints.Rows(i2)("X") Then
|
|
If Data.gratingPoints.Rows(i)("X") = Data.grossAreaPoints.Rows(0)("X") Or Data.gratingPoints.Rows(i)("X") = Data.grossAreaPoints.Rows(1)("X") Then
|
|
sideFrame = True
|
|
End If
|
|
ElseIf Data.gratingPoints.Rows(i)("Y") = Data.gratingPoints.Rows(i2)("Y") Then
|
|
If Data.gratingPoints.Rows(i)("Y") = Data.grossAreaPoints.Rows(0)("Y") Or Data.gratingPoints.Rows(i)("Y") = Data.grossAreaPoints.Rows(3)("Y") Then
|
|
sideFrame = True
|
|
End If
|
|
End If
|
|
|
|
If sideFrame = True Then
|
|
DTRow = DT.NewRow
|
|
DTRow("TYPE") = "SIDE"
|
|
|
|
Dim extraCorner1 As Integer = 0
|
|
Dim extraCorner2 As Integer = 0
|
|
Dim numOfP As Integer = 0
|
|
If Data.gratingPoints.Rows(i)("NAME").substring(0, 1) = "P" AndAlso Data.gratingPoints.Rows(i2)("NAME").substring(0, 1) = "P" Then
|
|
numOfP = 2
|
|
If corners(Data.gratingPoints.Rows(i)("NAME")) = False Then
|
|
extraCorner1 = 200
|
|
End If
|
|
If corners(Data.gratingPoints.Rows(i2)("NAME")) = False Then
|
|
extraCorner2 = 200
|
|
End If
|
|
ElseIf Data.gratingPoints.Rows(i)("NAME").substring(0, 1) = "P" Then
|
|
numOfP = 1
|
|
If corners(Data.gratingPoints.Rows(i)("NAME")) = False Then
|
|
extraCorner1 = 200
|
|
End If
|
|
ElseIf Data.gratingPoints.Rows(i2)("NAME").substring(0, 1) = "P" Then
|
|
numOfP = 1
|
|
If corners(Data.gratingPoints.Rows(i2)("NAME")) = False Then
|
|
extraCorner2 = 200
|
|
End If
|
|
End If
|
|
|
|
If Data.gratingPoints.Rows(i)("X") = Data.gratingPoints.Rows(i2)("X") Then
|
|
If Data.gratingPoints.Rows(i)("Y") > Data.gratingPoints.Rows(i2)("Y") Then
|
|
DTRow("SIDE") = 3
|
|
DTRow("LENGTH") = (Data.gratingPoints.Rows(i)("Y") - Data.gratingPoints.Rows(i2)("Y")) * 1000 - 20 - numOfP * 200 + extraCorner1 + extraCorner2
|
|
If Data.gratingPoints.Rows(i2)("NAME").substring(0, 1) = "P" Then
|
|
DTRow("OFFSET_W") = 210 - extraCorner2
|
|
Else
|
|
DTRow("OFFSET_W") = Data.gratingW / 2 + Data.gratingPoints.Rows(i2)("Y") * 1000 + 10
|
|
End If
|
|
DTRow("OFFSET_L") = gratingParameters("LENGTH")
|
|
Else
|
|
DTRow("SIDE") = 1
|
|
DTRow("LENGTH") = (Data.gratingPoints.Rows(i2)("Y") - Data.gratingPoints.Rows(i)("Y")) * 1000 - 20 - numOfP * 200 + extraCorner1 + extraCorner2
|
|
If Data.gratingPoints.Rows(i)("NAME").substring(0, 1) = "P" Then
|
|
DTRow("OFFSET_W") = DTRow("LENGTH") + 210 - extraCorner1
|
|
Else
|
|
DTRow("OFFSET_W") = DTRow("LENGTH") + Data.gratingW / 2 + Data.gratingPoints.Rows(i)("Y") * 1000 + 10
|
|
End If
|
|
DTRow("OFFSET_L") = 0
|
|
End If
|
|
Else
|
|
If Data.gratingPoints.Rows(i)("X") > Data.gratingPoints.Rows(i2)("X") Then
|
|
DTRow("SIDE") = 4
|
|
DTRow("LENGTH") = (Data.gratingPoints.Rows(i)("X") - Data.gratingPoints.Rows(i2)("X")) * 1000 - 20 - numOfP * 200 + extraCorner1 + extraCorner2
|
|
DTRow("OFFSET_W") = 0
|
|
If Data.gratingPoints.Rows(i2)("NAME").substring(0, 1) = "P" Then
|
|
DTRow("OFFSET_L") = 210 - extraCorner2
|
|
Else
|
|
DTRow("OFFSET_L") = Data.gratingL / 2 + Data.gratingPoints.Rows(i2)("X") * 1000 + 10
|
|
End If
|
|
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") = Data.gratingW 'gratingParameters("WIDTH")
|
|
If Data.gratingPoints.Rows(i)("NAME").substring(0, 1) = "P" Then
|
|
DTRow("OFFSET_L") = DTRow("LENGTH") + 210 - extraCorner1
|
|
Else
|
|
DTRow("OFFSET_L") = DTRow("LENGTH") + Data.gratingL / 2 + Data.gratingPoints.Rows(i)("X") * 1000 + 10
|
|
End If
|
|
End If
|
|
End If
|
|
DTRow("ROTATION") = 360 - DTRow("SIDE") * 90
|
|
|
|
If DTRow("LENGTH") >= 125 AndAlso DTRow("LENGTH") <= 2000 Then
|
|
DT.Rows.Add(DTRow)
|
|
ElseIf DTRow("LENGTH") > 2000 Then
|
|
Dim numOfRows As Integer = Math.Floor(CDec(DTRow("LENGTH")) / 2000) + 1
|
|
Dim DTRowList As New List(Of DataRow)
|
|
For j = 1 To numOfRows
|
|
Dim DTRow1 As DataRow = DT.NewRow
|
|
DTRowList.Add(DTRow1)
|
|
Next
|
|
|
|
Dim offsetDir As String = ""
|
|
Dim addOffset As Boolean
|
|
For Each DC As DataColumn In DT.Columns
|
|
If DC.ColumnName = "LENGTH" Then
|
|
For j = 0 To DTRowList.Count - 1
|
|
If j = DTRowList.Count - 1 Then
|
|
DTRowList(j)(DC.ColumnName) = DTRow("LENGTH") - (j * 2000)
|
|
Else
|
|
DTRowList(j)(DC.ColumnName) = 2000
|
|
End If
|
|
Next
|
|
ElseIf DC.ColumnName = "SIDE" Then
|
|
For j = 0 To DTRowList.Count - 1
|
|
DTRowList(j)(DC.ColumnName) = DTRow("SIDE")
|
|
Next
|
|
If DTRow("SIDE") = 1 Then
|
|
offsetDir = "OFFSET_W"
|
|
addOffset = False
|
|
ElseIf DTRow("SIDE") = 2 Then
|
|
offsetDir = "OFFSET_L"
|
|
addOffset = False
|
|
ElseIf DTRow("SIDE") = 3 Then
|
|
offsetDir = "OFFSET_W"
|
|
addOffset = True
|
|
Else
|
|
offsetDir = "OFFSET_L"
|
|
addOffset = True
|
|
End If
|
|
|
|
ElseIf DC.ColumnName = offsetDir Then
|
|
For j = 0 To DTRowList.Count - 1
|
|
If addOffset = True Then
|
|
DTRowList(j)(DC.ColumnName) = DTRow(offsetDir) + j * 2000
|
|
Else
|
|
DTRowList(j)(DC.ColumnName) = DTRow(offsetDir) - j * 2000
|
|
End If
|
|
Next
|
|
Else
|
|
For j = 0 To DTRowList.Count - 1
|
|
DTRowList(j)(DC.ColumnName) = DTRow(DC.ColumnName)
|
|
Next
|
|
End If
|
|
Next
|
|
For j = 0 To DTRowList.Count - 1
|
|
DT.Rows.Add(DTRowList(j))
|
|
Next
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
Return DT
|
|
End Function
|
|
|
|
Private Shared Function Generate_CuttingList(frameDT As DataTable, sideFrameLengths As Dictionary(Of String, Integer))
|
|
Dim frameLengths As New Dictionary(Of String, Integer)
|
|
For i = 0 To sideFrameLengths.Count - 1
|
|
frameLengths.Add(sideFrameLengths.ElementAt(i).Key, sideFrameLengths.ElementAt(i).Value)
|
|
Next
|
|
|
|
Dim cuttingList As New Dictionary(Of Integer, Integer())
|
|
|
|
While frameLengths.Count > 0
|
|
Dim frameCutList As New Dictionary(Of String, Integer)
|
|
|
|
Dim longestFrame As Integer = 0
|
|
Dim longestFrameKey As String = ""
|
|
For i = 0 To frameLengths.Count - 1
|
|
If frameLengths.ElementAt(i).Value > longestFrame Then
|
|
longestFrame = frameLengths.ElementAt(i).Value
|
|
longestFrameKey = frameLengths.ElementAt(i).Key
|
|
End If
|
|
Next
|
|
frameCutList.Add(longestFrameKey, longestFrame)
|
|
frameLengths.Remove(longestFrameKey)
|
|
|
|
For i = 0 To 1000
|
|
Dim lengthRemaining As Integer = 2000
|
|
For j = 0 To frameCutList.Count - 1
|
|
lengthRemaining -= frameCutList.ElementAt(j).Value
|
|
Next
|
|
|
|
Dim restLength As Integer = 2000
|
|
Dim frameID As New List(Of String)
|
|
For j = 0 To frameLengths.Count - 1
|
|
If lengthRemaining - frameLengths.ElementAt(j).Value >= 0 AndAlso lengthRemaining - frameLengths.ElementAt(j).Value < restLength Then
|
|
restLength = lengthRemaining - frameLengths.ElementAt(j).Value
|
|
frameID.Clear()
|
|
frameID.Add(frameLengths.ElementAt(j).Key)
|
|
End If
|
|
Next
|
|
|
|
If frameID.Count = 0 Then
|
|
Exit For
|
|
Else
|
|
Dim frameCombDS As New DataSet
|
|
For l = 2 To frameLengths.Count
|
|
Dim frameCombDT As New DataTable
|
|
|
|
Dim numOfValues As Integer = l
|
|
Dim numOfComb As Integer = Calculate_Factorial(frameLengths.Count) / (Calculate_Factorial(numOfValues) * Calculate_Factorial(frameLengths.Count - numOfValues))
|
|
|
|
For j = 1 To numOfValues
|
|
frameCombDT.Columns.Add("Enum " & j, GetType(Integer))
|
|
Next
|
|
For j = 1 To numOfValues
|
|
frameCombDT.Columns.Add("ID " & j, GetType(Integer))
|
|
Next
|
|
frameCombDT.Columns.Add("Combined Length", GetType(Integer))
|
|
|
|
Dim frameCombDR As DataRow = frameCombDT.NewRow
|
|
Dim combLength As Integer = 0
|
|
For j = 1 To numOfValues
|
|
frameCombDR("Enum " & j) = j
|
|
frameCombDR("ID " & j) = CInt(frameLengths.ElementAt(j - 1).Key.Split(" ")(1))
|
|
combLength += frameLengths.ElementAt(j - 1).Value
|
|
Next
|
|
frameCombDR("Combined Length") = combLength
|
|
frameCombDT.Rows.Add(frameCombDR)
|
|
|
|
For j = 1 To numOfComb - 1
|
|
frameCombDR = frameCombDT.NewRow
|
|
|
|
If frameCombDT.Rows(j - 1)("Enum " & numOfValues) < frameLengths.Count Then
|
|
combLength = 0
|
|
For k = 1 To numOfValues
|
|
If k = numOfValues Then
|
|
frameCombDR("Enum " & k) = frameCombDT.Rows(j - 1)("Enum " & k) + 1
|
|
frameCombDR("ID " & k) = CInt(frameLengths.ElementAt(frameCombDR("Enum " & k) - 1).Key.Split(" ")(1))
|
|
Else
|
|
frameCombDR("Enum " & k) = frameCombDT.Rows(j - 1)("Enum " & k)
|
|
frameCombDR("ID " & k) = frameCombDT.Rows(j - 1)("ID " & k)
|
|
End If
|
|
combLength += frameLengths.ElementAt(frameCombDR("Enum " & k) - 1).Value
|
|
Next
|
|
frameCombDR("Combined Length") = combLength
|
|
|
|
Else
|
|
Dim frameEnum As Integer
|
|
For k = numOfValues To 1 Step -1
|
|
If frameCombDT.Rows(j - 1)("Enum " & k) < frameLengths.Count - (numOfValues - k) Then
|
|
frameEnum = k
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
combLength = 0
|
|
For k = 1 To numOfValues
|
|
If k = frameEnum Then
|
|
frameCombDR("Enum " & k) = frameCombDT.Rows(j - 1)("Enum " & k) + 1
|
|
frameCombDR("ID " & k) = CInt(frameLengths.ElementAt(frameCombDR("Enum " & k) - 1).Key.Split(" ")(1))
|
|
ElseIf k > frameEnum Then
|
|
frameCombDR("Enum " & k) = frameCombDR("Enum " & k - 1) + 1
|
|
frameCombDR("ID " & k) = CInt(frameLengths.ElementAt(frameCombDR("Enum " & k) - 1).Key.Split(" ")(1))
|
|
Else
|
|
frameCombDR("Enum " & k) = frameCombDT.Rows(j - 1)("Enum " & k)
|
|
frameCombDR("ID " & k) = frameCombDT.Rows(j - 1)("ID " & k)
|
|
End If
|
|
combLength += frameLengths.ElementAt(frameCombDR("Enum " & k) - 1).Value
|
|
Next
|
|
frameCombDR("Combined Length") = combLength
|
|
End If
|
|
|
|
frameCombDT.Rows.Add(frameCombDR)
|
|
Next
|
|
frameCombDS.Tables.Add(frameCombDT)
|
|
Next
|
|
|
|
For j = 0 To frameCombDS.Tables.Count - 1
|
|
For Each DR As DataRow In frameCombDS.Tables(j).Rows
|
|
If lengthRemaining - DR("Combined Length") >= 0 AndAlso lengthRemaining - DR("Combined Length") < restLength Then
|
|
restLength = lengthRemaining - DR("Combined Length")
|
|
frameID.Clear()
|
|
For k = 1 To j + 2
|
|
frameID.Add("Frame " & DR("ID " & k))
|
|
Next
|
|
End If
|
|
Next
|
|
Next
|
|
|
|
For j = 0 To frameID.Count - 1
|
|
frameCutList.Add(frameID.ElementAt(j), frameLengths(frameID.ElementAt(j)))
|
|
frameLengths.Remove(frameID.ElementAt(j))
|
|
Next
|
|
End If
|
|
Next
|
|
|
|
Dim cutFrameIDs(frameCutList.Count - 1) As Integer
|
|
For i = 0 To frameCutList.Count - 1
|
|
cutFrameIDs(i) = frameCutList.ElementAt(i).Key.Split(" ")(1)
|
|
Next
|
|
|
|
cuttingList.Add(cuttingList.Count + 1, cutFrameIDs)
|
|
End While
|
|
|
|
|
|
Return cuttingList
|
|
End Function
|
|
|
|
Private Shared Function Calculate_Factorial(num As Integer)
|
|
Dim result As Integer
|
|
If num = 0 Then
|
|
result = 1
|
|
Else
|
|
result = num
|
|
num -= 1
|
|
While num > 1
|
|
result = result * num
|
|
num -= 1
|
|
End While
|
|
End If
|
|
|
|
Return result
|
|
End Function
|
|
|
|
Public Shared Sub Generate_End_Frame_Pieces()
|
|
Dim swApp As SldWorks.SldWorks
|
|
swApp = CType(System.Runtime.InteropServices.Marshal.GetActiveObject("SldWorks.Application"), SldWorks.SldWorks)
|
|
Dim boolstatus As Boolean
|
|
Dim longstatus As Integer, longwarnings As Integer
|
|
|
|
For j = 0 To cuttingList.Count - 1
|
|
Dim endPieceLength As Integer = 2000
|
|
For k = 0 To cuttingList.ElementAt(j).Value.Count - 1
|
|
endPieceLength -= sideFrameLengths("Frame " & cuttingList.ElementAt(j).Value(k))
|
|
Next
|
|
|
|
|
|
If endPieceLength > 0 Then
|
|
Dim Part = swApp.OpenDoc6(Settings.HLCtFolder & "\HLCt\frame_l_straight.SLDPRT", 1, 0, "", longstatus, longwarnings)
|
|
|
|
longstatus = Part.SaveAs3(Settings.folderPaths("object_" & Data.objectNum & "_models3D_frames_sw_support") & "\FRAME_L_END_PIECE" & j + 1 & ".SLDPRT", 0, 0)
|
|
|
|
Dim swEquationMgr As EquationMgr
|
|
swEquationMgr = Part.GetEquationMgr()
|
|
|
|
Dim counter As Integer = 0
|
|
|
|
For i = 0 To swEquationMgr.GetCount() - 1
|
|
Dim equationName = swEquationMgr.Equation(i)
|
|
|
|
Dim tempName = equationName.Substring(1, equationName.Length - 2)
|
|
tempName = tempName.Split("""")(0)
|
|
|
|
equationName = equationName.Split("=")(0) & "= "
|
|
If tempName = "DP_HEIGHT" Then
|
|
swEquationMgr.Equation(i) = equationName & 30 'FIXA
|
|
counter += 1
|
|
ElseIf tempName = "DP_WIDTH" Then
|
|
swEquationMgr.Equation(i) = equationName & 40 'FIXA
|
|
counter += 1
|
|
ElseIf tempName = "DP_CUTOFFSET1" Then
|
|
Dim cutLength As Integer = 0
|
|
For k = 0 To cuttingList.ElementAt(j).Value.Count - 1
|
|
cutLength += sideFrameLengths("Frame " & cuttingList.ElementAt(j).Value(k))
|
|
Next
|
|
swEquationMgr.Equation(i) = equationName & cutLength
|
|
counter += 1
|
|
ElseIf tempName.Split("_")(0) = "DP" Then
|
|
swEquationMgr.Equation(i) = equationName & 0
|
|
counter += 1
|
|
End If
|
|
'If counter = 7 Then
|
|
' Exit For
|
|
'End If
|
|
Next
|
|
boolstatus = Part.EditRebuild3()
|
|
Dim swErrors As Integer
|
|
Dim swWarnings As Integer
|
|
boolstatus = Part.Save3(1, swErrors, swWarnings)
|
|
|
|
swApp.CloseDoc(Settings.folderPaths("object_" & Data.objectNum & "_models3D_frames_sw_support") & "\FRAME_L_END_PIECE" & j + 1 & ".SLDPRT")
|
|
End If
|
|
Next
|
|
End Sub
|
|
End Class
|