Imports System.Runtime.InteropServices
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim objApp As SolidEdgeFramework.Application = Nothing
Dim objDoc As SolidEdgeAssembly.AssemblyDocument = Nothing
Dim paths As SolidEdgeAssembly.Paths = Nothing
Dim path As SolidEdgeAssembly.Path = Nothing
Dim x As Integer
Dim name As String
Dim pointtypes(1) As SolidEdgeConstants.PointTypeConstants
Dim points(5) As Double
Dim edgeset(1) As Object
Dim pointtyp(1) As SolidEdgeConstants.KeyPointType
Dim obj1Ref1 As Object
Dim objFirstPart As SolidEdgeAssembly.Occurrence
Dim objVer1 As SolidEdgeGeometry.Vertex
Dim face1 As SolidEdgeGeometry.Edge
Dim extprot As SolidEdgePart.ExtrudedProtrusion
Dim leng As Double
Dim arraydouble(5) As Double
Try
objApp = Marshal.GetActiveObject("SolidEdge.Application")
If objApp Is Nothing Then
objApp = Activator.CreateInstance(Type.GetTypeFromProgID("SolidEdge.Application"))
objApp.Visible = True
End If
'Asm1.asm is a simple assembly having a cube in it
objDoc = objApp.Documents.Open("c:\asm1.asm")
paths = objDoc.Paths
x = paths.Count()
pointtypes(0) = SolidEdgeConstants.PointTypeConstants.igKeyPoint
pointtypes(1) = SolidEdgeConstants.PointTypeConstants.igSpacePoint
points(0) = 0
points(1) = 0
points(2) = 0.01
points(3) = 0
points(4) = 0.01
points(5) = 0.01
objFirstPart = objDoc.Occurrences.Item(1)
extprot = objFirstPart.PartDocument.Models(1).ExtrudedProtrusions(1)
face1 = extprot.BottomCap.Edges(1)
objVer1 = face1.StartVertex
obj1Ref1 = objDoc.CreateReference(objFirstPart, objVer1)
edgeset(0) = obj1Ref1
path = paths.Add(2, pointtypes, edgeset, pointtyp, points, _
SolidEdgePart.KeypointEndConditionConstants.seKeypointEndConditionNatural, _
SolidEdgePart.KeypointEndConditionConstants.seKeypointEndConditionNatural)
path.GetLength(leng)
path.GetEndPoints(arraydouble)
name = path.Name
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
End Class
using System.Windows.Forms;
using System.Runtime.InteropServices;
public class Form1
{
private void Button1_Click(object sender, EventArgs e)
{
SolidEdgeFramework.Application objApp = null;
SolidEdgeAssembly.AssemblyDocument objDoc = null;
SolidEdgeAssembly.Paths paths = null;
SolidEdgeAssembly.Path path = null;
int x = 0;
string name = null;
SolidEdgeConstants.PointTypeConstants[] pointtypes = new SolidEdgeConstants.PointTypeConstants[2];
double[] points = new double[6];
object[] edgeset = new object[2];
SolidEdgeConstants.KeyPointType[] pointtyp = new SolidEdgeConstants.KeyPointType[2];
object obj1Ref1 = null;
SolidEdgeAssembly.Occurrence objFirstPart = null;
SolidEdgeGeometry.Vertex objVer1 = null;
SolidEdgeGeometry.Edge face1 = null;
SolidEdgePart.ExtrudedProtrusion extprot = null;
double leng = 0;
double[] arraydouble = new double[6];
try
{
objApp = (SolidEdgeFramework.Application)Marshal.GetActiveObject("SolidEdge.Application");
if (objApp == null)
{
objApp = Activator.CreateInstance(Type.GetTypeFromProgID("SolidEdge.Application"));
objApp.Visible = true;
}
//Asm1.asm is a simple assembly having a cube in it
objDoc = objApp.Documents.Open("c:\\asm1.asm");
paths = objDoc.Paths;
x = paths.Count();
pointtypes[0] = SolidEdgeConstants.PointTypeConstants.igKeyPoint;
pointtypes[1] = SolidEdgeConstants.PointTypeConstants.igSpacePoint;
points[0] = 0;
points[1] = 0;
points[2] = 0.01;
points[3] = 0;
points[4] = 0.01;
points[5] = 0.01;
objFirstPart = objDoc.Occurrences.Item(1);
extprot = objFirstPart.PartDocument.Models(1).ExtrudedProtrusions(1);
face1 = extprot.BottomCap.Edges(1);
objVer1 = face1.StartVertex;
obj1Ref1 = objDoc.CreateReference(objFirstPart, objVer1);
edgeset[0] = obj1Ref1;
path = paths.Add(2, pointtypes, edgeset, pointtyp, points, SolidEdgePart.KeypointEndConditionConstants.seKeypointEndConditionNatural, SolidEdgePart.KeypointEndConditionConstants.seKeypointEndConditionNatural);
path.GetLength(leng);
path.GetEndPoints(arraydouble);
name = path.Name;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
public Form1()
{
SubscribeToEvents();
}
private bool EventsSubscribed = false;
private void SubscribeToEvents()
{
if (EventsSubscribed)
return;
else
EventsSubscribed = true;
Button1.Click += Button1_Click;
}
}