当前位置:网站首页>SuperMap iDesktop.Net之布尔运算求交——修复含拓扑错误复杂模型
SuperMap iDesktop.Net之布尔运算求交——修复含拓扑错误复杂模型
2022-08-05 01:55:00 【supermapsupport】
nannan
SuperMap iDesktop.Net里“三维地理设计”选项卡中“运算分析”模块的布尔运算功能,是数字符号化的逻辑推演法,SuperMap引用这种逻辑运算方法实现对三维模型对象间进行合并、求差、求交运算,输出结果数据。实际项目中,参与布尔运算的往往是复杂模型,并非简单的正方体或者圆球。在平时支持过程中,会出现很多复杂模型做布尔运算报错或者结果不对的现象,为了方便大家更好的将布尔运算运用到实际项目中,小编在此整理了含拓扑错误复杂模型的布尔运算处理修复方法,供大家参考处理修复数据。
1.拓扑错误数据详情
在介绍处理方法前先描述一下小编这里参与布尔运算的复杂模型,该模型来自某单位的管道模型,小编拿到数据发现一个模型数据集对应一个对象,直接将两个模型进行布尔运算会提示不满足布尔运算的条件。这证明模型是含有拓扑错误的。当然在这里小编为了说明问题是错误示范,大家在处理数据时建议先进行模型检查,看是否有拓扑错误,这样会节省大量时间和处理结果的准确性。

三维数据=>模型工具=>模型检查,对这两个模型数据集分别检查,如图1.3。发现子对象最大顶点数是子对象最大三角面数的3倍,通俗来讲就是有很多顶点为3 ,三角形为1的子对象,存在很多的重复三角形,这种数据太过冗余,需要删除多余的顶点。
2.修复拓扑错误步骤
精细模型导入UDB后,确认数据是否存在重复顶点、重复三角面、重复子对象等情况,若存在,需进行数据校正。在三维数据 ->模型工具 ->模型校正下有相应功能对数据进行检查并处理。如图2.1所示。
该项目数据存在大量拓扑错误,可经过以下步骤修复:
2.1、合并子对象
三维地理设计-模型编辑-模型合并,勾选"合并子对象”。因上文发现子对象有很多冗余点,而移除重复点没办法移除处理子对象的顶点,需要合并子对象。
2.2、移除重复点
三维数据=>模型工具=>移除重复点。移除重复点是批量去除多个数据集中的模型对象的重复点或冗余点,精简模型数据,降低内存的占用,满足大体量数据的性能需要。
2.3、拓扑校正
三维数据=>模型工具=>拓扑校正。拓扑校正是指将联通区域矫正为统一的方向并移除重复或无效三角面,涉及拓扑校正以及移除重复三角面的操作,校正拓扑错误,保证渲染效果。
2.4、流形校正
三维数据=>模型工具=>流形校正。流形校正是指批量对多个数据集中的存在拓扑错误的进行校正,校正后的模型对象满足Halfedge数据结构。
流形校正之后模型已经满足布尔运算的条件,进行布尔运算发现求交后结果不正确,这时很大可能是骨架反转导致的,然后给它拆分看是哪些子对象骨架反转了,然后给它翻转过来。
2.5、对象拆分
三维地理设计-模型编辑-模型拆分,勾选"拆分后子对象保存为单个对象"。将全部或选中对象的子对象拆分成多个子对象。在完成BIM模型的搭建后,有时需要对诸如层高、墙厚、板厚、平面布置等反复核查,即需要获得模型对象的子对象。通过BIM子对象拆分可以得到这些构件的尺寸,避免自动拆分后造成预制构件尺寸不对,现场无法组装的情况。

模型拆分完后可以在三维数据=>模型工具=>属性提取里获取体积,查看体积是否有小于0的负值。

如图2.5.3所示,名为通信的数据集有4个对象的体积为负值。下面我们来看骨架翻转。(如果是体积为0的对象需要在场景里关联浏览属性表定位,或者看以下模型信息里的骨架情况后再删除)
2.6、骨架翻转
组件接口MeshOperator.ReverseMesh(Skeleton skeleton),仅需要翻转体积小于0的骨架。翻转骨架,用于处理模型数据。 对于模型数据布尔运算或获取截面崩溃或结果不对的情况,都可以使用该方法进行处理。
因目前11.0.0桌面版本没有骨架翻转的功能,需要我们二次开发。小编为了便于大家快速应用到项目中,自己写了一个小插件,见地址https://download.csdn.net/download/nan620403/86272379按照部署文档进行部署,然后在桌面功能栏里看到骨架翻转的功能按钮。

2.7、合并对象
三维地理设计-模型编辑-模型合并,勾选"合并成一个对象”。模型合并包括合并多个对象和合并模型的子对象。BIM模型进行搭建时,把BIM模型合并为一个模型,有效避免操作过程中无意修改尺寸大小,降低BIM模型的质量和搭建效率。这里是为了合并成一个对象后方便进行布尔运算。

3.布尔运算求交结果
进行上述一系列模型拓扑修复操作后,最终进行布尔运算求交,求交结果正确,是我们想要的效果。具体见图3.3 布尔运算后效果所示。


边栏推荐
- "Dilili, wait for the lights, wait for the lights", the prompt sound for safe production in the factory
- hypervisor相关的知识点
- 【Word】Word公式导出PDF后出现井号括号#()错误
- oracle将restful接口封装到视图中
- 金仓数据库 KingbaseES V8 GIS数据迁移方案(3. 基于ArcGIS平台的数据迁移到KES)
- pytorch的使用:卷积神经网络模块
- Are testing jobs so hard to find?I am 32 this year and I have been unemployed for 2 months. What should an older test engineer do next to support his family?
- 1349. 参加考试的最大学生数 状态压缩
- MySQL learning
- Log an error encountered when compiling google gn "I could not find a ".gn" file ..."
猜你喜欢

迅睿cms网站搬迁换了服务器后网站不能正常显示

LPQ (local phase quantization) study notes

iNFTnews | 对体育行业和球迷来说,NFT可以带来什么?

Method Overriding and Object Class

Understand the recommendation system in one article: Recall 06: Two-tower model - model structure, training method, the recall model is a late fusion feature, and the sorting model is an early fusion

优化Feed流遭遇拦路虎,是谁帮百度打破了“内存墙”?
![[Unity Entry Plan] Handling of Occlusion Problems in 2D Games & Pseudo Perspective](/img/de/944b31c68cc5b9ffa6a585530e7be9.png)
[Unity Entry Plan] Handling of Occlusion Problems in 2D Games & Pseudo Perspective

Creative code confession

Jincang database KingbaseES V8 GIS data migration solution (3. Data migration based on ArcGIS platform to KES)

如何基于OpenVINO POT工具简单实现对模型的量化压缩
随机推荐
蓝牙Mesh系统开发五 ble mesh设备增加与移除
浅谈数据安全治理与隐私计算
"Configuration" is a double-edged sword, it will take you to understand various configuration methods
iNFTnews | 对体育行业和球迷来说,NFT可以带来什么?
Object.defineProperty实时监听数据变化并更新页面
EBS利用虚拟列及hint 提示优化sql案例一则
XMjs跨域问题解决
the mechanism of ideology
DDOS攻击真的是无解吗?不!
深度学习原理学习小结 - Self-Attention/Transformer
【TA-霜狼_may-《百人计划》】图形4.3 实时阴影介绍
居民用水问题
直播回放含 PPT 下载|基于 Flink & DeepRec 构建 Online Deep Learning
使用OpenVINO实现飞桨版PGNet推理程序
Gartner Hype Cycle:超融合技术将在2年内到达“生产力成熟期”
Jincang database KingbaseES V8 GIS data migration solution (3. Data migration based on ArcGIS platform to KES)
AI+小核酸药物|Eleven完成2200万美元种子轮融资
第十四天&postman
【MySQL系列】- LIKE查询 以%开头一定会让索引失效吗
[GYCTF2020]EasyThinking