Hur man arbetar med 2D-profiler i .NET
Hur man arbetar med 2D-profiler i .NET
Den här artikeln visar hur man definierar 2D tvärsnittsprofiler och sveper eller roterar dem till 3D-solider med Aspose.3D för .NET.
Steg 1 — Installera paketet
dotnet add package Aspose.3D.FOSSSteg 2 — Skapa en parametriserad profil
Använd inbyggda former såsom RectangleShape eller CircleShape för standardtvärsnitt:
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);Steg 3 — Skapa en parametriserad L-formad profil
LShape producerar en L-sektionsbjälke från dimensionella egenskaper:
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);Steg 4 — Skapa en speglad profil
MirroredProfile producerar ett symmetriskt tvärsnitt genom att spegla en grundprofil:
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);Steg 5 — Rotera en profil till en solid
RevolvedAreaSolid roterar en profil kring en axel för att skapa en rotationssymmetrisk solid. Ställ in Shape och AngleEnd på instansen:
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);Steg 6 — Spara scenen
scene.Save("profiles.gltf", FileFormat.GLTF2);
Console.WriteLine("Saved: profiles.gltf");Troubleshooting
| Symptom | Trolig orsak | Åtgärd |
|---|---|---|
| Extrusion har ingen synlig geometri | Profilkanterna är kollineära eller har nollarea | Verifiera att Edges bildar en giltig sluten polygon |
| Speglat resultat är inte symmetriskt | MirroredProfile speglar vad baseProfile än den omsluter — det finns ingen separat axelparameter att ange | Skicka rätt baseProfile till new MirroredProfile(baseProfile); justera själva basprofilen för att få önskad symmetri |
| Rotationskropp är ihålig eller platt | Svepvinkel är 0 eller profilen är öppen | Använd en sluten profil och ställ in vinkeln till Math.PI * 2 för full rotation |
Relaterade resurser
- Arbeta med profiler — utvecklarguide med fullständiga API detaljer
- Arbeta med scenentiteter — fäst extruderade kroppar på scennoder