Imports System.IO
Imports System.Runtime.InteropServices
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim objSEApplication As SolidEdgeFramework.Application = Nothing
Dim objAsmDoc As SolidEdgeAssembly.AssemblyDocument = Nothing
Dim objpaths As SolidEdgeAssembly.Paths = Nothing
Dim objpath As SolidEdgeAssembly.Path = Nothing
Dim objNewpath As SolidEdgeAssembly.Path = Nothing
Dim x As Integer
Dim pointtypes(1) As SolidEdgeConstants.PointTypeConstants
Dim points(5) As Double
Dim edgeset(1) As Object
Dim pointtyp(1) As SolidEdgeConstants.KeyPointType
Dim obj1Ref1 As Object
Dim objFirstPart As SolidEdgeAssembly.Occurrence = Nothing
Dim objVer1 As SolidEdgeGeometry.Vertex = Nothing
Dim objEdge As SolidEdgeGeometry.Edge = Nothing
Dim objEdges As SolidEdgeGeometry.Edges = Nothing
Dim extprot As SolidEdgePart.ExtrudedProtrusion = Nothing
Dim arraydouble(5) As Double
Dim SEInstallDir As DirectoryInfo
Try
'Get Solid Edge Application
objSEApplication = Marshal.GetActiveObject("SolidEdge.Application")
'Get Solid Edge Installation directory
SEInstallDir = GetTrainingFolder()
'Open carrier.asm
objAsmDoc = objSEApplication.Documents.Open(SEInstallDir.FullName + "\carrier.asm")
objpaths = objAsmDoc.Paths
x = objpaths.Count()
pointtypes(0) = SolidEdgeConstants.PointTypeConstants.igKeyPoint
pointtypes(1) = SolidEdgeConstants.PointTypeConstants.igSpacePoint
points(0) = 0
points(1) = 0
points(2) = 0.01
points(3) = 0
points(4) = 0.01
points(5) = 0.01
objFirstPart = objAsmDoc.Occurrences.Item(1)
extprot = objFirstPart.PartDocument.Models(1).ExtrudedProtrusions(1)
objEdges = extprot.Edges(SolidEdgeGeometry.FeatureTopologyQueryTypeConstants.igQueryAll)
objEdge = objEdges.Item(1)
objVer1 = objEdge.StartVertex
obj1Ref1 = objAsmDoc.CreateReference(objFirstPart, objVer1)
edgeset(0) = obj1Ref1
'Add path in assembly
objpath = objpaths.Add(2, pointtypes, edgeset, pointtyp, points, _
SolidEdgePart.KeypointEndConditionConstants.seKeypointEndConditionNatural, _
SolidEdgePart.KeypointEndConditionConstants.seKeypointEndConditionNatural)
'Split newly added path
objpath.SplitPath(-0.02517006160917697, -0.011458307211285591, 0.018564165127765955, objNewpath)
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Function GetTrainingFolder() As DirectoryInfo
Dim objInstallData As SEInstallDataLib.SEInstallData = Nothing
Dim objInstallFolder As DirectoryInfo = Nothing
Dim objTrainingFolder As DirectoryInfo = Nothing
Try
objInstallData = New SEInstallDataLib.SEInstallData
objInstallFolder = New DirectoryInfo(objInstallData.GetInstalledPath())
objTrainingFolder = New DirectoryInfo(Path.Combine(objInstallFolder.Parent.FullName, "Training"))
Catch
Finally
If Not (objInstallData Is Nothing) Then
Marshal.FinalReleaseComObject(objInstallData)
objInstallData = Nothing
End If
End Try
Return objTrainingFolder
End Function
End Class