Cum să lucraţi cu profiluri 2D în .NET
Cum să lucraţi cu profiluri 2D în .NET
Acest articol arată cum să definiţi profiluri de secţiune transversală 2D şi să le extrudaţi sau rotiţi în solide 3D utilizând Aspose.3D pentru .NET.
Pasul 1 — Instalaţi pachetul
dotnet add package Aspose.3D.FOSSPasul 2 — Creaţi un profil parametrizat
Utilizaţi forme încorporate, cum ar fi RectangleShape sau CircleShape, pentru secţiuni transversale standard:
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);Pasul 3 — Creaţi un profil parametrizat în formă de L
LShape produce un profil de tip L din proprietăți dimensionale:
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);Pasul 4 — Creare profil oglindit
MirroredProfile produce o secțiune transversală simetrică prin oglindirea unui profil de bază:
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);Pasul 5 — Rotiți un profil într-un solid
RevolvedAreaSolid rotește un profil în jurul unei axe pentru a produce un solid cu simetrie de rotație. Setați Shape și AngleEnd pe instanță:
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);Pasul 6 — Salvați scena
scene.Save("profiles.gltf", FileFormat.GLTF2);
Console.WriteLine("Saved: profiles.gltf");Troubleshooting
| Symptom | Cauză probabilă | Remediere |
|---|---|---|
| Extrudarea nu are geometrie vizibilă | Muchiile profilului sunt coliniare sau au suprafață zero | Verificați că Edges formează un poligon închis valid |
| Rezultatul oglindit nu este simetric | MirroredProfile oglindește orice baseProfile învelește — nu există niciun parametru de axă separat de setat | Transmiteți baseProfile corect către new MirroredProfile(baseProfile); ajustați profilul de bază însuși pentru a obține simetria dorită |
| Solidul rotit este gol sau plat | Unghiul de sweep este 0 sau profilul este deschis | Folosiți un profil închis și setați unghiul la Math.PI * 2 pentru revoluție completă |
Resurse conexe
- Lucrul cu profiluri — ghid pentru dezvoltatori cu detalii complete API
- Lucrul cu entitățile scenei — atașați solide extrudate la nodurile scenei