OGG几何内核开发-BRepAlgoAPI_Fuse与BRep_Builder.MakeCompound比较

news2024/11/17 13:19:18

最近在与同事讨论BRepAlgoAPI_Fuse与BRep_Builder.MakeCompound有什么区别。

一、从直觉上来说,BRepAlgoAPI_Fuse会对两个实体相交处理,相交的部分会重新的生成相关的曲面。而BRep_Builder.MakeCompound仅仅是把两个实体组合成一个新的实体,但相交的部分不会处理。

一个球体与一个长方体相交。三种方式:

1、直接放置在相近的位置,结果:两个独立的实体。

参考示例代码:

TopoDS_Shape topoBox = BRepPrimAPI_MakeBox(axis, 3.0, 4.0, 5.0).Shape();
TopoDS_Shape topoSphere = BRepPrimAPI_MakeSphere(axis, 2.5).Shape();

2、调用BRepAlgoAPI_Fuse,做融合,结果:融合成为一个实体。

参考示例代码:

TopoDS_Shape topoBox = BRepPrimAPI_MakeBox(axis, 3.0, 4.0, 5.0).Shape();
TopoDS_Shape topoSphere = BRepPrimAPI_MakeSphere(axis, 2.5).Shape();
TopoDS_Shape fusedShape = BRepAlgoAPI_Fuse(topoBox, topoSphere);

3、调用BRep_Builder.MakeCompound,做聚合,聚合成一个Compound实体。

参考示例代码:

TopoDS_Shape topoBox = BRepPrimAPI_MakeBox(axis, 3.0, 4.0, 5.0).Shape();
TopoDS_Shape topoSphere = BRepPrimAPI_MakeSphere(axis, 2.5).Shape();
  
    // Make a compound shape.
    TopoDS_Compound aComp;
    BRep_Builder aBuilder;
    aBuilder.MakeCompound(aComp);
    aBuilder.Add(aComp, topoBox);
    aBuilder.Add(aComp, topoSphere);

如下图所示:

二、如何发现BRepAlgoAPI_Fuse与BRep_Builder.MakeCompound区别。

 方式一:点选实体,并切换Shading显示模式。

注意看,中间的Fuse的相交部分,有新的曲线与曲面生成。

方式二:对这些实体进行brep数据结构分析

1、长方体的6个Face ID: 28~33

2、Fuse融合的实体:是个Compound实体,只有一个Solid子实体,7个面中29,31,33是融合前的长方体的面,另4个面是重新生成的。

3、MakeCompound生成的聚合实体:有两个Solid子体。其中6个Face的ID,仍然是聚合前的长方体的6个Face。

所以,BRep_Builder.MakeCompound不会做曲面求交以及重新生成相交部分的曲线曲面的等动作。速度会大大快过BRepAlgoAPI_Fuse。但生成的聚合实体,可能不是你想要的。

三、几何内核信息

基于OCCT 7.7.0内核修改。

四、OGG 1.0内核

OGG 1.0内核,在OCCT 7.7.0的基础上有486项多改进。

编译并试用过后,目前情况是,OGG 1.0与OCCT 7.7.0的兼容性非常好。

只是我对内核的修改,ID生成,不知什么原因,全变成0了。

还需要进一步分析原因。

五、原因很简单,只添加了字段,未生成ID。

参考示例代码:

TopoDS_TShape()
: myFlags (TopoDS_TShape_Flags_Free
         | TopoDS_TShape_Flags_Modified | TopoDS_TShape_Flags_Orientable)
{
  id = getIdIndex();
}

编译OGG1.0的内核代码后,重新编译OGG测试插件,id生成正常。

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

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

相关文章

30%参数达到92%的表现,大模型稀疏化方法显神通

当我还是一位懵懂少年的时候,总认为“任务难度”,“参数规模”和“准确率”是一个不可兼顾的三角,比如当我想要挑战更难的任务,追求获得更高的准确率,那必然就要在更大的模型参数量上进行妥协。然而,真的是…

使用 Docker 部署 VS Code in The Browser

1)介绍 GitHub:https://github.com/coder/code-server 在日常学习工作中,Vscode 已成为我们首选的代码编辑器。然而,其局限性在于当我们从家到公司移动时,难以保持连续的编码体验。针对这一痛点,虽然市面上…

OpenCV的视频 I/O 的标志(77)

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV 下一篇 :OpenCV系列文章目录(持续更新中......) ​ 枚举 枚举 cv::VideoCaptureAPIs { cv::CAP_ANY 0, cv::CAP_VFW 200, cv::CAP_V4L 200, cv::CAP_V4L2 …

基于51单片机的二氧化碳检测及调节系统仿真

基于51单片机的二氧化碳检测及调节系统 (仿真+程序) 功能介绍 具体功能: 1.二氧化碳传感器测得二氧化碳数据后经过单片机处理。 2.LCD1602实时显示,第一行显示测得的浓度值,第二行显示报警阈值。 3.测…

【gpedit.msc】组策略编辑器的安装,针对windows家庭版,没有此功能

创建一个记事本文件然后放入以下内容 echo offpushd "%~dp0"dir /b %systemroot%\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >gp.txtdir /b %systemroot%\servicing\Packages\Microsoft-Windows-GroupPolicy-…

安装Centos7提示dracut:/# 及磁盘空闲不足的坑

前言 这个问题是因为安装程序没有找到安装文件的位置,一般仅出现在安装过Windows系统的电脑上。 如果出现该错误,两种解决办法。 解决 方法一: 开机时,进入启动选项,选择不带UEFI的U盘进行启动可以直接避免这个坑。 …

IIS配置SSL,根据pem和key生成pfx,openssl的版本不能太高

1、生成pfx文件 供应商给的文件是pef和key后缀的两个文件,在IIS里不好导入(如果有知道好导入的可以给我留言,谢谢。)。 1.1 下载OpenSSL工具,并安装。 主要用于将.pem文件转成.pfx文件。 下载OpenSSL的链接:http://slproweb.com/…

地下工程中测斜仪的关键应用

地下工程,如隧道、地铁和基坑等项目的建设,对于现代城市的发展至关重要。然而,这些工程的实施往往伴随着诸多风险,特别是与周围土体的稳定性有关的风险。为了确保工程的安全进行,实时监测技术变得尤为关键。其中&#…

【敦煌网注册/登录安全分析报告】

敦煌网注册/登录安全分析报告 前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大…

Java --- 集合(1)--- 带你了解Collection接口以及三种遍历方式

引言:本期博客摘选黑马程序员与Java从入门到精通,如果有不准确的地方还请指出,另外也感谢各位大佬点击进来观看。 目录 一.什么是集合? 二.单列集合的体系结构: 三.Collection接口的使用: 四.Collection…

C语言(指针)1

Hi~!这里是奋斗的小羊,很荣幸各位能阅读我的文章,诚请评论指点,关注收藏,欢迎欢迎~~ 💥个人主页:小羊在奋斗 💥所属专栏:C语言 本系列文章为个人学习笔记&#x…

推荐全网最全的AI小白进阶指南

1. 引言 您想学习人工智能?但不知道如何开始,也不知道从哪里开始?互联网上的资源总是丰富多彩,质量参差不齐,往往容易看花眼而无从下手。 鉴于此,本文重点推荐一些个人收集的还不错的一些资源供大家学习参…

两重惊喜!奥特曼预告GPT-4和ChatGPT重大更新,Open AI要放大招

OpenAI在今天官宣13日(下周一10点)开启线上直播,将会展示全新的ChatGPT demo的演示以及GPT-4的重大更新! OpenAI首席执行官Sam Altman在X上表示,这些的发布会,公司不会宣布下一代对话式人工智能GPT-5或人工…

日报表定时任务优化历程

报表需求背景 报表是一个很常见的需求,在项目中后期往往会需要加多种维度的一些统计信息,今天就来谈谈上线近10个月后的一次报表优化优化之路(从一天报表跑需要五分钟,优化至秒级) 需求:对代理商进行日统计…

示例十一、声音传感器

通过以下几个示例来具体展开学习,了解声音传感器原理及特性,学习声音传感器的应用(干货版): 示例十一、声音传感器 ino文件源码: //Arduino C demo void setup() {Serial.begin(9600);pinMode(5, OUTPUT); }void loo…

瑞友天翼应用虚拟化系统SQL注入漏洞

文章目录 漏洞描述漏洞原理影响版本漏洞复现防御方法 漏洞描述 瑞友天翼应用虚拟化系统是基于服务器计算架构的应用虚拟化平台,它将用户各种应用软件集中部署到瑞友天翼服务集群,客户端通过 WEB 即可访问经服务器上授权的应用软件,实现集中应…

一文搞懂反射,还有谁不懂,直接甩给他

Hi,大家好,我是抢老婆酸奶的小肥仔。 反射,在我们日常开发中无时无刻,被大量运用在框架代码和工具代码中,反射可以通俗点讲就是一个类的自我剖析,通过反射可以获取到这个类所有信息,包括:属性&…

mysql数据库:read_me_recover_tn勒索恢复---惜分飞

最近有客户被MySQL删库勒索,现象如下:1. 删除掉以前的库,并创建一个同名库,并且会创建一个read_me_recover_tn库,类似下图: 2. 在read_me_recover_tn库中有一个readme表,每个被删除然后创建的库里面也有一个readme表 3. 每个readme表内容类似信息类似: mysql> desc read…

操作系统基础之磁盘

概述 基本概念 磁盘有正反两个盘面,每个盘面有多个同心圆,每个同心圆是一个磁道,每个同心圆又被划分为多个扇区,数据就被存在扇区中。 磁头首先寻找到对应磁道,然后等到磁盘进行周期旋转到指定的扇区,才…

Colab/PyTorch - 003 Transfer Learning For Image Classification

Colab/PyTorch - 003 Transfer Learning For Image Classification 1. 源由2. 迁移学习(ResNet50)2.1 数据集准备2.2 数据增强2.3 数据加载2.4 迁移学习2.5 数据集训练&验证2.6 模型推理 3. 总结4. 参考资料 1. 源由 迁移学习已经彻底改变了 PyTorch 中处理图像分类的方式…