我希望能够在IFC中实现截断的锥体。我知道有一种相当快的方法可以在IFC 2x4中使用IFCEXTRUDEDAREASOLIDTAPERED类实现。
有人可以告诉我如何使用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;
}
有人知道如何做正确的方法?
我会去圆锥(通过布尔雷斯特(将其切成半个空间。您希望布尔操作有所不同,圆锥作为第一操作数和半操作数的半空间。
我没有代码可以在XBIM(我使用ifcplusplus(中实现的代码,对不起。从您给定的代码中,您需要计算的一个信息将是圆锥的全高,以将其切成所需的高度。