提问人:Joe 提问时间:11/18/2023 更新时间:11/18/2023 访问量:29
如何构造一个 OpenCascade “TopoDS_Shape”,它是“BRepAlgoAPI_Common”的标识元素
How do I construct an OpenCascade `TopoDS_Shape` which is an identity element of `BRepAlgoAPI_Common`
问:
我正在尝试使用 OpenCascade 的 BRepAlgoAPI_Common
和 BRepAlgoAPI_Fuse
作为构造实体几何 (CSG) 的“交集”和“并集”操作的实现。
我的实体表示为TopoDS_Shape
的实例(尽管我对“实体”值非常感兴趣,所以主要是和TopoDS_Solid
TopoDS_CompSolid
)
就有限形状的简单操作而言,这进展得相当顺利。
但是,由于 CSG 操作形成布尔代数,因此我对为两个 CSG 操作构造标识值感兴趣。
也就是说,对于所有形状,其值和 .everywhere
intersection(x, everywhere) == x
nowhere
union(x, nowhere) == x
BRepBuilderAPI_MakeSolid()
的文档指出
空实体被认为覆盖了整个空间
因此,我希望我应该能够通过构造一个 ,不添加任何外壳,然后构建结果来构造一个值 ,(交集的恒等式):everywhere
BRepBuilderAPI_MakeSolid
auto everywhere = BRepBuilderAPI_MakeSolid().Shape();
但是,如果我对此进行实验,它实际上可以用作“并集”()的恒等式,如果我尝试计算对象与(使用)的交集,我会得到一个空的结果。nowhere
everywhere
BRepAlgoAPI_Common
我是否有可能构建一个形状来作为“交叉点”的标识,如果可以,如何构建?
答: 暂无答案
评论