NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - AI模型在线查看 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割 - 3D道路快速建模
布尔操作可以组合两组形状创建新的形状(Shape),OpenCascade支持的布尔操作包括Fuse(融合)、Common(相交)和Cut(切割)。
操作 | 结果 |
---|---|
Fuse | S1或S2中的所有点 |
Common | S1和S2中的所有点 |
Cut S1 by S2 | S1中的所有点,而不是S2中的所有点 |
从拓扑学的角度来看,这部分API包含了拓扑操作以及后续的混合操作(在拓扑操作后对创建的边进行圆角操作)。
拓扑操作是创建真实工业部件的最便捷方式。由于大多数工业部件由几个简单的元素组成,如齿轮、臂、孔、管道等。通常很容易单独创建这些元素,然后通过布尔 操作将它们组合起来。
OpenCascade的布尔操作可以传入以下类型的参数,并生成不同的结果:
- 对于相同类型的参数(例如实体/实体),生成的将是复合类型,包含该类型的形状:
- 对于不同类型的参数(例如 壳 /实体),生成的将是复合类型,包含与低类型相同的形状。示例:对于 壳/实体,结果是壳复合类型。
- 对于不同类型的参数,某些布尔操作由于结果的非流形而无法使用默认实现执行。例如:壳 和 实体 的 FUSE 操作无法完成,但可以执行Cut操作,其中 壳 是对象,实体是工具。
- 在某些情况下可以对复合类型的参数执行布尔操作。在这种情况下,每个复合体不得是异质的,即它必须包含等维形状(EDGEs 或/和 WIREs、FACE 或/和 SHELL、SOLIDs)。复合体内部的 SOLID 不得相互接触。对于SHELLs或FACEs、WIREs 或 EDGEs,应遵循同样的条件。
- 不支持为复合实体形状进行布尔操作。
BRepAlgoAPI_BooleanOperation类是布尔操作的延迟实现根类,应当使用继承类进行具体的布尔操作。
使用BRepAlgoAPI_Fuse执行融合(Fuse)操作,例如:
TopoDS_Shape A = ..., B = ...;
TopoDS_Shape S = BRepAlgoAPI_Fuse(A,B);
使用BRepAlgoAPI_Common执行相交(Common)操作。例如:
TopoDS_Shape A = ..., B = ...;
TopoDS_Shape S = BRepAlgoAPI_Common(A,B)
使用BRepAlgoAPI_Cut执行切割(Cut)操作。例如:
TopoDS_Shape A = ..., B = ...;
TopoDS_Shape S = BRepAlgoAPI_Cut(A,B);
使用BRepAlgoAPI_Section执行剖切操作:
TopoDS_Shape A = ..., TopoDS_ShapeB = ...;
TopoDS_Shape S = BRepAlgoAPI_Section(A,B);
结果以TopoDS_Edge构成的TopoDS_Compoun 进行描述。
原文链接:Modeling Algorithms - Boolean Openrations
BimAnt翻译整理,转载请标明出处