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 sectionView As SolidEdgeDraft.DrawingView
Dim draftProfile As SolidEdgeDraft.DraftProfile
Dim xmin, ymin, xmax, ymax As Double
Dim xhalf, yhalf As Double
Dim BOSProfile As SolidEdgeDraft.BrokenOutSectionProfile = Nothing
Dim BOS As SolidEdgeDraft.BrokenOutSectionProfiles = Nothing
Dim BOSProfiles As SolidEdgeDraft.BrokenOutSectionProfiles
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)
objSheet = objDraftDoc.ActiveSheet
objDrawingViews = objSheet.DrawingViews
objDrawingView = objDrawingViews.Item(1)
BOSProfiles = objDrawingView.BrokenOutSectionProfiles
BOSProfile = BOSProfiles.Add()
draftProfile = BOSProfile.Profile
draftProfile.BeginEdit()
objDrawingView.Range(xmin, ymin, xmax, ymax)
xhalf = xmin + (xmax - xmin) / 2
yhalf = ymin + (ymax - ymin) / 2
draftProfile.Circles2d.AddByCenterRadius(xhalf, yhalf, 0.25 * (xmax - xmin))
draftProfile.EndEdit()
sectionView = BOSProfile.TargetView
BOSProfile.Depth = 0.2
BOSProfile.DepthPlaneOffset = 0.1
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