OGG几何内核开发-复杂装配模型读取、显示、分析

OGG几何内核读取STEP模型文件的API有STEPCAFControl_Reader、STEPControl_Reader。

STEPCAFControl_Reader使用很复杂,但可以展示装配树,有利于模型的详细分析。

本文演示了《插件化算法研究平台V2》的OCC几何模型插件的部分功能:显示装配树、构件的Brep结构树、构件定位、构件各个面的定位显示。方便后续各种模型算法分析设计。

现以NCar.stp(大小:396M)文件为例演示。

文件读取:

reader.ReadFile用时:41.079000秒
reader.Transfer用时:97.820000秒

加上显示,总共用时:179.776000秒

其中,有部分构件不能正常显示。所以,如果直接用STEPControl_Reader读取,将无法显示该模型。

内存占用约2.5G。

读取与处理时,CPU占用约10%。

笔记本电脑,8核,16线程,32G内存,无独显。

在电脑没有运行其它任务的情况下:

CPU占比最高可达18%

reader.ReadFile用时:26.235000秒
reader.Transfer用时:44.861000秒

总共用时:93.813000

载入模型时,内存高峰达3.1G,载入完成后会释放部分,占用内存为2.5G内存。

整个模型树如下图:

没有Shapid数据的是装配体。

整个模型有2740个构件和装配体,这个数字还不能体现出模型的复杂情况。

可以通过模型装配树,快速定位各级构件,如下图所示(绿色代表选中):

整个模型太大,不方便我们研究里边的螺丝钉,咱们改为线框方式显示。

下面开始定位螺丝钉:

这些螺丝钉虽然空间位置、角度各不相同,但却是相同的ShapeID/TShapeID,也就说,模型在做装配设计时使用了同一个螺丝钉。

螺丝钉在整个模型里,太小,即使是线框图也看不清。

在整个模型里,螺丝钉虽小,但螺丝钉本身的构件结构却非常复杂和精细,查看该构件的Brep结构,如下图:

合计有71个各种各样面:BSplineSurface、Plan、Cone、Cylinder等,如下图:

下面可以仔细查看一下这颗螺丝钉的各个面:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/32637.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

四川汇聚荣科技有限公司靠谱吗?

在如今这个信息爆炸的时代,了解一家公司是否靠谱对于消费者和合作伙伴来说至关重要。四川汇聚荣科技有限公司作为一家位于中国西部地区的企业,自然也受到了人们的关注。那么,这家公司究竟如何呢?接下来,我们将从多个角度进行深入…

Python应用开发——30天学习Streamlit Python包进行APP的构建(8)

st.table 显示静态表格。 这与 st.dataframe 的不同之处在于,这里的表格是静态的:其全部内容直接显示在页面上。 Function signature[source]st.table(data=None) Parametersdata (pandas.DataFrame, pandas.Styler, pyarrow.Table, numpy.ndarray, pyspark.sql.DataFrame,…

Mysql数据库约束的概述 , 逐渐约束 , 主键自增 , 表关系的概念和外键 ,多表关系约束介绍和使用

约束和表设计 1、DQL查询语句-limit语句(掌握) 目标 能够掌握limit语句的使用 讲解 作用: LIMIT是限制的意思,所以LIMIT的作用就是限制查询记录的条数。 LIMIT语句格式: select * from 表名 limit offset, row_count; mysql中limit的用法&#…

面试题4:POST 比 GET 安全?

不是。HTTP就没有加密功能。 我们知道 GET一般将参数放到URL的查询字符串中,如果是实现登录页面,我们的用户名和密码就直接显示到浏览器的地址栏中了,此时就会轻易的被他人获取账号密码,很不安全。而POST会把参数放到 body 里&am…

uniapp——H5添加支付宝授权登录,报错:系统异常,请联系商家。REDIRECT_URI_ILLEAGAL

解决方法 https://opensupport.alipay.com/support/FAQ/41bb980b-d18e-4141-8063-9d172cb7e655 这其中最常见的是授权的回调地址配置的不正确 应该为域名后面加上你H5打包后的名字,例如 https://www.xxx.com/agent要正确配置支付宝授权登录的回调地址,…

Flutter框架高阶——Window应用程序设置窗体窗口背景完全透明

文章目录 1.修改 main.cpp1)C 与 Win32 API2)EnableTransparency()3)中文注释 2.编写 Flutter 代码1)bitsdojo_window2)window_manager3)区别对比4)同时使用(1)设置初始化…

C++精解【4】

文章目录 正则表达式基础regex_matchregex_replaceswap Eigen概述简单例子 正则表达式 基础 正则表达式,又称规则表达式,(Regular Expression,在代码中常简写为regex、regexp或RE),是一种文本模式,包括普…

银行卡二要素核验-银行卡二要素核验接口-银行卡二要素核验API

接口地址:https://www.wapi.cn/api_detail/102/235.html 在线查询:https://www.wapi.cn/bank_name_verfiy.html 网站地址:https://www.wapi.cn 返回格式:json,xml 请求方式:POST,GET POST 请求需要设置Header头&#x…

winRar去广告记录

效果:双击winRar.exe,不会弹出广告窗口,但会弹出使用时间许可警告,效果不是很完美。 工具:everything.exe(非必须)、sublime text(非必须)、spyxx.exe(非必须…

‘eigen2cv’ is not a member of ‘cv’ 的参考解决方法

文章目录 写在前面一、问题描述二、解决方法参考链接 写在前面 自己的测试环境: Ubuntu 20.04,OpenCV 4.2.0 一、问题描述 /home/xxx/xxx/xxx/xxx.cpp:248:9: error: ‘eigen2cv’ is not a member of ‘cv’; did you mean ‘eigen’?248 | cv:…

【Python】已解决:pymssql引发的MSSQLDatabaseException错误

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决:pymssql引发的MSSQLDatabaseException错误 一、分析问题背景 在Python中使用pymssql库与Microsoft SQL Server数据库交互时,有时会遇到pymssql._mss…

Vim常识

文章目录 Vim复制某行到下一行Vim回滚操作Vim查找 Vim复制某行到下一行 命令模式下 YYp Vim回滚操作 命令模式下 uu 表示undo Vim查找 命令模式下 /keyword -> forward search ?keyword -> backward search shift g -> to the bottom line

系统安全设计规范(Word原件)

1.1安全建设原则 1.2 安全管理体系 1.3 安全管理规范 1.4 数据安全保障措施 1.4.1 数据库安全保障 1.4.2 操作系统安全保障 1.4.3 病毒防治 1.5安全保障措施 1.5.1实名认证保障 1.5.2 接口安全保障 1.5.3 加密传输保障 1.5.4终端安全保障 资料获取:私信或者进主页。…

Redis数据库的删除和安装

Redis数据库的删除和安装 1、删除Redis数据库2、下载Redis数据库 1、删除Redis数据库 没有下载过的,可以直接跳到下面的安装过程↓ 我们电脑中如果有下载过Redis数据库,要更换版本的话,其实Redis数据库的删除是比较简单的,打开我…

微型操作系统内核源码详解系列五(五):cm3下Pendsv切换任务上篇

系列一:微型操作系统内核源码详解系列一:rtos内核源码概论篇(以freertos为例)-CSDN博客 系列二:微型操作系统内核源码详解系列二:数据结构和对象篇(以freertos为例)-CSDN博客 系列…

Bilibili开源发布轻量级 Index 系列语言模型:2.8T 训练数据,支持角色扮演

Bilibili首次发布 Index 系列模型中的轻量版本:Index-1.9B 系列 本次开源的 Index-1.9B系列包含以下模型: Index-1.9Bbase:基座模型,具有 19 亿 非词嵌入参数量,在 2.8T 中英文为主的语料上预训练,多个评测基准上与…

已解决java.util.concurrent.BrokenBarrierException异常的正确解决方法,亲测有效!!!

已解决java.util.concurrent.BrokenBarrierException异常的正确解决方法,亲测有效!!! 目录 问题分析 出现问题的场景 报错原因 解决思路 解决方法 分析错误日志 检查线程中断 设置合理的等待时间 优化代码逻辑 使用同步…

Linux gdb lldb面试题及参考答案(万字长文)

什么是GDB?简述其主要功能。 GDB(GNU Debugger)是GNU项目的一部分,是一个功能强大的源代码级别的调试器,主要用于C、C++和其他多种编程语言的程序调试。GDB提供了丰富的功能来帮助开发者理解程序内部的工作方式,诊断并修复代码中的错误。其主要功能包括但不限于: 启动程…

[数据概念|方案实操]清华数据大讲堂5-数据要素化治理的理论方法与工程实践

“ 数据要素化是资产化的重要前提和实现路径” 鼹鼠哥公众号链接在 [数据概念|方案实操]清华数据大讲堂5-数据要素化治理的理论方法与工程实践 (qq.com) 2024年6月5日,清华数据大讲堂第五讲开讲。 中国电子信息产业集团副总 陆志鹏 以《数据要素化治理的理论方法与…