Imports System.IO
Imports System.Runtime.InteropServices
Public Class Form1
Private Sub GetTextAndFontAtIndex_Click(sender As Object, e As EventArgs) Handles GetTextAndFontAtIndex.Click
Dim objApplication As SolidEdgeFramework.Application = Nothing
Dim SEInstallDir As DirectoryInfo
Dim PartDoc As SolidEdgePart.PartDocument = Nothing
Dim DraftDoc As SolidEdgeDraft.DraftDocument = Nothing
Dim Dimensions As SolidEdgeFrameworkSupport.Dimensions = Nothing
Dim PMIcoll As SolidEdgeFrameworkSupport.PMI = Nothing
Dim Csys As SolidEdgePart.CoordinateSystem = Nothing
Dim CsysS As SolidEdgePart.CoordinateSystems = Nothing
Dim oDim As SolidEdgeFrameworkSupport.Dimension = Nothing
Dim DimData As SolidEdgeFrameworkSupport.DisplayData = Nothing
Dim x As Double
Dim y As Double
Dim z As Double
Dim Xdirx As Double
Dim Xdiry As Double
Dim Xdirz As Double
Dim Zdirx As Double
Dim Zdiry As Double
Dim Zdirz As Double
Dim x2 As Double
Dim y2 As Double
Dim z2 As Double
Dim i As Integer
Dim iCnt As Integer
Dim FontName As String = Nothing
Dim Str1 As String = Nothing
Try
objApplication = Marshal.GetActiveObject("SolidEdge.Application")
SEInstallDir = GetTrainingFolder()
PartDoc = objApplication.Documents.Open(SEInstallDir.FullName + "\Spindle1.par")
Call PartDoc.PMI_ByModelState(PMIcoll, SolidEdgePart.PMIModelStateConstants.seDesignModelState)
Dimensions = PMIcoll.Dimensions
CsysS = PartDoc.CoordinateSystems
For Each oDim In Dimensions
DimData = oDim.GetDisplayData
iCnt = DimData.GetTextCount
For i = 0 To (iCnt - 1)
DimData.GetTextAndFontAtIndex(i, Str1, FontName, x, y, z, Xdirx, Xdiry, Xdirz, Zdirx, Zdiry, Zdirz)
x2 = x + Xdirx
y2 = y + Xdiry
z2 = z + Xdirz
'Add Coordinate System to identify the exact point on screen
Csys = CsysS.Add(x, y, z)
Csys = CsysS.Add(x2, y2, z2)
x2 = x + Zdirx
y2 = y + Zdiry
z2 = z + Zdirz
Csys = CsysS.Add(x2, y2, z2)
Next i
Next
Catch ex As Exception
MsgBox(ex.ToString)
Clipboard.SetText(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