如何在 .NET 中使用 2D 配置文件

如何在 .NET 中使用 2D 配置文件

如何在 .NET 中使用 2D 轮廓

本文展示了如何使用 Aspose.3D 为 .NET 定义 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);

步骤 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);调整基础轮廓本身以获得所需的对称性
旋转实体为空心或平面扫掠角度为 0 或轮廓为打开状态使用封闭轮廓并将角度设置为 Math.PI * 2 以完成全旋转

相关资源

另请参阅

 中文