165 lines
6.7 KiB
VB.net
165 lines
6.7 KiB
VB.net
Imports XCCLibrary
|
|
Imports SldWorks
|
|
Public Class Program
|
|
|
|
Public Shared Sub Load_XCC(filesFolder As String, HLCtFolder As String)
|
|
adminClass.loadSettings(filesFolder, HLCtFolder, "SolidWorks")
|
|
End Sub
|
|
|
|
Public Shared Sub Update_KB()
|
|
adminClass.updateDatabase()
|
|
End Sub
|
|
|
|
Public Shared Sub Build_Grating(impTable As DataTable)
|
|
XCCBaseClass.newDesign()
|
|
ExternalClass.PopulateTamplateXMLGroup()
|
|
|
|
Dim inst_ As Integer = 0
|
|
Dim parentID As Integer = 0
|
|
Dim gratingParameters As DataRow = impTable.Rows(0)
|
|
inst_ = ExternalClass.instantiate_parts(parentID, gratingParameters("TYPE"), "") ' Ange pressure welded eller type A, Serrated?
|
|
ExternalClass.modify_parameter_value("DP_GRATING_WIDTH", inst_, gratingParameters("WIDTH"))
|
|
ExternalClass.modify_parameter_value("DP_GRATING_LENGTH", inst_, gratingParameters("LENGTH"))
|
|
ExternalClass.modify_parameter_value("DP_LOADBAR_THICKNESS", inst_, gratingParameters("LOADBAR_THICKNESS"))
|
|
ExternalClass.modify_parameter_value("DP_LOADBAR_HEIGHT", inst_, gratingParameters("LOADBAR_HEIGHT"))
|
|
ExternalClass.modify_parameter_value("DP_LOADBAR_SPACING", inst_, gratingParameters("LOADBAR_SPACING"))
|
|
ExternalClass.modify_parameter_value("DP_CROSSBAR_SPACING", inst_, gratingParameters("CROSSBAR_SPACING"))
|
|
|
|
If gratingParameters("TYPE") = "pressure_welded" Then
|
|
ExternalClass.modify_parameter_value("DP_CROSSBAR_DIAMETER", inst_, gratingParameters("CROSSBAR_DIAMETER"))
|
|
Else
|
|
ExternalClass.modify_parameter_value("DP_CROSSBAR_THICKNESS", inst_, gratingParameters("CROSSBAR_THICKNESS"))
|
|
ExternalClass.modify_parameter_value("DP_CROSSBAR_HEIGHT", inst_, gratingParameters("CROSSBAR_HEIGHT"))
|
|
End If
|
|
|
|
importClass.copyGroupsByDataSet(ExternalClass.groupds_new)
|
|
Dim grNr = groupClass.NewGroupID
|
|
Dim designTable = designModel.selectDesign("*")
|
|
Dim designName = designTable.rows(0)("designName")
|
|
groupClass.InstantiateGroup(designName, grNr, "START")
|
|
End Sub
|
|
|
|
Public Shared Sub Export_SW(pointTable As DataTable, gratingHeight As Decimal)
|
|
Dim swApp As SldWorks.SldWorks
|
|
swApp = CType(System.Runtime.InteropServices.Marshal.GetActiveObject("SldWorks.Application"), SldWorks.SldWorks)
|
|
Dim Model As ModelDoc2
|
|
Dim RootPoint(2) As Double
|
|
Dim Normal(2) As Double
|
|
swApp.UserControl = True
|
|
'Create a new blank document
|
|
Model = swApp.NewDocument("C:\ProgramData\SOLIDWORKS\SOLIDWORKS 2020\templates\part.prtdot", 0, 0, 0)
|
|
|
|
Dim swSkMgr As SketchManager
|
|
Dim longstatus As Integer
|
|
Dim boolstatus As Boolean
|
|
|
|
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 pointTable.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 pointTable.Rows
|
|
Dim skLine As SketchLine
|
|
Dim rowIndex = pointTable.Rows.IndexOf(DR1)
|
|
Dim DR2 As DataRow
|
|
|
|
Try
|
|
DR2 = pointTable.Rows(rowIndex + 1)
|
|
Catch ex As Exception
|
|
DR2 = pointTable.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
|
|
|
|
'Rename sketch?
|
|
|
|
swSkMgr.InsertSketch(True)
|
|
|
|
Dim status As Boolean
|
|
Dim swModelDocExtension As ModelDocExtension
|
|
|
|
swModelDocExtension = Model.Extension
|
|
status = swModelDocExtension.SelectByID2("Sketch1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
|
|
|
|
Dim swFeatureMgr As FeatureManager
|
|
swFeatureMgr = Model.FeatureManager
|
|
Dim swFeature As Feature
|
|
|
|
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)
|
|
|
|
Dim iPart As PartDoc
|
|
iPart = swApp.ActiveDoc
|
|
Dim newName As String
|
|
newName = "C:\Users\Anton\Documents\Exjobb\Temp" & "\TESTPART" & 1 & ".SLDPRT"
|
|
longstatus = iPart.SaveAs3(newName, 0, 0)
|
|
|
|
Create_Drawing(iPart)
|
|
|
|
End Sub
|
|
|
|
Public Shared Sub Create_Drawing(iModel As SldWorks.IModelDoc2)
|
|
Dim swApp As SldWorks.SldWorks
|
|
swApp = CType(System.Runtime.InteropServices.Marshal.GetActiveObject("SldWorks.Application"), SldWorks.SldWorks)
|
|
|
|
Dim iPart As PartDoc
|
|
iPart = swApp.ActiveDoc
|
|
|
|
Dim iDrawing As DrawingDoc
|
|
Dim swSheetWidth As Double
|
|
swSheetWidth = 0.42
|
|
Dim swSheetHeight As Double
|
|
swSheetHeight = 0.297
|
|
iDrawing = swApp.NewDocument("C:\ProgramData\SolidWorks\SOLIDWORKS 2020\templates\Drawing.drwdot", 12, swSheetWidth, swSheetHeight)
|
|
|
|
Dim swSheet As Sheet
|
|
swSheet = iDrawing.GetCurrentSheet()
|
|
swSheet.SetProperties2(12, 12, 1, 1, False, swSheetWidth, swSheetHeight, True)
|
|
swSheet.SetTemplateName("C:\ProgramData\SolidWorks\SOLIDWORKS 2020\lang\english\sheetformat\a3 - iso.slddrt")
|
|
swSheet.ReloadTemplate(True)
|
|
|
|
Dim myView As View
|
|
myView = iDrawing.CreateDrawViewFromModelView3("C:\Users\Anton\Documents\Exjobb\Temp\TESTPART1.SLDPRT", "*Front", swSheetWidth / 2, swSheetHeight / 2, 0)
|
|
|
|
Dim swExtensions = iModel.Extension
|
|
Dim RootComp = myView.RootDrawingComponent
|
|
Dim CompName = RootComp.Name
|
|
|
|
Dim dimension As SldWorks.IDisplayDimension
|
|
Dim OutLine = myView.GetOutline
|
|
Dim X_Mid = (OutLine(2) - OutLine(0)) / 2 + OutLine(0)
|
|
Dim Y_Mid = (OutLine(3) - OutLine(1)) / 2 + OutLine(1)
|
|
|
|
Dim point1Name As String = "Point1@Sketch1@TESTPART1.SLDPRT"
|
|
Dim point2Name As String = "Point2@Sketch1@TESTPART1.SLDPRT"
|
|
|
|
swExtensions.SelectByID2(point1Name, "POINT", 0, 0, 0, True, 0, Nothing, 0)
|
|
swExtensions.SelectByID2(point2Name, "POINT", 0, 0, 0, True, 0, Nothing, 0)
|
|
|
|
dimension = iDrawing.adddimension2(X_Mid, OutLine(1), 0)
|
|
|
|
iDrawing.ClearSelection2(True)
|
|
dimension.SetUnits2(False, 0, 1, 0, True, 12)
|
|
dimension.CenterText = True
|
|
dimension.SetPrecision3(0, 0, 0, 0)
|
|
|
|
Dim longstatus As Integer
|
|
Dim newName As String
|
|
newName = "C:\Users\Anton\Documents\Exjobb\Temp" & "\TESTDRAWING" & 1 & ".SLDDRW"
|
|
longstatus = iDrawing.SaveAs3(newName, 0, 0)
|
|
End Sub
|
|
|
|
End Class
|