diff --git a/HLCt/Parts/START.SLDPRT b/HLCt/Parts/START.SLDPRT index 6edee33..08bbe38 100644 Binary files a/HLCt/Parts/START.SLDPRT and b/HLCt/Parts/START.SLDPRT differ diff --git a/HLCt/Parts/~$START.SLDPRT b/HLCt/Parts/~$START.SLDPRT new file mode 100644 index 0000000..b07f2ee Binary files /dev/null and b/HLCt/Parts/~$START.SLDPRT differ diff --git a/Wardrobe/GUI/Individual.vb b/Wardrobe/GUI/Individual.vb index 71accf2..aae56b1 100644 --- a/Wardrobe/GUI/Individual.vb +++ b/Wardrobe/GUI/Individual.vb @@ -250,7 +250,7 @@ Public Class Individual Model_3D_Fill.BuildGrid() Else Model_3D.BuildGrating() - Drawing.Create_Model_For_Drawing() + 'Drawing.Create_Model_For_Drawing() End If End Sub diff --git a/Wardrobe/SolidWorks/Individual_Frame_3D.vb b/Wardrobe/SolidWorks/Individual_Frame_3D.vb index 180a159..66086de 100644 --- a/Wardrobe/SolidWorks/Individual_Frame_3D.vb +++ b/Wardrobe/SolidWorks/Individual_Frame_3D.vb @@ -1,17 +1,20 @@ Imports XCCLibrary +Imports SldWorks Public Class Individual_Frame_3D + Private Shared cuttingList As New Dictionary(Of Integer, Integer()) Private Shared designName As String + Private Shared sideFrameLengths As New Dictionary(Of String, Integer) Public Shared Sub Build_Frame(gratingParameters As DataRow, parentID As Integer) Dim frameDT As New DataTable frameDT = Generate_FrameData(gratingParameters) - Dim sideFrameLengths As New Dictionary(Of String, Integer) + 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 - Dim cuttingList As New Dictionary(Of Integer, Integer()) + cuttingList = Generate_CuttingList(frameDT, sideFrameLengths) Dim inst_ As Integer @@ -25,8 +28,8 @@ 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) - ExternalClass.modify_parameter_value("DP_WIDTH", inst_, 40) + ExternalClass.modify_parameter_value("DP_HEIGHT", inst_, 30) 'FIXA + 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")) @@ -283,4 +286,55 @@ Public Class Individual_Frame_3D Return cuttingList End Function + + Public Shared Sub Generate_End_Frame_Piece() + 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 Part = swApp.OpenDoc6(Settings.HLCtFolder & "\HLCt\frame_l_straight.SLDPRT", 1, 0, "", longstatus, longwarnings) + + longstatus = Part.SaveAs3(Individual.filepath & "\Temp\frame_l_end_piece" & j + 1 & ".SLDPRT", 0, 0) 'FIXA ettan + + Dim swEquationMgr As EquationMgr + swEquationMgr = Part.GetEquationMgr() + + Dim counter As String = 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) + Next + End Sub End Class diff --git a/Wardrobe/SolidWorks/Individual_Frame_Drawing.vb b/Wardrobe/SolidWorks/Individual_Frame_Drawing.vb new file mode 100644 index 0000000..b229ec2 --- /dev/null +++ b/Wardrobe/SolidWorks/Individual_Frame_Drawing.vb @@ -0,0 +1,11 @@ +Imports SldWorks +Public Class Individual_Frame_Drawing + Public Shared Sub Create_Assemblies() + + + + + End Sub + + +End Class diff --git a/Wardrobe/SolidWorks/Model_3D.vb b/Wardrobe/SolidWorks/Model_3D.vb index b07f561..27fd9c3 100644 --- a/Wardrobe/SolidWorks/Model_3D.vb +++ b/Wardrobe/SolidWorks/Model_3D.vb @@ -45,6 +45,7 @@ Public Class Model_3D groupClass.InstantiateGroup(designName, grNr, "START") Recess_Indent() + Individual_Frame_3D.Generate_End_Frame_Piece() End Sub Private Shared Sub Inst_Recesses(parentID As Integer, gratingParameters As DataRow, recessDR As DataRow) @@ -221,7 +222,7 @@ Public Class Model_3D Dim recessParts = partDT.Select("parentName = '" & gratingPartName & "'") Dim recessPartName As String - For i = 0 To recessParts.Count - 1 + For i = 0 To recessParts.Count - 100 'FIXA (Ska vara "-1") Assembly.ClearSelection2(True) ' Recess part @@ -262,6 +263,16 @@ Public Class Model_3D Assembly.ClearSelection2(True) Next Next + Assembly.EditAssembly + Dim swErrors As Integer + Dim swWarnings As Integer + + components = Assembly.GetComponents(True) + For i = 0 To UBound(components) + Dim partDoc = components(i).GetModelDoc2() + boolstatus = partDoc.Save3(1, swErrors, swWarnings) + Next + boolstatus = Assembly.Save3(1, swErrors, swWarnings) End Sub End Class diff --git a/Wardrobe/Wardrobe.vbproj b/Wardrobe/Wardrobe.vbproj index 26d51a7..7401812 100644 --- a/Wardrobe/Wardrobe.vbproj +++ b/Wardrobe/Wardrobe.vbproj @@ -121,6 +121,7 @@ +