61 lines
1.9 KiB
VB.net
61 lines
1.9 KiB
VB.net
Imports XCCLibrary
|
|
'Imports SolidWorks.Interop.sldworks
|
|
'Imports SolidWorks.Interop.swconst
|
|
Imports System.Runtime.InteropServices
|
|
Imports System
|
|
Imports SldWorks
|
|
Public Class Program
|
|
Public Shared Sub Export_SW(pointTable As DataTable)
|
|
Dim swApp As SldWorks.SldWorks
|
|
swApp = CType(System.Runtime.InteropServices.Marshal.GetActiveObject("SldWorks.Application"), SldWorks.SldWorks)
|
|
Dim Model As ModelDoc2
|
|
Dim Part As PartDoc
|
|
Dim RootPoint(2) As Double
|
|
Dim Normal(2) As Double
|
|
'Dim TempBody As Body2
|
|
'Dim isGood As Boolean
|
|
swApp.UserControl = True
|
|
'Create a new blank document
|
|
Model = swApp.NewDocument("C:\ProgramData\SOLIDWORKS\SOLIDWORKS 2020\templates\part.prtdot", 0, 0, 0)
|
|
Part = Model
|
|
|
|
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
|
|
|
|
swSkMgr.InsertSketch(True)
|
|
End Sub
|
|
|
|
End Class
|