Як працювати з 2D профілями у .NET
Як працювати з 2D профілями у .NET
У цій статті показано, як визначати 2D профілі перетинів та витягувати або обертати їх у 3D тверді тіла за допомогою Aspose.3D для .NET.
Крок 1 — Встановити пакет
dotnet add package Aspose.3D.FOSSКрок 2 — Створити параметризований профіль
Використовуйте вбудовані форми, такі як RectangleShape або CircleShape, для стандартних перетинів:
using Aspose.ThreeD;
using Aspose.ThreeD.Entities;
using Aspose.ThreeD.Profiles;
var scene = new Scene();
// Rectangle profile: 2 units wide, 1 unit tall
var rectProfile = new RectangleShape();
rectProfile.XDim = 2.0;
rectProfile.YDim = 1.0;
// Extrude 5 units along Z
var beam = new LinearExtrusion(rectProfile, 5.0);
beam.Slices = 10;
scene.RootNode.CreateChildNode("beam", beam);Крок 3 — Створити параметризований L-подібний профіль
LShape створює L-секційну балку за розмірними властивостями:
using Aspose.ThreeD.Profiles;
// L-shaped cross-section structural beam
var lProfile = new LShape();
lProfile.Width = 0.1;
lProfile.Depth = 0.2;
lProfile.Thickness = 0.01;
var lBeam = new LinearExtrusion(lProfile, 4.0);
scene.RootNode.CreateChildNode("l_beam", lBeam);Крок 4 — Створити віддзеркалений профіль
MirroredProfile створює симетричний поперечний переріз шляхом віддзеркалення базового профілю:
using Aspose.ThreeD.Profiles;
// Base profile to mirror
var baseProfile = new RectangleShape();
baseProfile.XDim = 0.5;
baseProfile.YDim = 1.0;
// Mirror to get a symmetric beam flange
var mirrored = new MirroredProfile(baseProfile);
var iBeam = new LinearExtrusion(mirrored, 3.0);
scene.RootNode.CreateChildNode("i_beam", iBeam);Крок 5 — Обротити профіль у суцільний об’єкт
RevolvedAreaSolid обертає профіль навколо осі, створюючи обертально-симетричний твердий об’єкт. Встановіть Shape та AngleEnd на екземплярі:
var circleProfile = new CircleShape { Radius = 0.5 };
var revolved = new RevolvedAreaSolid();
revolved.Shape = circleProfile;
revolved.AngleEnd = Math.PI * 2; // full revolution
scene.RootNode.CreateChildNode("sphere", revolved);Крок 6 — Зберегти сцену
scene.Save("profiles.gltf", FileFormat.GLTF2);
Console.WriteLine("Saved: profiles.gltf");Troubleshooting
| Symptom | Ймовірна причина | Виправити |
|---|---|---|
| Екструзія не має видимої геометрії | Крайні лінії профілю колінеарні або мають нульову площу | Перевірте, чи Edges утворює дійсний замкнений багатокутник |
| Віддзеркалений результат не симетричний | MirroredProfile віддзеркалює будь-що, що baseProfile обгортає — окремий параметр осі не встановлюється | Передайте правильний baseProfile у new MirroredProfile(baseProfile); налаштуйте сам базовий профіль, щоб отримати потрібну симетрію |
| Обертана тверда є порожнистою або пласкою | Кут обертання 0 або профіль відкритий | Використайте замкнений профіль і встановіть кут Math.PI * 2 для повного обертання |
Пов’язані ресурси
- Робота з профілями — посібник розробника з повними деталями API
- Робота з об’єктами сцени — під’єднуйте екструдовані тверді до вузлів сцени