Imports System.Runtime.InteropServices
Imports System
Imports System.ComponentModel
Public Class GetSimplifiedBodies2
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim objApplication As SolidEdgeFramework.Application = Nothing
Dim objAssy As SolidEdgeAssembly.AssemblyDocument = Nothing
Dim objOccs As SolidEdgeAssembly.Occurrences = Nothing
Dim objOcc As SolidEdgeAssembly.Occurrence = Nothing
Dim numBodies As Integer = 0
Dim SimplifiedBodies As System.Array = Array.CreateInstance(GetType(System.Object), 1)
Dim SimplifiedTransforms As System.Array = Array.CreateInstance(GetType(System.Object), 1)
Dim currentBody As SolidEdgeGeometry.Body = Nothing
Dim currentTransform As System.Array = Nothing
Dim objType As Type = Nothing
Try
' Create/get the application with specific settings
objApplication = Marshal.GetActiveObject("SolidEdge.Application")
If objApplication Is Nothing Then
' Get the type from the Solid Edge ProgID
objType = Type.GetTypeFromProgID("SolidEdge.Application")
' Start Solid Edge
objApplication = Activator.CreateInstance(objType)
' Make Solid Edge visible
objApplication.Visible = True
End If
'Get reference to active document
'Here first occurrence of the assembly must be simplified assembly
objAssy = objApplication.ActiveDocument
objOccs = objAssy.Occurrences()
objOcc = objOccs.Item(1)
objOcc.GetSimplifiedBodies2(numBodies, SimplifiedBodies, SimplifiedTransforms)
For i As Integer = 0 To numBodies - 1
currentBody = SimplifiedBodies(i)
currentTransform = SimplifiedTransforms(i)
Console.WriteLine(currentBody.Tag)
For j As Integer = 0 To 15
Console.WriteLine(currentTransform(j))
Console.WriteLine(vbTab)
If (j Mod 4 = 3) Then
Console.WriteLine()
End If
Next
Next
Catch ex As Exception
MsgBox(ex.Message)
Finally
If Not (objApplication Is Nothing) Then
Marshal.ReleaseComObject(objApplication)
objApplication = Nothing
End If
If Not (objAssy Is Nothing) Then
Marshal.ReleaseComObject(objAssy)
objAssy = Nothing
End If
If Not (objOccs Is Nothing) Then
Marshal.ReleaseComObject(objOccs)
objOccs = Nothing
End If
If Not (objOcc Is Nothing) Then
Marshal.ReleaseComObject(objOcc)
objOcc = Nothing
End If
End Try
End Sub
End Class