Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 2469 razy

Program Solid Edge instaluje w systemie całą serię bibliotek, pod które można się podpiąć i zaprogramować coś ciekawego. Poniżej zamieszczam króciutki kawałek kodu napisanego w C#, którego jedynym celem jest narysowanie zarysu obiektu i wyciągnięcie jego. Cała operacja wykonuje się automatycznie a rysowany na potrzeby tego przykładu obiekt to zwykły prostopadłościan o wysokości 5mm i przekroju kwadrata o boku długości 30mm. Nie przynudzając dłużej oto kod tej jakże zawiłej aplikacji:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using SolidEdgeFramework; using SolidEdgePart; using System.Runtime.InteropServices; using SolidEdgeConstants; namespace SE_drawing { class Program { static void addLine(SolidEdgeFrameworkSupport.Lines2d lines, double x1, double y1, double x2, double y2) { double k = 0.001; lines.AddBy2Points(x1 * k, y1 * k, x2 * k, y2 * k); } static void Main(string[] args) { SolidEdgeFramework.Application seApp = null; SolidEdgePart.PartDocument sePartDocument = null; try { seApp = Marshal.GetActiveObject("SolidEdge.Application") as SolidEdgeFramework.Application; sePartDocument = seApp.Documents.Add("SolidEdge.PartDocument"); var profile = sePartDocument.ProfileSets.Add().Profiles.Add(sePartDocument.RefPlanes.Item(2)); var lines = profile.Lines2d; addLine(lines, -30, -30, 30, -30); addLine(lines, 30, -30, 30, 30); addLine(lines, 30, 30, -30, 30); addLine(lines, -30, 30, -30, -30); var relations = profile.Relations2d; Console.WriteLine(lines.Count.ToString()); for (int i = 1; i < lines.Count; i++) { relations.AddKeypoint(lines.Item(i), KeypointIndexConstants.igLineEnd, lines.Item(i + 1), KeypointIndexConstants.igLineStart); } relations.AddKeypoint(lines.Item(lines.Count), KeypointIndexConstants.igLineEnd, lines.Item(1), KeypointIndexConstants.igLineStart); Object[] profileArray = new Object[1] { profile }; sePartDocument.Models.AddFiniteExtrudedProtrusion(1, profileArray, SolidEdgePart.FeaturePropertyConstants.igSymmetric, 5.0 / 1000); profile.Visible = false; } catch(Exception e) { Console.WriteLine(e.Message); throw; } finally { seApp = null; sePartDocument = null; } } } }

Powyższy kawałek kodu narysuje prosty obiekt przestrzenny z poniższego rysunku.

C# rysowanie obiektu 3D
Rys. 1
C# rysowanie obiektu 3D w Solid Edge St8