Cum să lucraţi cu profiluri 2D în .NET

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.FOSS

Pasul 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

SymptomCauză probabilăRemediere
Extrudarea nu are geometrie vizibilăMuchiile profilului sunt coliniare sau au suprafață zeroVerificați că Edges formează un poligon închis valid
Rezultatul oglindit nu este simetricMirroredProfile oglindește orice baseProfile învelește — nu există niciun parametru de axă separat de setatTransmiteț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 platUnghiul de sweep este 0 sau profilul este deschisFolosiți un profil închis și setați unghiul la Math.PI * 2 pentru revoluție completă

Resurse conexe

Vezi și:

 Română