.NETで2Dプロファイルを扱う方法
.NET で 2D プロファイルを扱う方法
この記事では、.NET 用に Aspose.3D を使用して、2D 断面プロファイルを定義し、スイープまたは回転させて 3D ソリッドに変換する方法を示します。
ステップ 1 — パッケージをインストールする
dotnet add package Aspose.3D.FOSSステップ 2 — パラメータ化されたプロファイルを作成する
標準的な断面には、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);ステップ 3 — パラメータ化された 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);Step 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);Step 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);Step 6 — シーンを保存
scene.Save("profiles.gltf", FileFormat.GLTF2);
Console.WriteLine("Saved: profiles.gltf");Troubleshooting
| Symptom | 考えられる原因 | 修正 |
|---|---|---|
| 押し出しに可視ジオメトリがありません | プロファイルエッジが一直線上にあるか、面積がゼロです | Edges が有効な閉じたポリゴンを形成しているか確認してください |
| 鏡像結果が対称ではありません | MirroredProfile はラップする baseProfile をそのまま鏡像します — 設定できる別個の軸パラメータはありません | 正しい baseProfile を new MirroredProfile(baseProfile) に渡してください;ベースプロファイル自体を調整して目的の対称性を得てください |
| 回転体が中空または平らです | スイープ角が0、またはプロファイルが開いています | 閉じたプロファイルを使用し、角度を Math.PI * 2 に設定して完全回転させます |
関連リソース
- プロファイルの操作 — 開発者ガイド(API の詳細がすべて記載)
- シーンエンティティの操作 — 押し出しソリッドをシーンノードにアタッチする