Imports System.Runtime.InteropServices
Imports System.IO
Public Class Form1
Private Sub PMIModelViews_Click(sender As Object, e As EventArgs) Handles PMIModelViews.Click
Dim objApplication As SolidEdgeFramework.Application = Nothing
Dim objDocument As SolidEdgePart.PartDocument = Nothing
Dim objPMI As SolidEdgeFrameworkSupport.PMI = Nothing
Dim objPMIMVs As SolidEdgeFrameworkSupport.PMIModelViews = Nothing
Dim objPMIMV As SolidEdgeFrameworkSupport.PMIModelView = Nothing
Dim objApp As SolidEdgeFramework.Application = Nothing
Dim count As Integer = 0
Dim SEInstallDir As DirectoryInfo
Try
objApplication = Marshal.GetActiveObject("SolidEdge.Application")
'Get Solid Edge Installation directory
SEInstallDir = GetTrainingFolder()
'Open 17_tooth_pinion.par from training folder
objDocument = objApplication.Documents.Open(SEInstallDir.FullName + "\17_tooth_pinion.par")
'objDocument = objApplication.ActiveDocument
'Get the PMI object
objDocument.PMI_ByModelState(objPMI)
'Get the model view collection
objPMIMVs = objPMI.PMIModelViews
'Add model view object
objPMIMV = objPMIMVs.Add("View1", SolidEdgeFrameworkSupport.PMIRenderModeConstants.sePMIModelViewRenderModeShadedWithVisibleEdges)
'Count of model views
count = objPMIMVs.Count
'Get the Application
objApp = objPMIMVs.Application
Catch ex As Exception
MsgBox(ex.Message)
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
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.IO;
public class Form1
{
private void PMIModelViews_Click(object sender, EventArgs e)
{
SolidEdgeFramework.Application objApplication = null;
SolidEdgePart.PartDocument objDocument = null;
SolidEdgeFrameworkSupport.PMI objPMI = null;
SolidEdgeFrameworkSupport.PMIModelViews objPMIMVs = null;
SolidEdgeFrameworkSupport.PMIModelView objPMIMV = null;
SolidEdgeFramework.Application objApp = null;
int count = 0;
DirectoryInfo SEInstallDir = null;
try
{
objApplication = (SolidEdgeFramework.Application)Marshal.GetActiveObject("SolidEdge.Application");
//Get Solid Edge Installation directory
SEInstallDir = GetTrainingFolder();
//Open 17_tooth_pinion.par from training folder
objDocument = objApplication.Documents.Open(SEInstallDir.FullName + "\\17_tooth_pinion.par");
//objDocument = objApplication.ActiveDocument
//Get the PMI object
objDocument.PMI_ByModelState(objPMI);
//Get the model view collection
objPMIMVs = objPMI.PMIModelViews;
//Add model view object
objPMIMV = objPMIMVs.Add("View1", SolidEdgeFrameworkSupport.PMIRenderModeConstants.sePMIModelViewRenderModeShadedWithVisibleEdges);
//Count of model views
count = objPMIMVs.Count;
//Get the Application
objApp = objPMIMVs.Application;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
public DirectoryInfo GetTrainingFolder()
{
SEInstallDataLib.SEInstallData objInstallData = null;
DirectoryInfo objInstallFolder = null;
DirectoryInfo objTrainingFolder = null;
try
{
objInstallData = new SEInstallDataLib.SEInstallData();
objInstallFolder = new DirectoryInfo(objInstallData.GetInstalledPath());
objTrainingFolder = new DirectoryInfo(Path.Combine(objInstallFolder.Parent.FullName, "Training"));
}
catch
{
}
finally
{
if (objInstallData != null)
{
Marshal.FinalReleaseComObject(objInstallData);
objInstallData = null;
}
}
return objTrainingFolder;
}
public Form1()
{
SubscribeToEvents();
}
private bool EventsSubscribed = false;
private void SubscribeToEvents()
{
if (EventsSubscribed)
return;
else
EventsSubscribed = true;
PMIModelViews.Click += PMIModelViews_Click;
}
}