2D profilok kezelése a .NET környezetben
Hogyan dolgozzunk 2D profilokkal a .NET-ban
Ez a cikk bemutatja, hogyan definiálhatók 2D keresztmetszeti profilok, és hogyan lehet őket szkennelni vagy forgatni 3D testekké a Aspose.3D használatával a .NET számára.
1. lépés — A csomag telepítése
dotnet add package Aspose.3D.FOSS2. lépés — Paraméterezett profil létrehozása
Használjon beépített alakzatokat, például RectangleShape vagy CircleShape a szabványos keresztmetszetekhez:
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épés — Paraméterezett L-alakú profil létrehozása
LShape L-alakú gerendát hoz létre dimenziós tulajdonságok alapján:
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. lépés — Tükrözött profil létrehozása
MirroredProfile szimmetrikus keresztmetszetet hoz létre egy alapprofil tükrözésével:
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. lépés — Profil forgatása szilárdtestté
RevolvedAreaSolid egy profilt forgat egy tengely körül, hogy forgástengelyes szimmetriájú szilárdtestet hozzon létre. Állítsa be a Shape és a AngleEnd értékeket az példányon:
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. lépés — A jelenet mentése
scene.Save("profiles.gltf", FileFormat.GLTF2);
Console.WriteLine("Saved: profiles.gltf");Troubleshooting
| Symptom | Valószínű ok | Javítás |
|---|---|---|
| Az extrudálásnak nincs látható geometriája | A profil élai kollineárisak vagy nullaterületűek | Ellenőrizze, hogy a Edges érvényes zárt sokszöget alkot-e |
| A tükrözött eredmény nem szimmetrikus | MirroredProfile tükrözi mindazt, amit baseProfile becsomagol — nincs külön tengelyparaméter beállítva | Adja át a megfelelő baseProfile értéket a new MirroredProfile(baseProfile) számára; állítsa be a bázisprofilt, hogy elérje a kívánt szimmetriát |
| A forgott szilárd test üreges vagy lapos | A forgási szög 0 vagy a profil nyitott | Használjon zárt profilt, és állítsa a szöget Math.PI * 2 értékre a teljes körforduláshoz |
Kapcsolódó források
- Profilok kezelése — fejlesztői útmutató a teljes API részletekkel
- Jelenet entitások kezelése — extrudált szilárd testek csatolása a jelenet csomópontokhoz