Ifc2x3 等效于 IfcExtrudedAreaSolidTapered
Ifc2x3 Equivalent for IfcExtrudedAreaSolidTapered
我希望能够在 IFC 中实现截锥。我知道有一种相当快速的方法可以在 IFC 2x4 中使用 IfcExtrudedAreaSolidTapered class 来实现这一点。
谁能告诉我如何用 Ifc 2x3 做到这一点?
这是我拥有的:
IfcExtrudedAreaSolid CreateExtrudedAreaSolid(IfcStore model, IfcProfileDef
profile,IfcAxis2Placement3D placement, double extrude)
{
var extrusion = model.Instances.New<IfcExtrudedAreaSolid>();
extrusion.Depth = extrude;
extrusion.ExtrudedDirection = model.Instances.New<IfcDirection>(d =>
d.SetXYZ(0, 0, 1));
extrusion.Position = placement;
extrusion.SweptArea = profile;
return extrusion;
}
这是我创建个人资料的地方:
private IfcCircleHollowProfileDef MakeCircleHollowProfileDef(IfcStore model,
IfcAxis2Placement3D placement, double r, double wallThickness)
{
var circleProfile = model.Instances.New<IfcCircleHollowProfileDef>();
circleProfile.Position = ConvertToAxis2D(placement, model);
circleProfile.Radius = r;
circleProfile.WallThickness = wallThickness;
return circleProfile;
}
有人知道如何以正确的方式做到这一点吗?
我会去 cone and cut it (via BooleanResult) with a half space。您希望布尔运算为 DIFFERENCE,圆锥作为第一个操作数,一半 space 作为第二个操作数。
我没有在 xBim 中实现它的代码(我使用 IfcPlusPlus),抱歉。根据您给定的代码,您需要计算的一个信息是圆锥体的整个高度,以将其切割回所需的高度。
我希望能够在 IFC 中实现截锥。我知道有一种相当快速的方法可以在 IFC 2x4 中使用 IfcExtrudedAreaSolidTapered class 来实现这一点。
谁能告诉我如何用 Ifc 2x3 做到这一点?
这是我拥有的:
IfcExtrudedAreaSolid CreateExtrudedAreaSolid(IfcStore model, IfcProfileDef
profile,IfcAxis2Placement3D placement, double extrude)
{
var extrusion = model.Instances.New<IfcExtrudedAreaSolid>();
extrusion.Depth = extrude;
extrusion.ExtrudedDirection = model.Instances.New<IfcDirection>(d =>
d.SetXYZ(0, 0, 1));
extrusion.Position = placement;
extrusion.SweptArea = profile;
return extrusion;
}
这是我创建个人资料的地方:
private IfcCircleHollowProfileDef MakeCircleHollowProfileDef(IfcStore model,
IfcAxis2Placement3D placement, double r, double wallThickness)
{
var circleProfile = model.Instances.New<IfcCircleHollowProfileDef>();
circleProfile.Position = ConvertToAxis2D(placement, model);
circleProfile.Radius = r;
circleProfile.WallThickness = wallThickness;
return circleProfile;
}
有人知道如何以正确的方式做到这一点吗?
我会去 cone and cut it (via BooleanResult) with a half space。您希望布尔运算为 DIFFERENCE,圆锥作为第一个操作数,一半 space 作为第二个操作数。
我没有在 xBim 中实现它的代码(我使用 IfcPlusPlus),抱歉。根据您给定的代码,您需要计算的一个信息是圆锥体的整个高度,以将其切割回所需的高度。