Sunday, February 05, 2012
Through the program to create a square tube???
Last Post 04 Feb 2010 12:37 AM by fatkids. 0 Replies.
AddThis - Bookmarking and Sharing Button Printer Friendly
Sort:
PrevPrev NextNext
You are not authorized to post a reply.
Author Messages
fatkidsUser is Offline
New Member
New Member
Posts:53

--
04 Feb 2010 12:37 AM  

Hi all!

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]
You are not authorized to post a reply.

Active Forums 4.2
Copyright © 2011 JasonNewell.NET