Open CASCADE学习|布尔运算后消除内部拓扑

在CAD建模中,布尔运算是一种逻辑运算方法,通过这种方法,可以创建、修改或组合几何对象。布尔运算主要包括并集(UNION)、交集(INTERSECT)和差集(SUBTRACT)三种运算。

**并集(UNION):**将两个或多个实体合并成一个整体。在CAD中,可以通过选择并集命令,然后依次选择要求并集的实体,完成并集操作后,这些实体将合并成一个整体。

**交集(INTERSECT):**取两个实体的公共部分保留为新对象,相交以外的部分删除。在CAD中,执行交集命令后,需要先选择第一个对象,然后选择第二个对象,系统会根据这两个对象生成一个新的实体,只包含它们的公共部分。

**差集(SUBTRACT):**从第一个选择的对象中减去第二个选择的对象。在CAD中,执行差集命令后,需要先选择被减对象,然后选择减去的对象,完成后,被减对象中减去减去对象的部分将被删除。

在OCCT中,布尔运算后,往往会出现缝合线。为了消除缝合线,我们需要用到工具类ShapeUpgrade_UnifySameDomain,该工具用于统一一个几何模型上的面和边。应该可以理解为,同一模型,同一面上的边,统一用边界的边来表示,其余的去掉。

This tool tries to unify faces and edges of the shape which lies on the same geometry. Faces/edges considering as 'same-domain' if a group of neighbouring faces/edges lying on coincident surfaces/curves. In this case these faces/edges can be unified into one face/edge. ShapeUpgrade_UnifySameDomain initialized by the shape and the next optional parameters: UnifyFaces - tries to unify all possible faces UnifyEdges - tries to unify all possible edges ConcatBSplines - if this flag set to true then all neighbouring edges which lays on the BSpline or Bezier curves with C1 continuity on their common vertices will be merged into one common edge The output result of tool is an unified shape All the modifications of initial shape are recorded during unifying. Method Generated() can be used to obtain the new (unified) shape from the old one.

复制代码
  TopoDS_Shape fuse = BRepAlgoAPI_Fuse(bigCube, smallCube);//先融合  ShapeUpgrade_UnifySameDomain unif(fuse , false, true, false);  unif.Build();  fuse = unif.Shape();
相关推荐
智者知已应修善业8 分钟前
【51单片机从奇数始再转偶数逐一点亮并循环】2023-9-8
c++·经验分享·笔记·算法·51单片机
sealaugh3210 分钟前
react native(学习笔记第三课) 英语打卡微应用(2)-从上传图片开始
笔记·学习·react native
努力努力再努力wz16 分钟前
【MySQL进阶系列】拒绝冗余SQL:带你透彻理解视图的底层逻辑
android·c语言·数据结构·数据库·c++·sql·mysql
北冥有鱼被烹19 分钟前
【玩索】【英语武器系统之1】用塞尔达武器系统学习英语语法
学习·english
Yupureki43 分钟前
《Linux网络编程》4.应用层HTTP协议
linux·服务器·c语言·网络·c++·http
开开心心就好1 小时前
整合多家平台资源的免费学习应用
人工智能·vscode·学习·游戏·音视频·语音识别·媒体
Brilliantwxx1 小时前
【C++】认识vector(概念+题目OJ)
开发语言·c++·笔记·算法
m0_46644103詹湛1 小时前
(一)FPGA :基础概念详解(Xilinx平台)
笔记·学习·fpga开发·verilog
上弦月-编程1 小时前
C语言链表详解,新手也能看懂! ——从入门到精通的完整教程
java·c语言·c++
_李小白1 小时前
【android opencv学习笔记】Day 5: 高效的图像扫描
android·opencv·学习