C sharp - programik tworzący dokument Solid Edge-a .part i rysujący prosty kształt
Stronę tą wyświetlono już: 1627 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.


Tytuł:
Wzorce projektowe w .NET Core 3. Projektowanie zorientowane obiektowo z wykorzystaniem C# i F#
Autor:
Dmitri Nesteruk

Tytuł:
Jak pisać świetne gry 2D w Unity. Niezależne programowanie w języku C#
Autor:
Jared Halpern

Tytuł:
C# 9.0 w pigułce
Autor:
Joseph Albahari

Tytuł:
C# 9.0. Leksykon kieszonkowy
Autor:
Joseph Albahari, Ben Albahari

Tytuł:
C# 8.0. Kompletny przewodnik dla praktyków. Wydanie VII
Autor:
Mark Michaelis

Tytuł:
C# 8.0 w pigułce
Autor:
Joseph Albahari, Eric Johannsen

Tytuł:
Asynchroniczność i wielowątkowość w języku C#
Autor:
Grzegorz Lang

Tytuł:
C# 8.0. Programowanie. Tworzenie aplikacji Windows, internetowych oraz biurowych
Autor:
Ian Griffiths

Tytuł:
C# 8.0. Leksykon kieszonkowy
Autor:
Joseph Albahari, Ben Albahari

Tytuł:
Wzorce projektowe w .NET. Projektowanie zorientowane obiektowo z wykorzystaniem C# i F#
Autor:
Dmitri Nesteruk