چگونه با پروفایل‌های دو‌بعدی در .NET کار کنیم

چگونه با پروفایل‌های دو‌بعدی در .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 تنظیم کنید تا چرخش کامل انجام شود

منابع مرتبط

همچنین ببینید:

 فارسی