opencascade 判断两个TopoDS-Shape 是否相同

我们使用opencascade提取实体时,经常会出现实体重复,例如从正方体实体中提取Edge,我们会发现能提取出24个Edge,但正方体只有12条边,这是因为每条边有两个面,进行了重复提取。

如果我们想去掉重复的边,可以通过判断两条边是否相等实现(实际上不需要通过此方法),但是通过 == 运算符进行判断通常是无效的,即两条重合的边在运算符 == 下会被判定为否,那么我们想判断两条边是否相等如何实现?

可通过 TopTools_ShapeMapHasher 实现,代码如下(C++代码类似):

python 复制代码
from OCC.Core.TopTools import TopTools_ShapeMapHasher

TopTools_ShapeMapHasher.IsEqual(edge1, edge2)

以上代码即可判断两条边是否相等,其它形状类似。

相关推荐
biter down18 小时前
10:GUI的 pytest 框架
开发语言·python
yuhuofei202118 小时前
【Python入门】Python中的比较运算符与逻辑运算符
python
5008418 小时前
PagedAttention 源码解析:KV Cache 怎么管理
开发语言·python
*愿风载尘*18 小时前
ttk.Treeview使用指南
python
小糖学代码18 小时前
LLM系列:1.python入门:12.异常处理(Exceptions)
前端·人工智能·python·深度学习
kaico201818 小时前
数据库操作
数据库·python
专注VB编程开发20年19 小时前
JAVA动态调用函数,数字类型,Java 反射允许自动拓宽类型。
开发语言·python
En^_^Joy19 小时前
Django开发:基本入门指南
python·django·sqlite
Sinsa_SI19 小时前
2026算法应用主题赛初赛-小学4-6组(Python)试卷(含答案+详细解析)
开发语言·python·算法
繁星星繁19 小时前
Python语法(三)
开发语言·python