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 objDoc As SolidEdgePart.PartDocument = Nothing
Dim objAsmDoc As SolidEdgeAssembly.AssemblyDocument = Nothing
Dim objEdges As SolidEdgeGeometry.Edges = Nothing
Dim objEdge1 As SolidEdgeGeometry.Edge = Nothing
Dim objEdge2 As SolidEdgeGeometry.Edge = Nothing
Dim objEdge3 As SolidEdgeGeometry.Edge = Nothing
Dim objEdge4 As SolidEdgeGeometry.Edge = Nothing
Dim objRefEdge1 As SolidEdgeFramework.Reference = Nothing
Dim objRefEdge2 As SolidEdgeFramework.Reference = Nothing
Dim objRefEdge3 As SolidEdgeFramework.Reference = Nothing
Dim objRefEdge4 As SolidEdgeFramework.Reference = Nothing
Dim objPMI As SolidEdgeFrameworkSupport.PMI = Nothing
Dim objBalloons As SolidEdgeFrameworkSupport.Balloons = Nothing
Dim objBalloon1 As SolidEdgeFrameworkSupport.Balloon = Nothing
Dim objBalloon2 As SolidEdgeFrameworkSupport.Balloon = Nothing
Dim objBalloon3 As SolidEdgeFrameworkSupport.Balloon = Nothing
Dim objBalloon4 As SolidEdgeFrameworkSupport.Balloon = Nothing
Dim objAnnotInitData1 As SolidEdgeFrameworkSupport.AnnotInitData = Nothing
Dim objAnnotInitData2 As SolidEdgeFrameworkSupport.AnnotInitData = Nothing
Dim objAnnotInitData3 As SolidEdgeFrameworkSupport.AnnotInitData = Nothing
Dim objAnnotInitData4 As SolidEdgeFrameworkSupport.AnnotInitData = Nothing
Dim objOcc As SolidEdgeAssembly.Occurrence = Nothing
Dim objRPlanes As SolidEdgeAssembly.AsmRefPlanes = Nothing
Dim objAnnotPlane As SolidEdgeAssembly.AsmRefPlane = Nothing
Dim strPart1 As String
Dim strPart2 As String
Dim strPart3 As String
Dim strPart4 As String
Dim SEInstallDir As DirectoryInfo
Try
objApplication = Marshal.GetActiveObject("SolidEdge.Application")
SEInstallDir = GetTrainingFolder()
'Open the sample Assembly document
objAsmDoc = objApplication.Documents.Open(SEInstallDir.FullName + "\Carrier.asm")
objAsmDoc.PMI_ByModelState(objPMI)
objBalloons = objPMI.Balloons
'Set the assembly reference plane.
objRPlanes = objAsmDoc.AsmRefPlanes
objAnnotPlane = objRPlanes.Item(3)
'For occurrence - 1
objOcc = objAsmDoc.Occurrences.Item(1)
objOcc.Activate = True
objDoc = objOcc.OccurrenceDocument
objEdges = objDoc.Models.Item(1).ExtrudedProtrusions.Item(1).Edges(SolidEdgeConstants.FeatureTopologyQueryTypeConstants.igQueryAll)
objEdge1 = objEdges.Item(3)
objRefEdge1 = objAsmDoc.CreateReference(objOcc, objEdge1)
objAnnotInitData1 = objBalloons.AnnotInitData
'create callout with terminator element.
Call objAnnotInitData1.ClearTerminatorElement()
Call objAnnotInitData1.SetPlane(objAnnotPlane)
Call objAnnotInitData1.SetTerminatorElementEx(objRefEdge1, True, 0.5, 0.2, 0.001)
objBalloon1 = objBalloons.AddBalloon(AnnotInitData:=objAnnotInitData1)
objBalloon1.Callout = True
objBalloon1.Leader = True
objBalloon1.BreakLine = True
objBalloon1.BalloonText = "%{File Name (full path)|GP}"
Call objBalloon1.AddVertex(x:=0.3, y:=0.25, z:=0.007)
strPart1 = objBalloon1.BalloonDisplayedText
MessageBox.Show(strPart1)
'For occurrence - 2
objOcc = objAsmDoc.Occurrences.Item(2)
objOcc.Activate = True
objDoc = objOcc.OccurrenceDocument
objEdges = objDoc.Models.Item(1).ExtrudedProtrusions.Item(2).Edges(SolidEdgeConstants.FeatureTopologyQueryTypeConstants.igQueryAll)
objEdge2 = objEdges.Item(3)
objRefEdge2 = objAsmDoc.CreateReference(objOcc, objEdge2)
objAnnotInitData2 = objBalloons.AnnotInitData
'create callout with terminator element.
Call objAnnotInitData2.ClearTerminatorElement()
Call objAnnotInitData2.SetPlane(objAnnotPlane)
Call objAnnotInitData2.SetTerminatorElementEx(objRefEdge2, True, 0.5, 0.2, 0.001)
objBalloon2 = objBalloons.AddBalloon(AnnotInitData:=objAnnotInitData2)
objBalloon2.Callout = True
objBalloon2.Leader = True
objBalloon2.BreakLine = True
objBalloon2.BalloonText = "%{File Name (full path)|GP}"
Call objBalloon2.AddVertex(x:=0.13, y:=0.05, z:=0.007)
strPart2 = objBalloon2.BalloonDisplayedText
MessageBox.Show(strPart2)
'For occurrence - 3
objOcc = objAsmDoc.Occurrences.Item(3)
objOcc.Activate = True
objDoc = objOcc.OccurrenceDocument
objEdges = objDoc.Models.Item(1).ExtrudedProtrusions.Item(3).Edges(SolidEdgeConstants.FeatureTopologyQueryTypeConstants.igQueryAll)
objEdge3 = objEdges.Item(3)
objRefEdge3 = objAsmDoc.CreateReference(objOcc, objEdge3)
objAnnotInitData3 = objBalloons.AnnotInitData
'create callout with terminator element.
Call objAnnotInitData3.ClearTerminatorElement()
Call objAnnotInitData3.SetPlane(objAnnotPlane)
Call objAnnotInitData3.SetTerminatorElementEx(objRefEdge3, True, 0.5, 0.2, 0.001)
objBalloon3 = objBalloons.AddBalloon(AnnotInitData:=objAnnotInitData3)
objBalloon3.Callout = True
objBalloon3.Leader = True
objBalloon3.BreakLine = True
objBalloon3.BalloonText = "%{File Name (full path)|GP}"
Call objBalloon3.AddVertex(x:=0.13, y:=0.05, z:=0.007)
strPart3 = objBalloon3.BalloonDisplayedText
MessageBox.Show(strPart3)
'For occurrence - 4
objOcc = objAsmDoc.Occurrences.Item(4)
objOcc.Activate = True
objDoc = objOcc.OccurrenceDocument
objEdges = objDoc.Models.Item(1).RevolvedProtrusions.Item(4).Edges(SolidEdgeConstants.FeatureTopologyQueryTypeConstants.igQueryAll)
objEdge4 = objEdges.Item(3)
objRefEdge4 = objAsmDoc.CreateReference(objOcc, objEdge4)
objAnnotInitData4 = objBalloons.AnnotInitData
'create callout with terminator element.
Call objAnnotInitData4.ClearTerminatorElement()
Call objAnnotInitData4.SetPlane(objAnnotPlane)
Call objAnnotInitData4.SetTerminatorElementEx(objRefEdge4, True, 0.5, 0.2, 0.001)
objBalloon4 = objBalloons.AddBalloon(AnnotInitData:=objAnnotInitData4)
objBalloon4.Callout = True
objBalloon4.Leader = True
objBalloon4.BreakLine = True
objBalloon4.BalloonText = "%{File Name (full path)|GP}"
Call objBalloon4.AddVertex(x:=0.13, y:=0.05, z:=0.007)
strPart4 = objBalloon4.BalloonDisplayedText
MessageBox.Show(strPart4)
Catch ex As Exception
Console.WriteLine(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