Imports System.IO
Imports System.Runtime.InteropServices
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim objSEApplication As SolidEdgeFramework.Application = Nothing
Dim objDoc As SolidEdgeAssembly.AssemblyDocument = Nothing
Dim objOcc As SolidEdgeAssembly.Occurrence = Nothing
Dim MoveType As SolidEdgeAssembly.MoveMultipleMoveTypeConstants
Dim RelationshipMaintenanceType As SolidEdgeAssembly.MoveMultipleRelationshipConstants
Dim objOccurrences As SolidEdgeAssembly.Occurrences = Nothing
Dim objOccurrencesToMove() As Object
Dim NewOccurrences As Array
Dim Count As Long
Dim FromX As Double
Dim FromY As Double
Dim FromZ As Double
Dim ToX As Double
Dim ToY As Double
Dim ToZ As Double
Dim Copy As Boolean = True
Dim MaintainRelationships As Boolean = True
Dim DropRelationships As Boolean = False
Dim SEInstallDir As DirectoryInfo
Try
Count = 0
FromX = 0.0
FromY = 0.0
FromZ = 0.0
ToX = 0.05
ToY = 0.05
ToZ = 0.05
' Get the application
objSEApplication = Marshal.GetActiveObject("SolidEdge.Application")
SEInstallDir = GetTrainingFolder()
objDoc = objSEApplication.Documents.Open(SEInstallDir.FullName + "\carrier.asm")
' Get the active document
objDoc = objSEApplication.ActiveDocument
objOccurrences = objDoc.Occurrences
For Each objOcc In objOccurrences
Count = Count + 1
Next
If (Count <> 0) Then
Dim i As Integer
ReDim objOccurrencesToMove(Count)
For i = 1 To Count
objOccurrencesToMove(i - 1) = objOccurrences.Item(i)
Next
If (Copy) Then
MoveType = SolidEdgeAssembly.MoveMultipleMoveTypeConstants.seMoveMultipleCopy
Else
MoveType = SolidEdgeAssembly.MoveMultipleMoveTypeConstants.seMoveMultipleMove
End If
If (MaintainRelationships) Then
RelationshipMaintenanceType = SolidEdgeAssembly.MoveMultipleRelationshipConstants.seMoveMultipleMaintainInternalRelationships
ElseIf (DropRelationships) Then
RelationshipMaintenanceType = SolidEdgeAssembly.MoveMultipleRelationshipConstants.seMoveMultipleDropInternalRelationships
Else
RelationshipMaintenanceType = SolidEdgeAssembly.MoveMultipleRelationshipConstants.seMoveMultipleDropInternalRelationshipsAndGround
End If
objDoc.TranslateMultipleOccurrences(Count, objOccurrencesToMove, MoveType, RelationshipMaintenanceType, FromX, FromY, FromZ, ToX, ToY, ToZ, NewOccurrences)
End If
Catch ex As Exception
MsgBox(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