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.rhkb.cn/news/357520.html

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

相关文章

Golang | Leetcode Golang题解之第172题阶乘后的零

题目: 题解: func trailingZeroes(n int) (ans int) {for n > 0 {n / 5ans n}return }

pytets测试框架中如果需要运行多个测试套件时pytest.ini文件设置

pytets测试框架中如果需要运行多个测试套件时pytest.ini文件设置方法 testpaths testcases/fenmi testcases/weixin testcases/Zgen

QT实现人脸识别

QT实现人脸识别 Face.pro文件: QT core guigreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c11# The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated (the exact warnings # d…

【MATLAB】(高数)

参考文章 函数极限 导数与偏导 极值和最值 局部范围的最值 局部范围内的最值,相当于函数的极值 离散数据的最值 多元函数的极值 fminunc [x, fval] fminunc(fun, x0)fun为代求极值的函数;x0为起始点,即从这个点开始寻找极值,…

数据结构9——排序

一、冒泡排序 冒泡排序(Bubble Sort),顾名思义,就是指越小的元素会经由交换慢慢“浮”到数列的顶端。 算法原理 从左到右,依次比较相邻的元素大小,更大的元素交换到右边;从第一组相邻元素比较…

贪心算法——赶作业(C++)

慢慢来,沉稳一点。 2024年6月18日 题目描述 A同学有n份作业要做,每份作业有一个最后期限,如果在最后期限后交作业就会扣分,现在假设完成每份作业都需要一天。A同学想安排作业顺序,把扣分降到最低,请帮他实…

工业园安全生产新保障:广东地区加强可燃气体报警器校准检测

广东,作为我国经济的重要引擎,拥有众多工业园区。 这些工业园区中,涉及化工、制药、机械制造等多个领域,每天都会产生和使用大量的可燃气体。因此,可燃气体报警器的安装与校准检测,对于保障工业园区的安全…

XSS漏洞实验

本篇为xss漏洞实验练习,练习网址来源于网络 练习网址:XSS平台|CTF欢迎来到XSS挑战|XSS之旅|XSS测试 一、前置说明 在测试过程中,有哪些东西是我们可以利用来猜测与判断的: 网页页面的变化;审查网页元素;查…

广州化工厂可燃气体报警器检定检验:安全生产新举措显成效

随着科技的不断发展,可燃气体报警器的检定检验技术也在不断进步。 广州的一些化工厂开始采用先进的智能检测系统和数据分析技术,对报警器的性能进行更加精准和全面的评估。 这些新技术不仅能够提高检定检验的效率和准确性,还能够为化工厂的…

批量重命名神器揭秘:一键实现文件夹随机命名,自定义长度轻松搞定!

在数字化时代,我们经常需要管理大量的文件夹,尤其是对于那些需要频繁更改或整理的文件来说,给它们进行批量重命名可以大大提高工作效率。然而,传统的重命名方法既繁琐又耗时,无法满足高效工作的需求。今天,…

网管工作实践_02_IP/MAC地址管理工具

1、ipconfig命令格式及参数 ipconfig是内置于Windows的TCP/IP应用程序,用于显示本地计算机网络适配器的MAC地址和IP地址等配置信息,这些信息一般用来榆验手动配置的TCP/IP设置是否正确。当在网络中使用 DHCP服务时,IPConfig可以检测计算机中分…

k8s上尝试滚动更新和回滚

滚动更新和回滚 实验目标: 学习如何进行应用的滚动更新和回滚操作。 实验步骤: 创建一个 Deployment。更新 Deployment 的镜像版本,观察滚动更新过程。回滚到之前的版本,验证回滚操作。 今天呢,我们继续来进行我们k…

远程医疗软件到底哪个好用?

随着科技进步的不断推进,远程医疗已经成为现代医疗体系的一个重要支柱。远程医疗软件,通过网络通信技术的运用,打破了地理限制,实现了医疗资源的有效整合与共享,为民众提供了前所未有的便捷高效的医疗服务体验。那么&a…

【C++】初始化列表、匿名对象、static成员、友元、内部类

文章目录 一、初始化列表构造函数体赋值初始化列表explicit关键字 二、匿名对象三、static成员四、友元友元函数友元类 五、内部类六、练习题 一、初始化列表 构造函数体赋值 实际上,构造函数的函数体内,并不是对 对象 初始化的地方,而是对…

Spring框架的核心原则和IoC容器介绍

Spring框架是一个开源的应用程序框架,它遵循以下核心原则: 1.Inversion of Control(控制反转): Spring框架通过IoC容器管理对象的生命周期和依赖关系,而不是由程序代码直接创建对象。这样可以降低组件之间的耦合度&…

三、MyBatis实践:提高持久层数据处理效率

三、MyBatis实践:提高持久层数据处理效率 目录 一、Mybatis简介 1.1 简介1.2 持久层框架对比1.3 快速入门(基于Mybatis3方式) 二、MyBatis基本使用 2.1 向SQL语句传参 2.1.1 mybatis日志输出配置2.1.2 #{}形式2.1.3 ${}形式 2.2 数据输入 2…

记MySQL事务+消息队列引起的问题

问题描述: 先说一下流程:后端保存前端提交的图表信息,然后发送异步消息到消息队列,由下游服务去处理图表信息。 部署项目到服务器,验证项目功能的时候,出现了以下错误:数据库存在数据。下游服…

《Python 机器学习》作者新作:从头开始构建大型语言模型,代码已开源

ChatGPT狂飙160天,世界已经不是之前的样子。 更多资源欢迎关注 自 ChatGPT 发布以来,大型语言模型(LLM)已经成为推动人工智能发展的关键技术。 近期,机器学习和 AI 研究员、畅销书《Python 机器学习》作者 Sebastian …

npm 安装踩坑

1 网络正常,但是以前的老项目安装依赖一直卡住无法安装?哪怕切换成淘宝镜像 解决办法:切换成yarn (1) npm i yarn -g(2) yarn init(3) yarn install在安装的过程中发现: [2/4] Fetching packages... error marked11.1.0:…

“脏读”、“幻读”、“不可重复读”

“脏读”、“幻读”、“不可重复读” 1.概念说明 “脏读”、“幻读”、“不可重复读”是数据库事务的概念。 “脏读”是指一个事务中访问到了另外一个事务未提交的数据。 “不可重复读”是指在一个事务内根据同一个条件对数据进行多次查询,但是结果却不一致&…