Imports System.IO
Imports System.Runtime.InteropServices
Module Example
<STAThread()> _
Sub Main()
Dim objApplication As SolidEdgeFramework.Application = Nothing
Dim objAssemblyDocument As SolidEdgeAssembly.AssemblyDocument = Nothing
Dim objAssemblyCopies As SolidEdgeAssembly.AssemblyCopies = Nothing
Dim objAssemblyCopy As SolidEdgeAssembly.AssemblyCopy = Nothing
Dim objCoordinateSystem As SolidEdgePart.CoordinateSystem
Dim objSourceAssemblyDocument As SolidEdgeAssembly.AssemblyDocument
Dim objSourceSolidEdgeDocument As SolidEdgeFramework.SolidEdgeDocument
Dim objMirrorAsmRefPlane As SolidEdgeAssembly.AsmRefPlane = objAssemblyCopy.MirrorPlane
Try
OleMessageFilter.Register()
objApplication = Marshal.GetActiveObject("SolidEdge.Application")
objAssemblyDocument = objApplication.ActiveDocument
objAssemblyCopies = objAssemblyDocument.AssemblyCopies
objAssemblyCopy = objAssemblyCopies.Item("Assembly Copy_1")
objCoordinateSystem = objAssemblyCopy.CoordinateSystem
Console.Write("Add new components on update: ")
Console.WriteLine(objAssemblyCopy.AddNewComponentsOnUpdate)
Console.Write("IsFrozen: ")
Console.WriteLine(objAssemblyCopy.IsFrozen)
Console.Write("Is Out of Date: ")
Console.WriteLine(objAssemblyCopy.IsOutOfDate)
Console.Write("IncludeAssemblyFeatures: ")
Console.WriteLine(objAssemblyCopy.IncludeAssemblyFeatures)
Console.Write("Coordinate System: : ")
Console.WriteLine(objCoordinateSystem.DisplayName)
Console.Write("Source Document Name: ")
Console.WriteLine(objAssemblyCopy.SourceFilename)
Console.Write("Source Document Display Name: ")
If Not (objAssemblyCopy.AssemblyCopyType = SolidEdgeAssembly.AssemblyCopyTypeConstants.seAssemblyCopyTypeMultiBodyPart) Then
objSourceAssemblyDocument = objAssemblyCopy.SourceDocument
Console.WriteLine(objSourceAssemblyDocument.DisplayName)
Else
objSourceSolidEdgeDocument = objAssemblyCopy.SourceDocument
Console.WriteLine(objSourceSolidEdgeDocument.FullName)
End If
objMirrorAsmRefPlane = objAssemblyCopy.MirrorPlane
If (objMirrorAsmRefPlane Is Nothing) Then
Console.WriteLine("No mirror plane")
Else
Console.Write("Mirror plane: ")
Console.WriteLine(objMirrorAsmRefPlane.Name)
End If
If (objAssemblyCopy.AssemblyCopyType = SolidEdgeAssembly.AssemblyCopyTypeConstants.seAssemblyCopyTypeDefault) Then
Console.WriteLine("Copy Type: Default")
ElseIf (objAssemblyCopy.AssemblyCopyType = SolidEdgeAssembly.AssemblyCopyTypeConstants.seAssemblyCopyTypeMirror) Then
Console.WriteLine("Copy Type: Mirror")
Else
Console.WriteLine("Copy Type: MultiPart")
End If
If (objAssemblyCopy.Status = SolidEdgeAssembly.AssemblyCopyStatusConstants.seAssemblyCopyStatusOK) Then
Console.WriteLine("Copy is OK")
Else
Console.WriteLine("Copy has a problem")
End If
Dim inArray As Array = Array.CreateInstance(GetType(System.Object), 2)
Dim outArray As Array = Array.CreateInstance(GetType(SolidEdgeAssembly.Occurrence), 2)
Dim fileArray As Array = Array.CreateInstance(GetType(System.Object), 2)
Dim ActionArray As Array = Array.CreateInstance(GetType(SolidEdgeConstants.AssemblyCopyActionConstants), 2)
Dim AdjustArray As Array = Array.CreateInstance(GetType(SolidEdgeConstants.AssemblyCopyPlaneConstants), 2)
Dim EnumArray As Array = Array.CreateInstance(GetType(SolidEdgeConstants.AssemblyCopyUserConstants), 2)
objAssemblyCopy.GetDefinition(inArray, outArray, ActionArray, AdjustArray, EnumArray)
Dim x As Integer = 1
For x = 0 To inArray.Length - 1 Step 1
Dim occ As SolidEdgeAssembly.Occurrence = inArray(x)
Console.Write(occ.Name)
Console.Write(" input: ")
If Not (outArray(x) Is Nothing) Then
occ = outArray(x)
Console.Write(occ.Name)
Else
Console.Write(" Excluded")
End If
If (ActionArray(x) = SolidEdgeConstants.AssemblyCopyActionConstants.seAssemblyCopyActionInclude) Then
Console.Write(" Included ")
ElseIf (ActionArray(x) = SolidEdgeConstants.AssemblyCopyActionConstants.seAssemblyCopyActionMirror) Then
Console.Write(" Mirrored ")
ElseIf (ActionArray(x) = SolidEdgeConstants.AssemblyCopyActionConstants.seAssemblyCopyActionRotate) Then
Console.Write(" Rotated ")
ElseIf (ActionArray(x) = SolidEdgeConstants.AssemblyCopyActionConstants.seAssemblyCopyActionPending) Then
Console.Write(" Pending ")
Else
Console.Write(" Excluded ")
End If
If (EnumArray(x) = SolidEdgeConstants.AssemblyCopyUserConstants.seAssemblyCopyDefault) Then
Console.Write(" Default ")
Else
Console.Write(" Modified ")
End If
Console.WriteLine(AdjustArray(x))
Next
Catch ex As Exception
Console.WriteLine(ex.Message)
Finally
OleMessageFilter.Revoke()
End Try
End Sub
End Module