本文是对前几次的博客的一个扩展,本文的重点在于对于多个子实体(有接触性的)划分网格时,经常出现网格在子实体边界不连贯的问题,考虑到之前本人仅仅对这些子实体简单的进行了组装(OCC接口是MakeCompound),好处是相比于BRepAlgoAPI_Fuse速度要快很多,当然,这肯定带来了网格的不连贯问题,于是,本人目前没有想到更好的方式下,仅仅利用BRepAlgoAPI_Fuse对子实体求并集,然后再传给netgen或者gmsh。

具体接口为:

TopoDS_Shape  QFormDoc::makeOneShape(Handle(TopTools_HSequenceOfShape) theShapes)
{
    TopoDS_Shape res;
    Standard_Integer nb = theShapes->Length();
    if (nb == 0)
        return res;
    else if (nb == 1) 
        return theShapes->Value(1);
    else 
    {
        res = theShapes->Value(1);
        for (Standard_Integer i = 2; i <= nb; i++)
        {
            res = BRepAlgoAPI_Fuse(res, theShapes->Value(i));
        }
        ShapeUpgrade_UnifySameDomain unif(res, false, true, false);
        unif.Build();
        return  unif.Shape();
    }
}

将得到的shape直接传给gmsh 或者 netgen即可。效果如下:

图1.stp模型加载

     图2.选中非叶节点(测试组合效果)

                                                         图3.面网格连贯性效果

                                                             图4.体网格连贯性效果

                                                     图5.netgen面网格连贯性效果

                                                         图 6.netgen体网格连贯性效果

后记:从面网格来看,连贯性是正常的,体网格由于太密集目前不少很好的观看效果,需要进一步替换方法测试。总体来说,多个有接触的实体同时划分网格处理上有了一定的积累,后期将进一步探索。

基于OCC+OSG的CAD之GMSH与Netgen网格连贯性测试相关推荐

  1. 基于opencascade+osg的CAD平台探索之二维图拉伸测试

    之前完善了二维草图功能,包括动态绘制基本图形:圆,矩形,多边形,椭圆,b样条以及他们的组合体!后面进一步完善了捕捉功能,今天测试了一下二维草图拉伸效果!!代码比较简单,因为occ有相应的接口!话不多说 ...

  2. 集成Opencascade+Gmsh+OSG的CAD测试程序

    程序整体流程如下图: 一.配置 1.配置OCC 需要先编译好OCC库,我的编译目录为"OCCBuild"目录. 在自建项目中,项目属性>>VC++目录>>添 ...

  3. 记录一下HALCON基于可变形,利用CAD画dxf模板进行模板匹配(二)

    本文接着上一篇记录一下HALCON基于可变形,利用CAD画dxf模板进行模板匹配 打开HALCON并打开匹配助手 匹配助手如图 "创建"页说明: 1,选择匹配方式 中间偏上方的下拉 ...

  4. 记录一下HALCON基于可变形,利用CAD画dxf模板进行模板匹配(三)

    接着上一篇记录一次HALCON利用匹配助手进行模板匹配详细过程 首先,在匹配助手窗口和采集助手窗口调整参数直到稳定匹配上之后,在实时的状态下点击生成代码 点击完生成了代码,关闭匹配助手窗口和采集助手窗 ...

  5. 实践数据湖iceberg 第三十四课 基于数据湖icerberg的流批一体架构-流架构测试

    系列文章目录 实践数据湖iceberg 第一课 入门 实践数据湖iceberg 第二课 iceberg基于hadoop的底层数据格式 实践数据湖iceberg 第三课 在sqlclient中,以sql ...

  6. 基于嵌入式Linux的千兆以太网卡驱动程序设计及测试

    基于嵌入式Linux的千兆以太网卡驱动程序设计及测试 一. 引言 千兆以太网是一种具有高带宽和高响应的新网络技术,相关协议遵循IEEE 802.3规范标准.采用和10M以太网相似的帧格式.网络协议和布 ...

  7. 基于超级网银异地多活项目的多活类项目测试经验分享,了解金融行业软件测试实践

    背景:在软件测试领域,金融行业软件测试无疑有着重要的位置,它吸纳了众多行业相关从业者,同时随着金融业务不断增加.模式也在不断变化,也对金融行业的软件测试人员在能力.测试技能的要求更高. 本文中,中国农 ...

  8. 基于OCC与OSG的CAD平台构建值gmsh划分效果测试

    大半年没更新博客了,目前处在项目的重构中,一时没有增加特别的功能模块,所以本文主要是对gmsh网格划分模块的一个效果展示,更多功能将持续改进中........... 零.模型前瞻 一.gmsh的波前法 ...

  9. 基于opencascade与osg的CAD探索之osg拾取点线面

    拾取在CAD中经常用到,是交互中比较常用的方式,本人利用osg渲染stp模型,并实现了拾取功能! 在osg中实现拾取的思路就是重写osgGA::GUIEventHandler,利用线段或者射线求交即可 ...

最新文章

  1. python3操作mysql教程_python3操作mysql教程
  2. apollo在liunx环境实战(三)
  3. 如何让弹窗不影响主界面_如何压缩视频大小不影响画质
  4. python 40位的数减个位数_Python——进制表示与转换
  5. Webpack初学者介绍
  6. 数据消费过程_特色鲜卤现捞加盟店经营要如何抓准消费群体定位
  7. 第十篇:Map/Reduce 工作机制分析 - 数据的流向分析
  8. 《从零开始学Swift》学习笔记(Day 53)——do-try-catch错误处理模式
  9. 进阶之路(基础篇) - 009 通过底层AVR方法实现SPI数据传输
  10. 如何读取H264文件获得每一帧的数据(VsParserPro)
  11. MySQL分页查询的sql语句
  12. java服务安装(三):使用appassembler
  13. Maven原始setting.xml文件备份
  14. 5款优秀的在线表格生成工具
  15. GHostNet网络最通俗易懂的解读【不接受反驳】
  16. Lost RAM可能的原因
  17. Java抽象类(abstract)
  18. Odoo 16 企业版手册 - 库存管理之寄售
  19. python垃圾邮件识别_Python 手写朴素贝叶斯分类器检测垃圾邮件/短信
  20. 大学新生不知道去哪里找论文参考文献?

热门文章

  1. CoinBene交易所评级报告 | TokenInsight
  2. matlab中的图像坐标系统
  3. js干货-Bom,Dom事件及各种案例
  4. kindle连不上手机热点问题细节
  5. 小学计算机有哪些有趣的东西,小学里哪些课程够好玩:木工课火到电脑派位
  6. 虚拟服务器部署环境,如何在虚拟服务器环境部署SR-IOV?
  7. ADSL 错误代码大全
  8. 宇宙为什么要限制光速,限制光速背后的玄机是什么?
  9. linux服务器部署web环境(一)
  10. 【opencv安装和配置完整版教程】(win10+vs2019+opencv4.4.0+opencv_contrib-4.4.0+永久配置)