Imports System.IO
Imports System.Runtime.InteropServices
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim objApplication As SolidEdgeFramework.Application = Nothing
Dim objFolder As DirectoryInfo
Dim objFileInfo As FileInfo
Dim objDocuments As SolidEdgeFramework.Documents = Nothing
Dim objDraftDoc As SolidEdgeDraft.DraftDocument = Nothing
Dim objSheet As SolidEdgeDraft.Sheet = Nothing
Dim objDrawingViews As SolidEdgeDraft.DrawingViews = Nothing
Dim objDrawingView As SolidEdgeDraft.DrawingView = Nothing
Dim CPLs As SolidEdgeDraft.CuttingPlanes
Dim CPL As SolidEdgeDraft.CuttingPlane
Dim sectionView As SolidEdgeDraft.DrawingView
Dim draftProfile As SolidEdgeDraft.DraftProfile
Dim xmin, ymin, xmax, ymax As Double
Dim xhalf As Double
Try
objApplication = Marshal.GetActiveObject("SolidEdge.Application")
If objApplication Is Nothing Then
' Start Solid Edge
objApplication = Activator.CreateInstance(Type.GetTypeFromProgID("SolidEdge.Application"))
objApplication.Visible = True
End If
objFolder = GetTrainingFolder()
objFileInfo = New FileInfo(Path.Combine(objFolder.FullName, "sbddaan.dft"))
objDocuments = objApplication.Documents
objDraftDoc = objDocuments.Open(objFileInfo.FullName)
'objDraftDoc = objApplication.ActiveDocument
objSheet = objDraftDoc.ActiveSheet
objDrawingViews = objSheet.DrawingViews
objDrawingView = objDrawingViews.Item(1)
CPLs = objDrawingView.CuttingPlanes
CPL = CPLs.Add()
CPL = CPLs.Item(1)
'User can get position of multisegment section line by using profile
draftProfile = CPL.Profile
draftProfile.BeginEdit()
objDrawingView.Range(xmin, ymin, xmax, ymax)
xhalf = xmin + (xmax - xmin) / 2
ymax += 0.01
ymin -= 0.01
draftProfile.Lines2d.AddBy2Points(xhalf, ymax, xhalf, ymin)
If (Not SolidEdgeDraft.ProfileValidationStatus.igProfileStatusValid =
draftProfile.Validate()) Then
End If
draftProfile.EndEdit()
CPL.ViewSide = SolidEdgeFramework.SectionViewProfileSide.igRightProfileSide
'User can set the active segment by using FoldSegment API
CPL.FoldSegment = draftProfile.Lines2d.Count
sectionView = CPL.CreateView()
sectionView.Update()
Catch ex As Exception
MessageBox.Show(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