I need to through the program to create a square tube, Code is as follows:
SolidEdgeFramework.Application application = null;
SolidEdgeFramework.Documents documents = null;
SolidEdgePart.PartDocument part = null;
SolidEdgePart.ProfileSets profileSets = null;
SolidEdgePart.ProfileSet profileSet = null;
SolidEdgePart.Profiles profiles = null;
SolidEdgePart.Profile profile = null;
SolidEdgePart.RefPlanes refplanes = null;
SolidEdgeFrameworkSupport.Relations2d relations2d = null;
SolidEdgeFrameworkSupport.Relation2d relation2d = null;
SolidEdgeFrameworkSupport.Lines2d lines2d = null;
SolidEdgeFrameworkSupport.Line2d line2d = null;
SolidEdgeFrameworkSupport.Circle2d circle2d = null;
SolidEdgeFrameworkSupport.Arcs2d arcs = null;
SolidEdgeFrameworkSupport.Arc2d arc = null;
SolidEdgePart.Models models = null;
SolidEdgePart.Model model = null;
System.Array aProfiles = null;
try
{
// Connect to a running instance of Solid Edge
application = (SolidEdgeFramework.Application)Marshal.GetActiveObject("SolidEdge.Application");
// Get a reference to the documents collection
documents = application.Documents;
// Create a new part document
part = (SolidEdgePart.PartDocument)documents.Add("SolidEdge.PartDocument", Missing.Value);
// Get a reference to the profile sets collection
profileSets = part.ProfileSets;
// Add a new profile set
profileSet = profileSets.Add();
// Get a reference to the profiles collection
profiles = profileSet.Profiles;
// Get a reference to the ref planes collection
refplanes = part.RefPlanes;
// Add a new profile
profile = profiles.Add(refplanes.Item(3));
// Get a reference to the lines2d collection
lines2d = profile.Lines2d;
arcs = profile.Arcs2d;
// Draw the outer Profile
lines2d.AddBy2Points(0, 0, 0.08, 0);
lines2d.AddBy2Points(0.08, 0, 0.08, 0.08);
lines2d.AddBy2Points(0.08, 0.08, 0, 0.08);
lines2d.AddBy2Points(0, 0.08, 0, 0);
// Draw the inner Profile
lines2d.AddBy2Points(0.02, 0.02, 0.06, 0.02);
lines2d.AddBy2Points(0.06, 0.02, 0.06, 0.06);
lines2d.AddBy2Points(0.06, 0.06, 0.02, 0.06);
lines2d.AddBy2Points(0.02, 0.06, 0.02, 0.02);
// Define Relations among the Line objects to make the Profile closed
relations2d = (SolidEdgeFrameworkSupport.Relations2d)profile.Relations2d;
relation2d = relations2d.AddKeypoint(lines2d.Item(1), (int)KeypointIndexConstants.igLineEnd, lines2d.Item(2), (int)KeypointIndexConstants.igLineStart, true);
relation2d = relations2d.AddKeypoint(lines2d.Item(2), (int)KeypointIndexConstants.igLineEnd, lines2d.Item(3), (int)KeypointIndexConstants.igLineStart, true);
relation2d = relations2d.AddKeypoint(lines2d.Item(3), (int)KeypointIndexConstants.igLineEnd, lines2d.Item(4), (int)KeypointIndexConstants.igLineStart, true);
relation2d = relations2d.AddKeypoint(lines2d.Item(4), (int)KeypointIndexConstants.igLineEnd, lines2d.Item(1), (int)KeypointIndexConstants.igLineStart, true);
relation2d = relations2d.AddKeypoint(lines2d.Item(5), (int)KeypointIndexConstants.igLineEnd, lines2d.Item(6), (int)KeypointIndexConstants.igLineStart, true);
relation2d = relations2d.AddKeypoint(lines2d.Item(6), (int)KeypointIndexConstants.igLineEnd, lines2d.Item(7), (int)KeypointIndexConstants.igLineStart, true);
relation2d = relations2d.AddKeypoint(lines2d.Item(7), (int)KeypointIndexConstants.igLineEnd, lines2d.Item(8), (int)KeypointIndexConstants.igLineStart, true);
relation2d = relations2d.AddKeypoint(lines2d.Item(8), (int)KeypointIndexConstants.igLineEnd, lines2d.Item(5), (int)KeypointIndexConstants.igLineStart, true);
//relation2d = relations2d.AddKeypoint(lines2d.Item(10), (int)KeypointIndexConstants.igLineEnd, lines2d.Item(11), (int)KeypointIndexConstants.igLineStart, true);
//relation2d = relations2d.AddKeypoint(lines2d.Item(11), (int)KeypointIndexConstants.igLineEnd, lines2d.Item(12), (int)KeypointIndexConstants.igLineStart, true);
//relation2d = relations2d.AddKeypoint(lines2d.Item(12), (int)KeypointIndexConstants.igLineEnd, lines2d.Item(1), (int)KeypointIndexConstants.igLineStart, true);
arcs.AddAsFillet(lines2d.Item(1), lines2d.Item(2), 0.01, -1, 1);
arcs.AddAsFillet(lines2d.Item(2), lines2d.Item(3), 0.01, -1, -1);
arcs.AddAsFillet(lines2d.Item(3), lines2d.Item(4), 0.01, 1, -1);
arcs.AddAsFillet(lines2d.Item(4), lines2d.Item(1), 0.01, 1, 1);
arcs.AddAsFillet(lines2d.Item(5), lines2d.Item(6), 0.01, -1, 1);
arcs.AddAsFillet(lines2d.Item(6), lines2d.Item(7), 0.01, -1, -1);
arcs.AddAsFillet(lines2d.Item(7), lines2d.Item(8), 0.01, 1, -1);
arcs.AddAsFillet(lines2d.Item(8), lines2d.Item(5), 0.01, 1, 1);
// Close the profile
profile.End(SolidEdgePart.ProfileValidationType.igProfileClosed);
// Hide the profile
profile.Visible = false;
// Create a new array of profile objects
aProfiles = Array.CreateInstance(typeof(SolidEdgePart.Profile), 1);
aProfiles.SetValue(profile, 0);
// Get a reference to the models collection
models = part.Models;
// Create the extended protrusion.
model = models.AddFiniteExtrudedProtrusion(aProfiles.Length, ref aProfiles, SolidEdgePart.FeaturePropertyConstants.igRight, 0.05, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
After the program runs, the resulting error message is as follows:
Internal error:Unable to computer topology information for the sketched profile.
Please help!
[script removed]