“顶级系统”公司论坛上的几何核心 RGK

打开网易新闻 查看精彩图片

在5月24日举行的“顶级系统”论坛上,主要会议之一专门介绍了“顶级系统”公司的产品——RGK几何核心。会议由公司开发总监 谢尔盖·科兹洛夫 和 3D 建模技术开发总监 列昂尼德*巴拉诺夫 主持。他是 RGK 几何核心开发小组的负责人。

在本节的第一部分,谢尔盖·科兹洛夫 讲述了几何核心的创造历史和现状。

事实上,几何核心RGK的开发早在1984年就开始了,当时莫斯科机床研究所(后来的 “莫斯科车床工具研究所”)组建了一个小组,在副教授雷巴科夫的指导下进行几何建模领域的研究和3D核心的开发。雷巴科夫和苏济洛夫斯基。正是从那时起,列昂尼德·巴拉诺夫开始以数学家程序员的身份从事这项工作,后来在斯坦金完成学业后,他领导了这个小组。工作成果显着。1995年,发布了T-FLEX CAD版本,其中3D建模功能由其自己的几何内核提供。当时,该公司没有足够的资源来进行如此科学密集且昂贵的开发。同时,可以授权 ACIS 几何内核,然后是 Parasolid。因此,1996 年,T-FLEX CAD 第 6 版在 ACIS 几何内核上发布,1998 年第 7 版在 Parasolid 内核上发布。因此,T-FLEX CAD 开发人员有机会使用所有主要几何内核并评估其架构和功能。

2011年,“莫斯科车床工具研究所”获得了俄罗斯几何核心开发合同,作为国内机床项目开发的一部分。作为这项工作的积压工作,采用了“顶级系统”公司的开发。为了提供最新水平的解决方案,内核算法几乎完全现代化,但保留了主要的实现方法。2013年合同工作完成后,“顶级系统”并没有停止RGK的开发(该产品就是在那时命名的),而是继续开发。

打开网易新闻 查看精彩图片

谢尔盖*科兹洛夫和列昂尼德*巴拉诺夫 展示 RGK 的几何核心

RGK几何核心已在"植物标本室"项目中得到应用,该项目是“顶级系统”根据高级研究基金会(FPI)的要求于2015-2016年进行的,以及数字企业(SARUS)项目,其第一阶段最近完成“顶级系统”积极参与了该项目的开发。

目前,“顶级系统”已获得独立开发RGK并将其作为商业产品推向市场的所有机会。该产品将同时交付多个平台,包括各种版本的Linux,包括国内认证版本。该产品计划作为用于 C++ 编程语言的类库以及在终端系统中方便使用所需的所有组件提供。开发工具包 (SDK) 包括:

  • 可执行模块;
  • 构建最终应用程序所需的库和头文件;
  • 超文本帮助形式的电子手册文件;
  • 源代码中的一组示例;
  • 可执行程序RGKWorkshop——测试和调试外壳,既是分析工具又是调试几何模型的工具;
  • RGK模型存储格式的描述-RGK_XML。

另外,需要注意的是,RGK_XML数据存储格式是开放和指定的。它具有清晰的结构,符合组织 RGK 数据模型的一般原则。该格式可用于标准化目的,以确保表示这些对象的准确几何模型。

该部分的第二部分由列昂尼德·巴拉诺夫领导。他谈到了构建RGK几何核心数据模型的原理、其架构特点以及模块开发人员必须解决的最复杂和有趣的任务。故事附有大量插图和对比测试演示。

RGK 几何内核根据经典边界表示方案 (B-Rep) 和“精确”几何形状提供几何对象建模 - 使用各种类型的曲线和曲面的解析表示。这种表示允许您以高精度对对象进行建模,同时当计算的精度与模型对象一起存储时,提供使用容错几何体的能力。公差几何精度设置适用于内核代码中执行的所有计算。即使对于非常复杂的几何形状和源数据的低精度,此功能也能够保持几何模型的完整性。

几何核提供以下主要功能:

  • 几何模型的存储(物体、表面、曲线的几何/拓扑);
  • 创建和编辑几何模型;
  • 几何模型的标识和属性管理;
  • 控制几何模型的完整性和质量;
  • 几何模型的测量与分析;
  • 构建模型的平面表示(曲面细分),以便可视化或准备用于生成计算 (CAE) 网格的数据;
  • 预测和观点的生成。

可在最终应用程序中使用的 RGK 几何内核类提供用于创建和编辑几何图形的低级功能,以及内核中称为生成器的高级专用功能。例如,内核类库包含以下生成器:

  • 基元(棱柱、环面、球体、圆柱体、圆锥体);
  • 运动学操作(拉伸、旋转、沿轨迹、沿截面);
  • 布尔运算(全局、局部、选择性);
  • 各种类型的平滑操作(倒角、边缘平滑、三面体平滑、面平滑);
  • 壳体/本体位移/加厚操作;
  • 端面锥度操作;
  • 面部去除/替换/变换操作(所谓的直接建模操作);
  • 缝合/切割操作;
  • 复制/变换实体的操作,包括沿轴使用不同的比例;
  • 许多低级实体操作以及许多曲线操作。

RGK 中许多生成器的功能相当先进。让我们详细讨论一下内核支持的一些操作的特性。

例如,“按轨迹”和“按部分”生成器支持许多相当高级的选项。可以单独或组合设置所绘制轮廓的扭转和缩放定律(图 1),以及设置多个轨迹及其同步的各种方式。

图1. 通过缩放和/或扭曲沿着路径扫掠
打开网易新闻 查看精彩图片
图1. 通过缩放和/或扭曲沿着路径扫掠

此外,还支持运动路径上的中断处理(图2.3)。

图2. 扫掠刀具路径时处理扭结
打开网易新闻 查看精彩图片
图2. 扫掠刀具路径时处理扭结
图3.三向扫地
打开网易新闻 查看精彩图片
图3.三向扫地

在内核中构造曲面时,要特别注意其质量,既要满足构造精度的要求,又要最小化控制点的数量并规范参数化。由于 RGK 开发人员可以直接访问可以说是世界上最好的固态核心 Parasolid 的功能,因此可以进行公正的研究和结果比较。目前,RGK中的表面生成算法的质量总体上与该核心相当,并且还在不断提高,因为开发人员当前的任务是实现与世界上最好的核心的功能对等。在这方面,在开发过程中,进行了大量的研究工作来分析算法的质量,并与“重”级的其他竞争解决方案进行比较。

图4.“按部分”在生成器中设置边界条件:G2-曲面的平滑共轭
打开网易新闻 查看精彩图片
图4.“按部分”在生成器中设置边界条件:G2-曲面的平滑共轭

众所周知,无论是在数学上还是在算法上,最复杂的几何建模问题之一是平滑(圆化)表面的问题。鉴于此,在开发 RGK 内核时,特别关注这一特殊功能。目前,边缘平滑支持几乎所有基本形状控制模式(从所谓的“重型”类系统的功能中得知):恒定和可变半径的截面;指定宽度,无论是在恒定模式还是可变模式下;具有二阶曲线的可变截面(椭圆、抛物线、双曲线);所有类型平滑的平滑过渡和边缘保留模式;曲率保持 - G2 平滑度(图 4);设置从顶点的缩进以进行顶点平滑。特别值得注意的是该算法的架构,它允许在单一形式中同时支持边面平滑和三面体平滑,从而提供了算法非常高的灵活性和开发的可能性。在平滑算法的拓扑鲁棒性方面已经做了很多工作。例如,根据给定的半径,算法可以对身体的拓扑结构进行较大的改变(图5.6)。

图5. 算法“不依附”父边——其行为由半径决定
打开网易新闻 查看精彩图片
图5. 算法“不依附”父边——其行为由半径决定
图6. 平滑算法输出到表面半径较大的相邻面(边缘保留模式)
打开网易新闻 查看精彩图片
图6. 平滑算法输出到表面半径较大的相邻面(边缘保留模式)

在较小半径上构建较大半径的平滑是可以接受的。这样的问题在实际建模中经常出现(图7)。

图 7. 处理曲率半径小于当前平滑半径的区域
打开网易新闻 查看精彩图片
图 7. 处理曲率半径小于当前平滑半径的区域

支持各种“溢出”,即过渡到平滑的相邻面,以及必要时保留边缘(图 8-10)。

图8.支持进入平滑边缘时的各种场景
打开网易新闻 查看精彩图片
图8.支持进入平滑边缘时的各种场景
图9. 使用大平滑半径时保留边缘
打开网易新闻 查看精彩图片
图9. 使用大平滑半径时保留边缘
图10.在可变平滑上保留锐利边缘的模式(提供整个面序列的G1平滑度
打开网易新闻 查看精彩图片
图10.在可变平滑上保留锐利边缘的模式(提供整个面序列的G1平滑度

RGK 平滑算法处理拓扑元素退化的能力值得特别关注(图 11)。

图11.极限情况下人脸消失的处理
打开网易新闻 查看精彩图片
图11.极限情况下人脸消失的处理

支持平滑重叠的复杂拓扑,这显着提高了实际使用中算法的质量(图12)。

图 12. 支持多个面重叠混合的示例
打开网易新闻 查看精彩图片
图 12. 支持多个面重叠混合的示例

在构造变量平滑方面取得了有趣的结果。特别是,通过重新计算重叠区域中的半径变化规律来支持重叠平滑序列的处理(图13)。

图13.可变半径的凸凹平滑
打开网易新闻 查看精彩图片
图13.可变半径的凸凹平滑

当然,RGK 算法支持可变半径的各个部分(图 14)。

位移

图14.在RGK中使用可变位移定律进行边缘平滑
打开网易新闻 查看精彩图片
图14.在RGK中使用可变位移定律进行边缘平滑

凸面

图15.通过圆锥曲线的凸性判别式来控制截面曲线的类型(从直线段到
打开网易新闻 查看精彩图片
图15.通过圆锥曲线的凸性判别式来控制截面曲线的类型(从直线段到
图16.支持变半径和等半径上的G2平滑度
打开网易新闻 查看精彩图片
图16.支持变半径和等半径上的G2平滑度
图 17. 支持不同断面类型的恒定断面宽度模式
打开网易新闻 查看精彩图片
图 17. 支持不同断面类型的恒定断面宽度模式
图 18. 固定宽度模式如何工作的示例
打开网易新闻 查看精彩图片
图 18. 固定宽度模式如何工作的示例

此外,还开发了构建 n 边形区域的平滑“拉动”的数学方法(图 19)。

图19. G1 收紧多边形区域
打开网易新闻 查看精彩图片
图19. G1 收紧多边形区域

这些发展尤其使得解决构造具有顶部凹痕(缩进)的表面的问题成为可能 - 图20和21。

图20.将区域紧缩算法应用于填充问题
打开网易新闻 查看精彩图片
图20.将区域紧缩算法应用于填充问题
图21. 缩进问题的说明性示例
打开网易新闻 查看精彩图片
图21. 缩进问题的说明性示例

平滑算法适用于实体和曲面体 - 在 RGK 中,这些拓扑之间没有差异(图 22)。

图22. 平滑曲面体的边缘
打开网易新闻 查看精彩图片
图22. 平滑曲面体的边缘

在RGK核心中,边缘平滑功能实际上是通过与边缘平滑相同的算法来实现的——唯一的区别在于顶层接口,但是解决了边缘平滑的经典问题(图23-25)。

图23.平滑属于不同实体的面
打开网易新闻 查看精彩图片
图23.平滑属于不同实体的面
图24. 去除复杂拓扑的面平滑
打开网易新闻 查看精彩图片
图24. 去除复杂拓扑的面平滑
图25. 三面体平滑的示例 - 与三个壁相切的表面
打开网易新闻 查看精彩图片
图25. 三面体平滑的示例 - 与三个壁相切的表面

由于RGK内核最初是为了与世界上最好的工业内核竞争而开发的,因此在内核工具中添加了重型应用系统所需的各种功能,以解决各种特殊问题。例如,构建面的斜率的任务最初被制定为指示任意几何形状的固定边缘以及在操作期间改变主体拓扑的可能性的任务(图26)。

图26. 构建具有固定边缘的锥面并更改模型的拓扑
打开网易新闻 查看精彩图片
图26. 构建具有固定边缘的锥面并更改模型的拓扑

当然,也支持相对于分型面的斜率,作为更一般设置的特殊情况(图 27)。

图27.构造具有给定分型面的面的斜率
打开网易新闻 查看精彩图片
图27.构造具有给定分型面的面的斜率

另一个例子:在布尔运算中,除了传统的“全局”运算模式(并集、减法和交集)之外,还有局部运算模式,应用程序可以指定哪些面执行选择性布尔运算,并能够选择原始实体中将保留的部分作为结果。此外,还提供了广义布尔运算,可以生成表示沿面和边缘彼此接触的物体的拓扑模型。还需要注意的是,布尔运算适用于实体和曲面体及其组合(图 28-32)。

图28. 表面体的布尔运算
打开网易新闻 查看精彩图片
图28. 表面体的布尔运算
图29. 对一组给定的实体面孔进行局部布尔运算
打开网易新闻 查看精彩图片
图29. 对一组给定的实体面孔进行局部布尔运算
图30.选择性布尔运算(减法)
打开网易新闻 查看精彩图片
图30.选择性布尔运算(减法)
图31. 刚体和曲面体上的选择性布尔运算(并集)
打开网易新闻 查看精彩图片
图31. 刚体和曲面体上的选择性布尔运算(并集)
图32. 广义布尔运算(并)接触面以红色突出显示
打开网易新闻 查看精彩图片
图32. 广义布尔运算(并)接触面以红色突出显示

布尔运算工具集支持处理实体实例(实例)的功能 - 用于优化实体数组上的布尔运算的技术,这些实体的几何形状仅在实例在空间中的位置上有所不同。此外,当元素沿给定面倍增时,还支持“图案化”操作(图 33)。

图33.通过“面部阵列”操作(图案化)再现身体的面部
打开网易新闻 查看精彩图片
图33.通过“面部阵列”操作(图案化)再现身体的面部

多线程计算在几何核算法中被广泛且积极地使用。该功能从一开始就内置于内核算法中,因为它是提高最终应用程序整体效率的主要工具之一。同时,RGK 支持计算的内部并行化(当自动启动并行线程时)和外部并行化(当在内核函数之外的应用程序代码中创建并行线程时)。与现有的几何内核相比,并行计算使得在许多场景中获得性能的倍数提升成为可能(图34、35)。

图34. 布尔运算RGK的算法运行示例
打开网易新闻 查看精彩图片
图34. 布尔运算RGK的算法运行示例
图35. 上图中任务的处理器负载的典型图表
打开网易新闻 查看精彩图片
图35. 上图中任务的处理器负载的典型图表

在大多数其他计算密集型任务中也观察到类似的行为。特别是检查装配体中物体相交、计算距离以及用移除的不可见线构建投影的问题(图 36)。

图 36. 移除起重机 9356 主体装配的不可见线后的投影以及该任务
打开网易新闻 查看精彩图片
图 36. 移除起重机 9356 主体装配的不可见线后的投影以及该任务
打开网易新闻 查看精彩图片

RGK开发套件(SDK)现已准备好交给第三方开发者试用。那些希望尝试 RGK 的人可以联系 “顶级系统”。

除了内核本身的工作之外,相关工作也在 T-FLEX CAD 17 中完成。特别是,现在通过系统用户界面和使用 Open API 支持 RGK (RGK_XML) 格式作为导入/导出功能的一部分。此外,还可以使用 T-FLEX CAD Open API 中的新功能来访问 RGK 格式的模型对象(实体、曲线)。系统的这些功能可以让您以最方便的方式获取RGK格式的CAD系统的几何对象。最新的 T-FLEX CAD 17 更新支持这些新功能。

核心工作正在高速进行,“顶级系统”公司给自己设定的任务是尽快达到几何建模领域现有西方世界领先者的水平,并可能超越这一水平。