Jak pracować z profilami 2D w .NET
Jak pracować z profilami 2D w .NET
Ten artykuł pokazuje, jak definiować profile przekrojów 2D oraz wyciągać je lub obracać w bryły 3D przy użyciu Aspose.3D dla .NET.
Krok 1 — Zainstaluj pakiet
dotnet add package Aspose.3D.FOSSKrok 2 — Utwórz profil parametryzowany
Użyj wbudowanych kształtów, takich jak RectangleShape lub CircleShape, do standardowych przekrojów:
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);Krok 3 — Utwórz profil parametryzowany w kształcie L
LShape generuje belkę w kształcie litery L na podstawie wymiarów:
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);Krok 4 — Utwórz odbity profil
MirroredProfile generuje symetryczny przekrój poprzez odbicie profilu bazowego:
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);Krok 5 — Obróć profil w bryłę
RevolvedAreaSolid obraca profil wokół osi, aby uzyskać bryłę o symetrii obrotowej. Ustaw Shape i AngleEnd na instancji:
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);Krok 6 — Zapisz scenę
scene.Save("profiles.gltf", FileFormat.GLTF2);
Console.WriteLine("Saved: profiles.gltf");Troubleshooting
| Symptom | Prawdopodobna przyczyna | Naprawa |
|---|---|---|
| Ekstruzja nie ma widocznej geometrii | Krawędzie profilu są współliniowe lub mają zerowe pole | Sprawdź, czy Edges tworzy prawidłowy zamknięty wielokąt |
| Odbity wynik nie jest symetryczny | MirroredProfile odwraca wszystko, co baseProfile obejmuje — nie ma osobnego parametru osi do ustawienia | Przekaż prawidłowy baseProfile do new MirroredProfile(baseProfile); dostosuj sam podstawowy profil, aby uzyskać pożądaną symetrię |
| Revolved solid jest pusty lub płaski | Sweep angle wynosi 0 lub profile jest otwarty | Użyj zamkniętego profile i ustaw angle na Math.PI * 2 dla pełnego obrotu |
Powiązane zasoby
- Praca z Profiles — przewodnik dla programistów z pełnymi szczegółami API
- Praca z Scene Entities — dołącz extruded solids do scene nodes