چگونه با پروفایلهای دوبعدی در .NET کار کنیم
نحوه کار با پروفیلهای دو بعدی در .NET
این مقاله نشان میدهد چگونه پروفیلهای مقطع دو بعدی را تعریف کرده و با استفاده از Aspose.3D برای .NET، آنها را بهصورت sweep یا revolve به اجسام سهبعدی تبدیل کنید.
مرحله ۱ — نصب بسته
dotnet add package Aspose.3D.FOSSمرحله ۲ — ایجاد یک پروفیل پارامتریک
از اشکال داخلی مانند RectangleShape یا CircleShape برای مقاطع استاندارد استفاده کنید:
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);مرحله ۳ — ایجاد یک پروفیل پارامتریک به شکل L
LShape یک تیر به شکل L را بر اساس ویژگیهای بعدی تولید میکند:
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 — ایجاد یک نمای آینهای
MirroredProfile یک مقطع متقارن را با آینهکردن نمای پایه تولید میکند:
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 — چرخاندن یک نمای به یک جامد
RevolvedAreaSolid یک نمای را دور یک محور میچرخاند تا یک جسم چرخشی متقارن تولید کند. Shape و AngleEnd را بر روی نمونه تنظیم کنید:
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 — ذخیره صحنه
scene.Save("profiles.gltf", FileFormat.GLTF2);
Console.WriteLine("Saved: profiles.gltf");Troubleshooting
| Symptom | علت محتمل | رفع |
|---|---|---|
| اکستروژن هیچ هندسهای قابل مشاهده ندارد | لبههای پروفایل همخطی یا مساحت صفر هستند | بررسی کنید Edges یک چندضلعی بستهٔ معتبر تشکیل میدهد |
| نتیجهٔ آینهای متقارن نیست | MirroredProfile هر چیزی را که baseProfile میپیچد، آینه میکند — پارامتر محور جداگانهای برای تنظیم وجود ندارد | مقدار صحیح baseProfile را به new MirroredProfile(baseProfile) بدهید؛ برای دستیابی به تقارن مطلوب، پروفایل پایه را تنظیم کنید |
| جسم چرخان توخالی یا صاف است | زاویه سوئپ صفر است یا پروفایل باز است | از یک پروفایل بسته استفاده کنید و زاویه را به Math.PI * 2 تنظیم کنید تا چرخش کامل انجام شود |
منابع مرتبط
- کار با پروفایلها — راهنمای توسعهدهنده با جزئیات کامل API
- کار با موجودیتهای صحنه — اتصال اجسام برونده به گرههای صحنه