Sweep折角过渡处理eryar30天前更新关注私信04.8W+2.3W+ 1 Introduction 在《The NURBS Book》中对扫掠曲面Swept surfaces有如下定义: S(u,v)=T(v) + M(v) C(u) 其中轨道曲线记为T(v),截面曲线记为C(u),M(v)是一个变换矩阵。从扫掠曲面定义中可以看出,在已知轨道曲线和截面曲线的前提下,如何确定变换矩阵M是关键的内容。在《微分几何》中研究的一般是正则曲线,即光滑且曲线上处处可导不为零。而在实际建模中,总是会遇到各种工况,如轨道线自交、G0连续不光滑等等,需要考虑处理这些情况,这也是几何内核在工程应用中需要打磨的一些细节。本文首先对OpenCASCADE中扫掠算法做一个总体介绍,最后重点介绍一下对于轨道线G0连续的处理,即折角的处理。 2 OCCT Sweep 在OpenCASCADE中扫掠算法主要由类BRepFill_PipeShell来实现,为了方便验证算法,在Draw Test Harness中暴露了一系列命令,如mksweep, setsweep, addsweep, buildsweep。在使用相关类或Draw命令时,会有一些参数需要设置,理解这些参数的作用对于理解扫掠造型算法和正确使用都很重要。下图所示是类BRepFill_PipeShell的一个整体介绍: 扫掠算法需要重点关注的是LocationLaw和Transition的处理,分别对应到扫掠曲面的变换矩阵的确定及轨道线G0连续处有折角的处理。其中SectionLaw是来定义截面的规则,如截面是点带是线,是一个截面还是多个截面。 3 Location Law Location Law为局部坐标系规则,即用来确定扫掠曲面中的变换矩阵M。虽然从BRepFill_LocationLaw派生的有三个类,即三种规则,实际上对应到Trihedron中是有很多类型。比如说Fixed类型,即为不管轨道脊线的变化,变换矩阵M始终为指定的固定的坐标系。 如上图所示,通过设置固定的局部坐标系,使截面曲线的法向始终指向X方向。 如上图所示,通过设置LocationLaw为Frenet类型,并对G0连续折角处使用Right直角过渡处理得到的结果。Frenet标架是曲线论中基础概念,相关内容请参考《微分几何》,这里需要强调一点的是专用名词的使用,对于Frenet标架定义的三个方向:切矢Tangent vector,主法矢Normal vector和副法矢Binormal vector,一般取首字母简写成T, N, B,在代码中也是使用相关单词或简写,从而起到见名知义的效果。 如上图所示为使用Darboux的Location Law使用截面的局部坐标系的法向始终垂直于支撑面,即使用支撑面的法向。 剩下带有很多Location Law规则,如带有引导线Guide的规则,这些规则的目的是不变的,即来确定扫掠曲面中的变换矩阵M,即截面线在轨道线上变换。这样就可以理解其代码实现。 4 Transition Style OpenCASCADE中很多扫掠相关的BUG与Transition Style有关,即轨道线G0连续的地方有折角的处理。折角过渡方式有三种:Modified是不做处理。Right是直角过渡。Round是圆角过渡。 下面重点介绍直角过渡Right的处理逻辑。首先是通过每两段轨道线连接处的切矢来判断是否是折角,从而进一步进行过渡处理。如下图所示,在两段线连接处会有断开的情况,把这个情况筛选出来。 将需要进行直角过渡相连的两个面进行延长,为后面做布尔做准备: 对延长的两个面做布尔并进行分割,以相连处切矢的平均方向为分割面的法向对布尔后的模型分割,如下图所示: 从对直角过渡的处理可以看出,主要是延长和布尔操作来对折角处进行截剪Trim。若空间曲线在折角处扭曲比较厉害,容易出现布尔没有交线的情况,从而产生BUG。理解扫掠算法后,可以自己动手尝试修复一些BUG,如官网上有个关于直角过渡的BUG: https://tracker.dev.opencascade.org/view.php?id=28108 5 Conclusion 综上所述,OpenCASCADE中扫掠造型能力还不错,确定局部坐标系规则LocationLaw类型很多,可能是后期迭代应用过程中增加了一些。对于折角过渡处理有两种方式,一种是直角过渡,一种是圆角过渡。直角过渡使用布尔裁剪延长的面,圆角过渡是使用旋转面,从处理方式来看,对于空间扭曲较大的折角处,容易产生问题。理解扫掠算法原理后,可以自己动手尝试去修复官网上BUG管理系统中的一些BUG,从而完全掌握OCCT的扫掠造型算法。 6 References 1 赵罡, 穆国旺,王拉柱. 非均匀有理B样条. 清华大学出版社. 2010 2 梅向明, 黄敬之. 微分几何. 高等教育出版社. 2008 3 陈维桓. 微分几何. 北京大学出版社. 2006 4 朱心雄. 自由曲线曲面造型技术. 科学出版社. 2000 5 施法中. 计算机辅助几何设计与非均匀有理B样条. 北京航空航天大学出版社. 1994 © 版权声明文章版权归作者所有,未经允许请勿转载。THE ENDOCC源码学习几何造型器综合# opencascade code study 喜欢就支持一下吧点赞2.3W+ 分享QQ空间微博QQ好友海报分享复制链接收藏
暂无评论内容