diff --git a/HLCt/Parts/START.SLDPRT b/HLCt/Parts/START.SLDPRT index dc2aec7..2f43324 100644 Binary files a/HLCt/Parts/START.SLDPRT and b/HLCt/Parts/START.SLDPRT differ diff --git a/Wardrobe/GUI/Individual.vb b/Wardrobe/GUI/Individual.vb index 19f421e..0980d98 100644 --- a/Wardrobe/GUI/Individual.vb +++ b/Wardrobe/GUI/Individual.vb @@ -56,6 +56,9 @@ Public Class Individual Me.ComboBox_Width.Visible = True Me.TextBox_Width.Visible = False + + 'CheckBox_3DModel.Checked = True + 'CheckBox_3DModel.Enabled = False End Sub Private Sub Init_Multiple() @@ -321,6 +324,8 @@ Public Class Individual If User_Input.addInstructions = True Then If User_Input.addFrame = True AndAlso simplifiedWithFrameCreated = False Then Multiple_3D_Simplified.Build_Grid(True) + ElseIf simplifiedWithFrameCreated = False Then + Multiple_3D_Simplified.Build_Grid(False) End If If User_Input.addFrame = True Then Instructions.Generate_Instructions(True) @@ -330,8 +335,45 @@ Public Class Individual End If Else - Individual_3D.BuildGrating() - Individual_Drawing.Create_Model_For_Drawing() + Dim frameCreated As Boolean = False + If User_Input.add3DGrating = True Then + Individual_3D.BuildGrating() + frameCreated = True + End If + + If User_Input.addGratingDrawing = True Then + Individual_Drawing.Generate_Drawing() + End If + + Dim simplifiedWithFrameCreated As Boolean = False + If User_Input.addFrameDrawing = True Then + If frameCreated = False Then + Individual_3D_Simplified.Build_Simplified(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 + Individual_3D_Simplified.Build_Simplified(True) + ElseIf simplifiedWithFrameCreated = False Then + Individual_3D_Simplified.Build_Simplified(False) + End If + If User_Input.addFrame = True Then + Instructions.Generate_Instructions(True) + Else + Instructions.Generate_Instructions(False) + End If + End If + End If End Sub diff --git a/Wardrobe/SolidWorks/Frame_Drawing.vb b/Wardrobe/SolidWorks/Frame_Drawing.vb index ebb296c..8544f3d 100644 --- a/Wardrobe/SolidWorks/Frame_Drawing.vb +++ b/Wardrobe/SolidWorks/Frame_Drawing.vb @@ -17,7 +17,7 @@ Public Class Frame_Drawing 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'") + frameComponents = Individual_3D_Simplified.partDT.Select("partType = 'frame_l_straight'") End If End If diff --git a/Wardrobe/SolidWorks/Individual_3D.vb b/Wardrobe/SolidWorks/Individual_3D.vb index 6736524..3c07c14 100644 --- a/Wardrobe/SolidWorks/Individual_3D.vb +++ b/Wardrobe/SolidWorks/Individual_3D.vb @@ -39,7 +39,9 @@ Public Class Individual_3D Inst_Recesses(parentID, gratingParameters, recessDR) Next - Frame_3D.Build_Frame(gratingParameters, parentID) + If User_Input.addFrame = True Then + Frame_3D.Build_Frame(gratingParameters, parentID) + End If importClass.copyGroupsByDataSet(ExternalClass.groupds_new) Dim grNr = groupClass.NewGroupID @@ -50,16 +52,6 @@ Public Class Individual_3D Recess_Indent() Save_Assembly() - 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(False) 'Fixa False - Frame_Drawing.Generate_Drawings() - Exit For - End If - Next - - End Sub Private Shared Sub Save_Assembly() @@ -68,45 +60,56 @@ Public Class Individual_3D Dim status As Integer - Dim sourcePath, destPath As String - Dim childrenSourcePaths As New List(Of String) - Dim childrenDestPaths As New List(Of String) + Dim Assembly = swApp.ActiveDoc() + Dim newName As String + newName = Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw") & "\grating_assembly.SLDASM" - sourcePath = Settings.filesFolder & "\Files\CADStart\" & designName & ".SLDASM" - destPath = Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw") & "\GRATING_ASSEMBLY.SLDASM" + Dim swExtensions As IModelDocExtension + swExtensions = Assembly.Extension + Dim Errors As Integer + Dim Warnings As Integer - childrenSourcePaths.Add(Settings.HLCtFolder & "\HLCt\Parts\START.SLDPRT") - childrenDestPaths.Add(Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw_support") & "\MASTER.SLDPRT") + status = swExtensions.SaveAs2(newName, 0, 4, Nothing, "", True, Errors, Warnings) - Dim instanceCounter As New Dictionary(Of String, Integer) - For i = 0 To partDT.Rows.Count - 1 - childrenSourcePaths.Add(Settings.filesFolder & "\Files\CADStart\" & partDT.Rows(i)("partName") & ".SLDPRT") + 'Dim sourcePath, destPath As String + 'Dim childrenSourcePaths As New List(Of String) + 'Dim childrenDestPaths As New List(Of String) - Dim partName As String = partDT.Rows(i)("partName") - Dim partNameArray As String() = partName.Split("_") + 'sourcePath = Settings.filesFolder & "\Files\CADStart\" & designName & ".SLDASM" + 'destPath = Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw") & "\GRATING_ASSEMBLY.SLDASM" - Dim newName As String = "" - For j = 0 To partNameArray.Length - 4 - newName += partNameArray(j) & "_" - Next + 'childrenSourcePaths.Add(Settings.HLCtFolder & "\HLCt\Parts\START.SLDPRT") + 'childrenDestPaths.Add(Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw_support") & "\MASTER.SLDPRT") - Try - instanceCounter(newName.Substring(0, newName.Length - 1)) += 1 - Catch ex As Exception - instanceCounter.Add(newName.Substring(0, newName.Length - 1), 1) - End Try + 'Dim instanceCounter As New Dictionary(Of String, Integer) + 'For i = 0 To partDT.Rows.Count - 1 + ' childrenSourcePaths.Add(Settings.filesFolder & "\Files\CADStart\" & partDT.Rows(i)("partName") & ".SLDPRT") - If partNameArray(0) = "FRAME" Then - childrenDestPaths.Add(Settings.folderPaths("object_" & Data.objectNum & "_models3D_frames_sw") & "\" & newName & - instanceCounter(newName.Substring(0, newName.Length - 1)) & ".SLDPRT") - Else - childrenDestPaths.Add(Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw") & "\" & newName & - instanceCounter(newName.Substring(0, newName.Length - 1)) & ".SLDPRT") - End If - Next + ' Dim partName As String = partDT.Rows(i)("partName") + ' Dim partNameArray As String() = partName.Split("_") - swApp.CloseAllDocuments(True) - status = swApp.CopyDocument(sourcePath, destPath, childrenSourcePaths.ToArray(), childrenDestPaths.ToArray(), 2) + ' Dim newName As String = "" + ' For j = 0 To partNameArray.Length - 4 + ' newName += partNameArray(j) & "_" + ' Next + + ' Try + ' instanceCounter(newName.Substring(0, newName.Length - 1)) += 1 + ' Catch ex As Exception + ' instanceCounter.Add(newName.Substring(0, newName.Length - 1), 1) + ' End Try + + ' If partNameArray(0) = "FRAME" Then + ' childrenDestPaths.Add(Settings.folderPaths("object_" & Data.objectNum & "_models3D_frames_sw") & "\" & newName & + ' instanceCounter(newName.Substring(0, newName.Length - 1)) & ".SLDPRT") + ' Else + ' childrenDestPaths.Add(Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw") & "\" & newName & + ' instanceCounter(newName.Substring(0, newName.Length - 1)) & ".SLDPRT") + ' End If + 'Next + + 'swApp.CloseAllDocuments(True) + 'status = swApp.CopyDocument(sourcePath, destPath, childrenSourcePaths.ToArray(), childrenDestPaths.ToArray(), 2) End Sub Private Shared Sub Inst_Recesses(parentID As Integer, gratingParameters As DataRow, recessDR As DataRow) diff --git a/Wardrobe/SolidWorks/Individual_3D_Simplified.vb b/Wardrobe/SolidWorks/Individual_3D_Simplified.vb new file mode 100644 index 0000000..c83a9ba --- /dev/null +++ b/Wardrobe/SolidWorks/Individual_3D_Simplified.vb @@ -0,0 +1,460 @@ +Imports XCCLibrary +Imports SldWorks +Public Class Individual_3D_Simplified + Private Shared gratingParameters As DataRow + Private Shared designName As String + Public Shared partDT As New DataTable + Public Shared Sub Build_Simplified(withFrame As Boolean) + Dim exportTable As DataTable + exportTable = User_Input.Create_ExportTable() + + XCCBaseClass.newDesign() + ExternalClass.PopulateTamplateXMLGroup() + + Dim inst_ As Integer + Dim parentID As Integer = 0 + gratingParameters = exportTable.Rows(0) + + inst_ = ExternalClass.instantiate_parts(parentID, "simplified_floor_grating", "") + ExternalClass.modify_parameter_value("DP_GRATING_WIDTH", inst_, gratingParameters("WIDTH")) + ExternalClass.modify_parameter_value("DP_GRATING_LENGTH", inst_, gratingParameters("LENGTH")) + ExternalClass.modify_parameter_value("DP_LOADBAR_HEIGHT", inst_, gratingParameters("LOADBAR_HEIGHT")) + ExternalClass.modify_parameter_value("DP_OFFSET_X", inst_, 0) + ExternalClass.modify_parameter_value("DP_OFFSET_Y", inst_, 0) + + parentID = inst_ + For Each recessDR As DataRow In Data.recessData.Rows + 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("*") + designName = designTable.rows(0)("designName") + groupClass.InstantiateGroup(designName, grNr, "START") + + Recess_Indent() + Save_Assembly(withFrame) + End Sub + + 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 status As Integer + + Dim Assembly = swApp.ActiveDoc() + + Dim config As Configuration + config = Assembly.GetActiveConfiguration + Dim swCustPropMgr = config.CustomPropertyManager + If withFrame = True Then + status = swCustPropMgr.Add3("Benämning", 30, "Placement instructions for assembly", 1) + status = swCustPropMgr.Add3("ExtraBenämning1", 30, "", 1) + status = swCustPropMgr.Add3("ExtraBenämning2", 30, "", 1) + status = swCustPropMgr.Add3("Materialsort", 30, "", 1) + Else + status = swCustPropMgr.Add3("Benämning", 30, "Floor grating " & User_Input.gratingMesh & " " & User_Input.gratingHeight & "/" & User_Input.loadBarThickness, 1) + status = swCustPropMgr.Add3("ExtraBenämning1", 30, "LxW " & Data.gratingL & "x" & Data.gratingW, 1) + If User_Input.gratingSerrated Then + status = swCustPropMgr.Add3("ExtraBenämning2", 30, "Serrated", 1) + Else + status = swCustPropMgr.Add3("ExtraBenämning2", 30, "", 1) + End If + If User_Input.gratingLacquered Then + status = swCustPropMgr.Add3("Materialsort", 30, User_Input.gratingMaterial & " (Lacquered)", 1) + Else + status = swCustPropMgr.Add3("Materialsort", 30, User_Input.gratingMaterial, 1) + End If + End If + + status = swCustPropMgr.Add3("Art. Nr", 30, "TBD", 1) + status = swCustPropMgr.Add3("Material_Art", 30, "TBD", 1) + + status = swCustPropMgr.Add3("Author", 30, "", 1) + status = swCustPropMgr.Add3("Ändrad av", 30, "", 1) + status = swCustPropMgr.Add3("SkapadDatum", 30, "", 1) + status = swCustPropMgr.Add3("RevideradDatum", 30, "", 1) + + status = swCustPropMgr.Add3("epdmid", 30, "", 1) + status = swCustPropMgr.Add3("Revision", 30, "", 1) + + + Dim newName As String + If withFrame = True Then + newName = Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw_support") & "\grating_assembly_simplified_with_frame.SLDASM" + Else + newName = Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw_support") & "\grating_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) + + + + 'Dim sourcePath, destPath As String + 'Dim childrenSourcePaths As New List(Of String) + 'Dim childrenDestPaths As New List(Of String) + + 'sourcePath = Settings.filesFolder & "\Files\CADStart\" & designName & ".SLDASM" + 'destPath = Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw") & "\GRATING_ASSEMBLY.SLDASM" + + 'childrenSourcePaths.Add(Settings.HLCtFolder & "\HLCt\Parts\START.SLDPRT") + 'childrenDestPaths.Add(Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw_support") & "\MASTER.SLDPRT") + + 'Dim instanceCounter As New Dictionary(Of String, Integer) + 'For i = 0 To partDT.Rows.Count - 1 + ' childrenSourcePaths.Add(Settings.filesFolder & "\Files\CADStart\" & partDT.Rows(i)("partName") & ".SLDPRT") + + ' Dim partName As String = partDT.Rows(i)("partName") + ' Dim partNameArray As String() = partName.Split("_") + + ' Dim newName As String = "" + ' For j = 0 To partNameArray.Length - 4 + ' newName += partNameArray(j) & "_" + ' Next + + ' Try + ' instanceCounter(newName.Substring(0, newName.Length - 1)) += 1 + ' Catch ex As Exception + ' instanceCounter.Add(newName.Substring(0, newName.Length - 1), 1) + ' End Try + + ' If partNameArray(0) = "FRAME" Then + ' childrenDestPaths.Add(Settings.folderPaths("object_" & Data.objectNum & "_models3D_frames_sw") & "\" & newName & + ' instanceCounter(newName.Substring(0, newName.Length - 1)) & ".SLDPRT") + ' Else + ' childrenDestPaths.Add(Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw") & "\" & newName & + ' instanceCounter(newName.Substring(0, newName.Length - 1)) & ".SLDPRT") + ' End If + 'Next + + 'swApp.CloseAllDocuments(True) + 'status = swApp.CopyDocument(sourcePath, destPath, childrenSourcePaths.ToArray(), childrenDestPaths.ToArray(), 2) + End Sub + + Private Shared Sub Inst_Recesses(parentID As Integer, gratingParameters As DataRow, recessDR As DataRow) + Dim inst_ As Integer + + If recessDR("RECESS TYPE") = "SQUARE" Then + Dim squareL As Integer = recessDR("LENGTH") + gratingParameters("LOADBAR_THICKNESS") + Dim squareW As Integer = recessDR("WIDTH") + gratingParameters("LOADBAR_THICKNESS") + + inst_ = ExternalClass.instantiate_parts(parentID, "recess_rectangle", "") + + ExternalClass.modify_parameter_value("DP_LENGTH", inst_, squareL) + ExternalClass.modify_parameter_value("DP_WIDTH", inst_, squareW) + ExternalClass.modify_parameter_value("DP_EDGEBAR_HEIGHT", inst_, gratingParameters("LOADBAR_HEIGHT")) + ExternalClass.modify_parameter_value("DP_EDGEBAR_THICKNESS", inst_, gratingParameters("LOADBAR_THICKNESS")) + + If recessDR("CORNER") = 1 Then + ExternalClass.modify_parameter_value("DP_OFFSET_W", inst_, gratingParameters("WIDTH") - squareW) + ExternalClass.modify_parameter_value("DP_OFFSET_L", inst_, 0) + + 'Position + ExternalClass.modify_parameter_value("DP_V_EDGEBAR_POS", inst_, squareL - gratingParameters("LOADBAR_THICKNESS")) + ExternalClass.modify_parameter_value("DP_V_EDGEBAR_BOTTOM", inst_, gratingParameters("LOADBAR_THICKNESS")) + ExternalClass.modify_parameter_value("DP_H_EDGEBAR_POS", inst_, 0) + + ElseIf recessDR("CORNER") = 2 Then + ExternalClass.modify_parameter_value("DP_OFFSET_W", inst_, gratingParameters("WIDTH") - squareW) + ExternalClass.modify_parameter_value("DP_OFFSET_L", inst_, gratingParameters("LENGTH") - squareL) + + 'Position + ExternalClass.modify_parameter_value("DP_V_EDGEBAR_POS", inst_, 0) + ExternalClass.modify_parameter_value("DP_V_EDGEBAR_BOTTOM", inst_, gratingParameters("LOADBAR_THICKNESS")) + ExternalClass.modify_parameter_value("DP_H_EDGEBAR_POS", inst_, 0) + + ElseIf recessDR("CORNER") = 3 Then + ExternalClass.modify_parameter_value("DP_OFFSET_W", inst_, 0) + ExternalClass.modify_parameter_value("DP_OFFSET_L", inst_, gratingParameters("LENGTH") - squareL) + + 'Position + ExternalClass.modify_parameter_value("DP_V_EDGEBAR_POS", inst_, 0) + ExternalClass.modify_parameter_value("DP_V_EDGEBAR_BOTTOM", inst_, 0) + ExternalClass.modify_parameter_value("DP_H_EDGEBAR_POS", inst_, squareW - gratingParameters("LOADBAR_THICKNESS")) + Else + ExternalClass.modify_parameter_value("DP_OFFSET_W", inst_, 0) + ExternalClass.modify_parameter_value("DP_OFFSET_L", inst_, 0) + + 'Position + ExternalClass.modify_parameter_value("DP_V_EDGEBAR_POS", inst_, squareL - gratingParameters("LOADBAR_THICKNESS")) + ExternalClass.modify_parameter_value("DP_V_EDGEBAR_BOTTOM", inst_, 0) + ExternalClass.modify_parameter_value("DP_H_EDGEBAR_POS", inst_, squareW - gratingParameters("LOADBAR_THICKNESS")) + End If + + ElseIf recessDR("RECESS TYPE") = "ANGLE" Then + inst_ = ExternalClass.instantiate_parts(parentID, "recess_angle", "") + + ExternalClass.modify_parameter_value("DP_EDGEBAR_HEIGHT", inst_, gratingParameters("LOADBAR_HEIGHT")) + ExternalClass.modify_parameter_value("DP_EDGEBAR_THICKNESS", inst_, gratingParameters("LOADBAR_THICKNESS")) + + If recessDR("CORNER") = 1 Then + ExternalClass.modify_parameter_value("DP_LENGTH", inst_, recessDR("WIDTH")) + ExternalClass.modify_parameter_value("DP_WIDTH", inst_, recessDR("LENGTH")) + ExternalClass.modify_parameter_value("DP_OFFSET_W", inst_, gratingParameters("WIDTH")) + ExternalClass.modify_parameter_value("DP_OFFSET_L", inst_, 0) + ExternalClass.modify_parameter_value("DP_ROTATION", inst_, 90) + + ElseIf recessDR("CORNER") = 2 Then + ExternalClass.modify_parameter_value("DP_LENGTH", inst_, recessDR("LENGTH")) + ExternalClass.modify_parameter_value("DP_WIDTH", inst_, recessDR("WIDTH")) + ExternalClass.modify_parameter_value("DP_OFFSET_W", inst_, gratingParameters("WIDTH")) + ExternalClass.modify_parameter_value("DP_OFFSET_L", inst_, gratingParameters("LENGTH")) + ExternalClass.modify_parameter_value("DP_ROTATION", inst_, 180) + + ElseIf recessDR("CORNER") = 3 Then + ExternalClass.modify_parameter_value("DP_LENGTH", inst_, recessDR("WIDTH")) + ExternalClass.modify_parameter_value("DP_WIDTH", inst_, recessDR("LENGTH")) + ExternalClass.modify_parameter_value("DP_OFFSET_W", inst_, 0) + ExternalClass.modify_parameter_value("DP_OFFSET_L", inst_, gratingParameters("LENGTH")) + ExternalClass.modify_parameter_value("DP_ROTATION", inst_, 270) + + Else + ExternalClass.modify_parameter_value("DP_LENGTH", inst_, recessDR("LENGTH")) + ExternalClass.modify_parameter_value("DP_WIDTH", inst_, recessDR("WIDTH")) + ExternalClass.modify_parameter_value("DP_OFFSET_W", inst_, 0) + ExternalClass.modify_parameter_value("DP_OFFSET_L", inst_, 0) + ExternalClass.modify_parameter_value("DP_ROTATION", inst_, 0) + + End If + + ElseIf recessDR("RECESS TYPE") = "SIDE SQUARE" Then + inst_ = ExternalClass.instantiate_parts(parentID, "recess_side_square", "") + + ExternalClass.modify_parameter_value("DP_EDGEBAR_HEIGHT", inst_, gratingParameters("LOADBAR_HEIGHT")) + ExternalClass.modify_parameter_value("DP_EDGEBAR_THICKNESS", inst_, gratingParameters("LOADBAR_THICKNESS")) + + If recessDR("SIDE") = 1 Then + ExternalClass.modify_parameter_value("DP_LENGTH", inst_, recessDR("WIDTH") - 2) + ExternalClass.modify_parameter_value("DP_WIDTH", inst_, recessDR("LENGTH")) + ExternalClass.modify_parameter_value("DP_OFFSET_W", inst_, gratingParameters("WIDTH") - 2) + ExternalClass.modify_parameter_value("DP_OFFSET_L", inst_, recessDR("OFFSET") - gratingParameters("LOADBAR_THICKNESS")) + ExternalClass.modify_parameter_value("DP_ROTATION", inst_, 90) + + ElseIf recessDR("SIDE") = 2 Then + ExternalClass.modify_parameter_value("DP_LENGTH", inst_, recessDR("LENGTH")) + ExternalClass.modify_parameter_value("DP_WIDTH", inst_, recessDR("WIDTH")) + ExternalClass.modify_parameter_value("DP_OFFSET_W", inst_, gratingParameters("WIDTH") - recessDR("OFFSET") + gratingParameters("LOADBAR_THICKNESS")) + ExternalClass.modify_parameter_value("DP_OFFSET_L", inst_, gratingParameters("LENGTH")) + ExternalClass.modify_parameter_value("DP_ROTATION", inst_, 180) + + ElseIf recessDR("SIDE") = 3 Then + ExternalClass.modify_parameter_value("DP_LENGTH", inst_, recessDR("WIDTH") - 2) + ExternalClass.modify_parameter_value("DP_WIDTH", inst_, recessDR("LENGTH")) + ExternalClass.modify_parameter_value("DP_OFFSET_W", inst_, 0 + 2) + ExternalClass.modify_parameter_value("DP_OFFSET_L", inst_, gratingParameters("LENGTH") - recessDR("OFFSET") + gratingParameters("LOADBAR_THICKNESS")) + ExternalClass.modify_parameter_value("DP_ROTATION", inst_, 270) + + Else + ExternalClass.modify_parameter_value("DP_LENGTH", inst_, recessDR("LENGTH")) + ExternalClass.modify_parameter_value("DP_WIDTH", inst_, recessDR("WIDTH")) + ExternalClass.modify_parameter_value("DP_OFFSET_W", inst_, recessDR("OFFSET") - gratingParameters("LOADBAR_THICKNESS")) + ExternalClass.modify_parameter_value("DP_OFFSET_L", inst_, 0) + ExternalClass.modify_parameter_value("DP_ROTATION", inst_, 0) + + End If + + ElseIf recessDR("RECESS TYPE") = "MIDDLE SQUARE" Then + inst_ = ExternalClass.instantiate_parts(parentID, "recess_middle_square", "") + + ExternalClass.modify_parameter_value("DP_LENGTH", inst_, recessDR("LENGTH") + gratingParameters("LOADBAR_THICKNESS") * 2) + ExternalClass.modify_parameter_value("DP_WIDTH", inst_, recessDR("WIDTH") + gratingParameters("LOADBAR_THICKNESS") * 2) + ExternalClass.modify_parameter_value("DP_EDGEBAR_HEIGHT", inst_, gratingParameters("LOADBAR_HEIGHT")) + ExternalClass.modify_parameter_value("DP_EDGEBAR_THICKNESS", inst_, gratingParameters("LOADBAR_THICKNESS")) + ExternalClass.modify_parameter_value("DP_OFFSET_W", inst_, recessDR("OFFSET Y") - gratingParameters("LOADBAR_THICKNESS")) + ExternalClass.modify_parameter_value("DP_OFFSET_L", inst_, recessDR("OFFSET X") - gratingParameters("LOADBAR_THICKNESS")) + End If + + + End Sub + + Private Shared Sub Recess_Indent() + Dim swApp As SldWorks.SldWorks + swApp = CType(System.Runtime.InteropServices.Marshal.GetActiveObject("SldWorks.Application"), SldWorks.SldWorks) + + Dim boolstatus As Boolean + Dim AssemblyExtension As SldWorks.ModelDocExtension + + Dim Assembly = swApp.ActiveDoc + Dim SelMgr = Assembly.SelectionManager() + AssemblyExtension = Assembly.Extension + Dim sldata = SelMgr.CreateSelectData + + Dim swErrors As Integer + Dim swWarnings As Integer + Dim components = Assembly.GetComponents(True) + + partDT = partModel.selectPart("*") + + Assembly.ClearSelection2(True) + + ' Grating part + Dim gratingPartName As String = partDT.Rows(0)("partName") + boolstatus = AssemblyExtension.SelectByID2(gratingPartName & "-1@" & designName, "COMPONENT", 0, 0, 0, False, 0, Nothing, 0) + Dim gratingPart = SelMgr.GetSelectedObject6(1, -1) + + Assembly.EditPart + + Dim modelDoc As IModelDoc2 + modelDoc = Assembly + boolstatus = AssemblyExtension.SelectByID2("HorizontalSplitBody@" & gratingPartName & "-1@" & designName, "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0) + modelDoc.EditSuppress2() + boolstatus = AssemblyExtension.SelectByID2("VerticalSplitBody@" & gratingPartName & "-1@" & designName, "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0) + modelDoc.EditSuppress2() + + Dim indexGrating As Integer + For i = 0 To components.Length - 1 + If components(i).Name2 = gratingPartName & "-1" Then + indexGrating = i + Exit For + End If + Next + + Dim gratingComponent As SldWorks.Component2 = components(indexGrating) + Dim gratingBodies = components(indexGrating).GetBodies2(0) + + Dim recessParts = partDT.Select("parentName = '" & gratingPartName & "'") + 'Dim recessParts As DataTable = New DataTable + 'For Each DR As DataRow In partDT.Rows + ' Dim partName As String = DR("partName") + ' If partName.Split("_")(0) = "RECESS" Then + ' recessParts.Rows.Add(DR) + ' End If + 'Next + + + + Dim recessPartName As String + For i = 0 To recessParts.Count - 1 + Dim partName As String = recessParts(i)("partName") + If partName.Split("_")(0) = "RECESS" Then + Assembly.ClearSelection2(True) + + ' Recess part + recessPartName = partName + boolstatus = AssemblyExtension.SelectByID2(recessPartName & "-1@" & designName, "COMPONENT", 0, 0, 0, False, 0, Nothing, 0) + Dim recessPart = SelMgr.GetSelectedObject6(1, -1) + + Dim indexRecess As Integer + For j = 0 To components.Length - 1 + If components(j).Name2 = recessPartName & "-1" Then + indexRecess = j + Exit For + End If + Next + + Dim recessBodies = components(indexRecess).GetBodies2(0) + Dim recessComponent As SldWorks.Component2 = components(indexRecess) + Dim bodiesToCut = Check_Interference(gratingComponent, recessComponent) + + For j = 0 To bodiesToCut.Length - 1 + sldata.Mark = 1 + + Dim bodyName As String = bodiesToCut(j).Name & "@" & gratingPartName & "-1@" & designName + boolstatus = AssemblyExtension.SelectByID2(bodyName, "SOLIDBODY", 0, 0, 0, True, 1, Nothing, 0) + + sldata.Mark = 4 + + Dim indexBody As Integer + For k = 0 To recessBodies.Length - 1 + If recessBodies(k).Name = "Cut-Body" Then + indexBody = k + Exit For + End If + Next + + Dim recessFace = recessBodies(indexBody).GetFirstFace + recessFace.Select4(True, sldata) + + Assembly.FeatureManager.InsertIndent(0.01, 0, False, True, True, False) + Assembly.ClearSelection2(True) + Next + End If + Next + + + If gratingParameters("TYPE") = "pressure_welded_serrated" Then + For i = 1 To 5 + boolstatus = AssemblyExtension.SelectByID2("Serrated-Cut" & i & "@" & gratingPartName & "-1@" & designName, "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0) + modelDoc.EditUnsuppress2() + Next + + ElseIf gratingParameters("TYPE") = "type_a_serrated" Then + For i = 1 To 2 + boolstatus = AssemblyExtension.SelectByID2("Serrated-Cut" & i & "@" & gratingPartName & "-1@" & designName, "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0) + modelDoc.EditUnsuppress2() + Next + End If + + + Assembly.EditAssembly + + 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 + + Private Shared Function Check_Interference(comp1 As SldWorks.Component2, comp2 As SldWorks.Component2) ' Test Albins mocro för interference + + Dim swApp As SldWorks.SldWorks + Dim swModel As SldWorks.ModelDoc2 + Dim swAssy As SldWorks.AssemblyDoc + Dim CompArray(1) As SldWorks.Component2 + Dim vCompArray + Dim vIntCompArray + Dim vIntFaceArray + + Dim interfering + + swApp = CType(System.Runtime.InteropServices.Marshal.GetActiveObject("SldWorks.Application"), SldWorks.SldWorks) + swModel = swApp.ActiveDoc + swAssy = swModel + + CompArray(0) = comp1 + CompArray(1) = comp2 + + vCompArray = CompArray + swAssy.ToolsCheckInterference2(2, (vCompArray), interfering, vIntCompArray, vIntFaceArray) + + Dim Bodies(UBound(vIntFaceArray)) As Object + Dim BodyNames(UBound(vIntFaceArray)) As String + Dim CompNames(UBound(vIntFaceArray)) As String + + For i = 0 To UBound(vIntFaceArray) + + Bodies(i) = vIntFaceArray(i).GetBody + BodyNames(i) = Bodies(i).Name + CompNames(i) = vIntCompArray(i).Name2 + + Next + + Dim gratingName As String = CompNames(0) + Dim bodiesToCutList As New List(Of Object) + + bodiesToCutList.Add(Bodies(0)) + For i = 1 To CompNames.Length - 1 + + If CompNames(i) <> gratingName Then + Exit For + ElseIf BodyNames(i) <> BodyNames(i - 1) Then + bodiesToCutList.Add(Bodies(i)) + End If + Next + + Dim bodiesToCut() As Object + bodiesToCut = bodiesToCutList.ToArray() + + Return bodiesToCut + End Function +End Class diff --git a/Wardrobe/SolidWorks/Individual_Drawing.vb b/Wardrobe/SolidWorks/Individual_Drawing.vb index d80547c..99df6e0 100644 --- a/Wardrobe/SolidWorks/Individual_Drawing.vb +++ b/Wardrobe/SolidWorks/Individual_Drawing.vb @@ -2,7 +2,7 @@ Public Class Individual_Drawing Private Shared sideCounter As Integer() - Public Shared Sub Create_Model_For_Drawing() + Public Shared Sub Generate_Drawing() Dim pointTable As DataTable pointTable = Data.gratingPoints @@ -149,6 +149,7 @@ Public Class Individual_Drawing longstatus = iPart.SaveAs3(newName, 0, 0) Model.ClearSelection2(True) + Create_Drawing(iPart) End Sub @@ -330,16 +331,17 @@ Public Class Individual_Drawing Dim skSegment As Object swSkMgr.AddToDB = True - - For i = 0 To Draw_Grating.DirSymbolPoints.Count - 1 + Dim sheetScale = myView.ScaleDecimal + For i = 0 To Draw_Grating.DirSymbolPoints.Count - 2 Dim x1, x2, y1, y2 As Double - x1 = CDbl(CInt(Draw_Grating.DirSymbolPoints(i)(0) - Data.guiPanelMidX) / (30 * viewScale2)) - y1 = -CDbl(CInt(Draw_Grating.DirSymbolPoints(i)(1) - Data.guiPanelMidY) / (30 * viewScale2)) - x2 = CDbl(CInt(Draw_Grating.DirSymbolPoints(i + 1)(0) - Data.guiPanelMidX) / (30 * viewScale2)) - y2 = -CDbl(CInt(Draw_Grating.DirSymbolPoints(i + 1)(1) - Data.guiPanelMidY) / (30 * viewScale2)) + x1 = CDbl(CInt(Draw_Grating.DirSymbolPoints(i)(0) - Data.guiPanelMidX) / (3000 * sheetScale)) + y1 = -CDbl(CInt(Draw_Grating.DirSymbolPoints(i)(1) - Data.guiPanelMidY) / (3000 * sheetScale)) + x2 = CDbl(CInt(Draw_Grating.DirSymbolPoints(i + 1)(0) - Data.guiPanelMidX) / (3000 * sheetScale)) + y2 = -CDbl(CInt(Draw_Grating.DirSymbolPoints(i + 1)(1) - Data.guiPanelMidY) / (3000 * sheetScale)) skSegment = swSkMgr.CreateLine(x1, y1, 0, x2, y2, 0) Next + swSkMgr.AddToDB = False longstatus = iDrawing.SaveAs3(newName, 0, 0) longstatus = iDrawing.SaveAs3(Settings.folderPaths("object_" & Data.objectNum & "_drawings_gratings_pdf") & "\grating_drawing.pdf", 0, 2) diff --git a/Wardrobe/SolidWorks/Instructions.vb b/Wardrobe/SolidWorks/Instructions.vb index ad4cee7..8763712 100644 --- a/Wardrobe/SolidWorks/Instructions.vb +++ b/Wardrobe/SolidWorks/Instructions.vb @@ -26,12 +26,21 @@ Public Class Instructions status = layMgr.SetCurrentLayer("Svenska") Dim drawName As String - If withFrame = True Then - drawName = Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw_support") & "\gratings_assembly_simplified_with_frame.SLDASM" + If AppForm.fillMode = True Then + If withFrame = True Then + drawName = Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw_support") & "\gratings_assembly_simplified_with_frame.SLDASM" + Else + drawName = Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw_support") & "\gratings_assembly_simplified.SLDASM" + End If Else - drawName = Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw_support") & "\gratings_assembly_simplified.SLDASM" + If withFrame = True Then + drawName = Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw_support") & "\grating_assembly_simplified_with_frame.SLDASM" + Else + drawName = Settings.folderPaths("object_" & Data.objectNum & "_models3D_gratings_sw_support") & "\grating_assembly_simplified.SLDASM" + End If End If + Dim myView As View myView = iDrawing.CreateDrawViewFromModelView3(drawName, "*Front", swSheetWidth / 2, swSheetHeight / 2, 0) myView.UseSheetScale() = True @@ -68,9 +77,14 @@ Public Class Instructions vNotes = iDrawing.AutoBalloon5(autoBalloonParams) iDrawing.ClearSelection2(True) - Dim gratingCounter As Integer = Grating_Fill.numOfHorizontal * Grating_Fill.numOfVertical - Multiple_3D_Simplified.listOfObsolete.Count + Dim numOfGratings = 1 + If AppForm.fillMode = True Then + numOfGratings = Grating_Fill.numOfHorizontal * Grating_Fill.numOfVertical - Multiple_3D_Simplified.listOfObsolete.Count + End If + + Dim gratingCounter As Integer = numOfGratings For i = vNotes.Length - 1 To 0 Step -1 - If i < Grating_Fill.numOfHorizontal * Grating_Fill.numOfVertical - Multiple_3D_Simplified.listOfObsolete.Count Then + If i < numOfGratings Then Dim noteInfo = vNotes(i).GetLeaderInfo() noteAnnotation = vNotes(i).GetAnnotation() @@ -95,100 +109,133 @@ Public Class Instructions End If Next - Dim straightFrames = Frame_3D.frameDT.Select("TYPE = 'SIDE'") - Dim straightFramesDT As New DataTable - straightFramesDT.Columns.Add("LENGTH", GetType(Integer)) - straightFramesDT.Columns.Add("SIDE", GetType(Integer)) - For i = 1 To 4 - Dim sideNum = i + 1 - If sideNum = 5 Then - sideNum = 1 - End If - For j = straightFrames.Length - 1 To 0 Step -1 - Dim DR As DataRow = straightFrames(j) - If DR("SIDE") = sideNum Then - Dim newDR As DataRow = straightFramesDT.NewRow - newDR("LENGTH") = DR("LENGTH") - newDR("SIDE") = i - straightFramesDT.Rows.Add(newDR) + If withFrame = True Then + Dim straightFrames = Frame_3D.frameDT.Select("TYPE = 'SIDE'") + Dim straightFramesDT As New DataTable + straightFramesDT.Columns.Add("LENGTH", GetType(Integer)) + straightFramesDT.Columns.Add("SIDE", GetType(Integer)) + For i = 1 To 4 + Dim sideNum = i + 1 + If sideNum = 5 Then + sideNum = 1 + End If + For j = straightFrames.Length - 1 To 0 Step -1 + Dim DR As DataRow = straightFrames(j) + If DR("SIDE") = sideNum Then + Dim newDR As DataRow = straightFramesDT.NewRow + newDR("LENGTH") = DR("LENGTH") + newDR("SIDE") = i + straightFramesDT.Rows.Add(newDR) + End If + Next + Next + + Dim sideOffsets(3) As Double + Dim cornerFrames = Frame_3D.frameDT.Select("TYPE = 'CORNER'") + For i = 0 To 3 + Dim cornerFrameExist As Boolean = False + For j = 0 To cornerFrames.Length - 1 + If cornerFrames(j)("CORNER") = i + 1 Then + cornerFrameExist = True + Exit For + End If + Next + If cornerFrameExist = True Then + sideOffsets(i) = 0.21 + Else + sideOffsets(i) = 0 End If Next - Next - Dim sideOffsets(3) As Double - Dim cornerFrames = Frame_3D.frameDT.Select("TYPE = 'CORNER'") - For i = 0 To 3 - Dim cornerFrameExist As Boolean = False - For j = 0 To cornerFrames.Length - If cornerFrames(j)("CORNER") = i + 1 Then - cornerFrameExist = True - Exit For + Dim worldX, worldY, offsetX, offsetY As Double + Dim scale As Double = myView.ScaleDecimal + For i = 0 To straightFramesDT.Rows.Count - 1 + If straightFramesDT.Rows(i)("SIDE") = 1 Then + worldX = swSheetWidth / 2 + (-(Data.gratingL / 1000) / 2 + sideOffsets(0) + (straightFramesDT.Rows(i)("LENGTH") / 1000) / 2) * scale + sideOffsets(0) += straightFramesDT.Rows(i)("LENGTH") / 1000 + worldY = swSheetHeight / 2 + ((Data.gratingW / 1000) / 2 + 0.001) * scale + offsetX = worldX - 0.01 - 0.0045 + offsetY = worldY + 0.02 + 0.0015 + ElseIf straightFramesDT.Rows(i)("SIDE") = 2 Then + worldX = swSheetWidth / 2 + ((Data.gratingL / 1000) / 2 + 0.001) * scale + worldY = swSheetHeight / 2 + ((Data.gratingW / 1000) / 2 - sideOffsets(1) - (straightFramesDT.Rows(i)("LENGTH") / 1000) / 2) * scale + sideOffsets(1) += straightFramesDT.Rows(i)("LENGTH") / 1000 + offsetX = worldX + 0.02 - 0.0045 + offsetY = worldY + 0.01 + 0.0015 + ElseIf straightFramesDT.Rows(i)("SIDE") = 3 Then + worldX = swSheetWidth / 2 + ((Data.gratingL / 1000) / 2 - sideOffsets(2) - (straightFramesDT.Rows(i)("LENGTH") / 1000) / 2) * scale + sideOffsets(2) += straightFramesDT.Rows(i)("LENGTH") / 1000 + worldY = swSheetHeight / 2 - ((Data.gratingW / 1000) / 2 + 0.001) * scale + offsetX = worldX + 0.01 - 0.0045 + offsetY = worldY - 0.02 + 0.0015 + Else + worldX = swSheetWidth / 2 - ((Data.gratingL / 1000) / 2 + 0.001) * scale + worldY = swSheetHeight / 2 + (-(Data.gratingW / 1000) / 2 + sideOffsets(3) + (straightFramesDT.Rows(i)("LENGTH") / 1000) / 2) * scale + sideOffsets(3) += straightFramesDT.Rows(i)("LENGTH") / 1000 + offsetX = worldX - 0.02 - 0.0045 + offsetY = worldY - 0.01 + 0.0015 End If + + status = swExtensions.SelectByRay(worldX, worldY, 0, 0, 0, -1, 0.0005, 2, False, 0, 0) + + Dim BomBalloonParams As Object + BomBalloonParams = swExtensions.CreateBalloonOptions() + BomBalloonParams.Style = 1 + BomBalloonParams.Size = 3 + BomBalloonParams.UpperTextContent = 1 + BomBalloonParams.UpperText = """" + BomBalloonParams.ShowQuantity = False + BomBalloonParams.QuantityPlacement = 1 + BomBalloonParams.QuantityDenotationText = "X" + BomBalloonParams.QuantityOverride = False + Dim myNote = swExtensions.InsertBOMBalloon2(BomBalloonParams) + + noteAnnotation = myNote.GetAnnotation() + + textFormat = noteAnnotation.GetTextFormat(0) + textFormat.CharHeight = 0.0025 + status = noteAnnotation.SetTextFormat(0, False, textFormat) + + noteAnnotation.SetPosition2(offsetX, offsetY, 0) + + iDrawing.ClearSelection2(True) + balloonName = myNote.GetName() + status = swExtensions.SelectByID2(balloonName & "@" & myView.GetName2, "NOTE", 0, 0, 0, False, 0, Nothing, 0) + editedNote = swExtensions.EditBalloonProperties2(1, 3, 0, "F-" & i + 1, 0, "", 0, False, 1, "X", 0.001) Next - If cornerFrameExist = True Then - sideOffsets(i) = 0.21 - Else - sideOffsets(i) = 0 - End If + End If + + + status = layMgr.AddLayer("Symbol", "", 0, 0, 2) + status = layMgr.SetCurrentLayer("Symbol") + + Dim swSkMgr As SketchManager + swSkMgr = iDrawing.SketchManager + status = iDrawing.ActivateSheet("Sheet1") + Dim skSegment As Object + + swSkMgr.AddToDB = True + Dim sheetProp = swSheet.GetProperties() + Dim sheetScale = myView.ScaleDecimal + 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) / (2000 * sheetScale)) + (swSheetWidth - 0.05) / sheetScale + y1 = -CDbl((Draw_Grating.DirSymbolPoints(i)(1) - Data.guiPanelMidY) / (2000 * sheetScale)) + (swSheetHeight / 2) / sheetScale + x2 = CDbl((Draw_Grating.DirSymbolPoints(i + 1)(0) - Data.guiPanelMidX) / (2000 * sheetScale)) + (swSheetWidth - 0.05) / sheetScale + y2 = -CDbl((Draw_Grating.DirSymbolPoints(i + 1)(1) - Data.guiPanelMidY) / (2000 * sheetScale)) + (swSheetHeight / 2) / sheetScale + + skSegment = swSkMgr.CreateLine(x1, y1, 0, x2, y2, 0) Next + swSkMgr.AddToDB = False - Dim worldX, worldY, offsetX, offsetY As Double - Dim scale As Double = myView.ScaleDecimal - For i = 0 To straightFramesDT.Rows.Count - 1 - If straightFramesDT.Rows(i)("SIDE") = 1 Then - worldX = swSheetWidth / 2 + (-(Data.gratingL / 1000) / 2 + sideOffsets(0) + (straightFramesDT.Rows(i)("LENGTH") / 1000) / 2) * scale - sideOffsets(0) += straightFramesDT.Rows(i)("LENGTH") / 1000 - worldY = swSheetHeight / 2 + ((Data.gratingW / 1000) / 2 + 0.001) * scale - offsetX = worldX - 0.01 - 0.0045 - offsetY = worldY + 0.02 + 0.0015 - ElseIf straightFramesDT.Rows(i)("SIDE") = 2 Then - worldX = swSheetWidth / 2 + ((Data.gratingL / 1000) / 2 + 0.001) * scale - worldY = swSheetHeight / 2 + ((Data.gratingW / 1000) / 2 - sideOffsets(1) - (straightFramesDT.Rows(i)("LENGTH") / 1000) / 2) * scale - sideOffsets(1) += straightFramesDT.Rows(i)("LENGTH") / 1000 - offsetX = worldX + 0.02 - 0.0045 - offsetY = worldY + 0.01 + 0.0015 - ElseIf straightFramesDT.Rows(i)("SIDE") = 3 Then - worldX = swSheetWidth / 2 + ((Data.gratingL / 1000) / 2 - sideOffsets(2) - (straightFramesDT.Rows(i)("LENGTH") / 1000) / 2) * scale - sideOffsets(2) += straightFramesDT.Rows(i)("LENGTH") / 1000 - worldY = swSheetHeight / 2 - ((Data.gratingW / 1000) / 2 + 0.001) * scale - offsetX = worldX + 0.01 - 0.0045 - offsetY = worldY - 0.02 + 0.0015 - Else - worldX = swSheetWidth / 2 - ((Data.gratingL / 1000) / 2 + 0.001) * scale - worldY = swSheetHeight / 2 + (-(Data.gratingW / 1000) / 2 + sideOffsets(3) + (straightFramesDT.Rows(i)("LENGTH") / 1000) / 2) * scale - sideOffsets(3) += straightFramesDT.Rows(i)("LENGTH") / 1000 - offsetX = worldX - 0.02 - 0.0045 - offsetY = worldY - 0.01 + 0.0015 - End If + Dim note = iDrawing.CreateText2("Load Bearing Direction", (swSheetWidth - 0.072), (swSheetHeight / 2 + 0.012), 0, 0.003, 0) - status = swExtensions.SelectByRay(worldX, worldY, 0, 0, 0, -1, 0.0005, 2, False, 0, 0) - Dim BomBalloonParams As Object - BomBalloonParams = swExtensions.CreateBalloonOptions() - BomBalloonParams.Style = 1 - BomBalloonParams.Size = 3 - BomBalloonParams.UpperTextContent = 1 - BomBalloonParams.UpperText = """" - BomBalloonParams.ShowQuantity = False - BomBalloonParams.QuantityPlacement = 1 - BomBalloonParams.QuantityDenotationText = "X" - BomBalloonParams.QuantityOverride = False - Dim myNote = swExtensions.InsertBOMBalloon2(BomBalloonParams) - - noteAnnotation = myNote.GetAnnotation() - - textFormat = noteAnnotation.GetTextFormat(0) - textFormat.CharHeight = 0.0025 - status = noteAnnotation.SetTextFormat(0, False, textFormat) - - noteAnnotation.SetPosition2(offsetX, offsetY, 0) - - iDrawing.ClearSelection2(True) - balloonName = myNote.GetName() - status = swExtensions.SelectByID2(balloonName & "@" & myView.GetName2, "NOTE", 0, 0, 0, False, 0, Nothing, 0) - editedNote = swExtensions.EditBalloonProperties2(1, 3, 0, "F-" & i + 1, 0, "", 0, False, 1, "X", 0.001) - Next + Dim newName As String + newName = Settings.folderPaths("object_" & Data.objectNum & "_guide") & "\assembly_instructions.SLDDRW" + status = iDrawing.SaveAs3(newName, 0, 0) + status = iDrawing.SaveAs3(newName, 0, 2) End Sub End Class diff --git a/Wardrobe/SolidWorks/Multiple_Drawing.vb b/Wardrobe/SolidWorks/Multiple_Drawing.vb index 122188e..0ecdfa9 100644 --- a/Wardrobe/SolidWorks/Multiple_Drawing.vb +++ b/Wardrobe/SolidWorks/Multiple_Drawing.vb @@ -272,18 +272,6 @@ Public Class Multiple_Drawing End If Next - 'recessData.Columns.Add("RECESS TYPE", GetType(String)) - 'recessData.Columns.Add("NAME", GetType(String)) - 'recessData.Columns.Add("CORNER", GetType(Integer)) - 'recessData.Columns.Add("SIDE", GetType(Integer)) - 'recessData.Columns.Add("WIDTH", GetType(Integer)) - 'recessData.Columns.Add("LENGTH", GetType(Integer)) - 'recessData.Columns.Add("OFFSET", GetType(Integer)) - 'recessData.Columns.Add("OFFSET X", GetType(Integer)) - 'recessData.Columns.Add("OFFSET Y", GetType(Integer)) - 'recessData.Columns.Add("GRATINGS", GetType(List(Of Integer))) - - ' -- Loop Horizontal -- For i = 0 To Grating_Fill.numOfHorizontal - 1 status = False @@ -387,19 +375,19 @@ Public Class Multiple_Drawing swSkMgr.AddToDB = True Dim sheetProp = swSheet.GetProperties() - Dim sheetScale = sheetProp(3) + Dim sheetScale = myView.ScaleDecimal 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) / 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 + x1 = CDbl((Draw_Grating.DirSymbolPoints(i)(0) - Data.guiPanelMidX) / (2000 * sheetScale)) + (swSheetWidth - 0.05) / sheetScale + y1 = -CDbl((Draw_Grating.DirSymbolPoints(i)(1) - Data.guiPanelMidY) / (2000 * sheetScale)) + (swSheetHeight / 2) / sheetScale + x2 = CDbl((Draw_Grating.DirSymbolPoints(i + 1)(0) - Data.guiPanelMidX) / (2000 * sheetScale)) + (swSheetWidth - 0.05) / sheetScale + y2 = -CDbl((Draw_Grating.DirSymbolPoints(i + 1)(1) - Data.guiPanelMidY) / (2000 * sheetScale)) + (swSheetHeight / 2) / sheetScale skSegment = swSkMgr.CreateLine(x1, y1, 0, x2, y2, 0) Next swSkMgr.AddToDB = False - Dim note = iDrawing.CreateText2("Load Bearing Direction", (swSheetWidth - 0.075), (swSheetHeight / 2 + 0.012), 0, 0.003, 0) + Dim note = iDrawing.CreateText2("Load Bearing Direction", (swSheetWidth - 0.072), (swSheetHeight / 2 + 0.012), 0, 0.003, 0) status = swExtensions.SelectByID2(myView.GetName2, "DRAWINGVIEW", 0, 0, 0, False, 0, Nothing, 0) diff --git a/Wardrobe/Wardrobe.vbproj b/Wardrobe/Wardrobe.vbproj index 7cd9864..9c172c3 100644 --- a/Wardrobe/Wardrobe.vbproj +++ b/Wardrobe/Wardrobe.vbproj @@ -119,6 +119,7 @@ +