ASCON公司C3D 内核并不是俄罗斯构建的唯一内核。政府还要求构建俄罗斯几何内核 RGK,这是一个 B-rep(边界表示)建模器,它也支持 NURBS 曲线和曲面。 RGK 的描述称,它针对复杂操作进行了优化,包括使用为内核设计的特殊类型的曲线和曲面,因此,它更快、更精确。 RGK由莫斯科大学的俄罗斯数学家开发,与C3D建模器一样,它支持多线程和GPU加速。它基于 OpenCL 作为 GPU 支持库。 RGK 支持 Windows 32 位和 64 位以及 Linux 平台。 RGK 内核的重点是并行性。开发人员表示,RGK 可以使用多种方法创建模型,并支持实体、曲面和线框建模。该应用程序可以同时处理同一模型中的不同类型的数据。该内核还支持模型的可视化技术,包括模型细分和网格生成器函数。当然,这是 GPU 支持变得重要的另一个领域。
在5月24日举行的“顶级系统”论坛上,主要会议之一专门介绍了“顶级系统公司的产品RGK几何核心。会议由公司开发总监谢尔盖·科兹洛夫和3D建模技术开发总监列昂尼德*巴拉诺夫主持。他是RGK几何核心开发小组的负责人。
在本节的第一部分,谢尔盖·科兹洛夫讲述了几何核心的创造历史和现状。
事实上,几何核心RGK的开发早在1984年就开始了,当时莫斯科机床研究所(后来的“莫斯科车床工具研究所”)组建了一个小组,在副教授雷巴科夫的指导下进行几何建模领域的研究和3D核心的开发。雷巴科夫和苏济洛夫斯基。正是从那时起,列昂尼德·巴拉诺夫开始以数学家程序员的身份从事这项工作,后来在斯坦金完成学业后,他领导了这个小组。工作成果显着。1995年,发布了T-FLEXCAD版本,其中3D建模功能由其自己的几何内核提供。当时,该公司没有足够的资源来进行如此科学密集且昂贵的开发。同时,可以授权ACIS几何内核,然后是Parasolid。因此,1996年,T-FLEXCAD第6版在ACIS几何内核上发布,1998年第7版在Parasolid内核上发布。因此,T-FLEXCAD开发人员有机会使用所有主要几何内核并评估其架构和功能。
2011年,“莫斯科车床工具研究所“获得了俄罗斯几何核心开发合同,作为国内机床项目开发的一部分。作为这项工作的积压工作,采用了“顶级系统”公司的开发。为了提供最新水平的解决方案,内核算法几乎完全现代化,但保留了主要的实现方法。2013年合同工作完成后,“顶级系统”并没有停止RGK的开发(该产品就是在那时命名的),而是继续开发。
RGK几何核心已在“植物标本室“项目中得到应用,该项目是“顶级系统”根据高级研究基金会(FPI)的要求于2015-2016年进行的,以及数字企业(SARUS)项目,其第一阶段最近完成“顶级系统”积极参与了该项目的开发。
目前,“顶级系统”已获得独立开发RGK并将其作为商业产品推向市场的所有机会。该产品将同时交付多个平台,包括各种版本的Linux,包括国内认证版本。该产品计划作为用于C++编程语言的类库以及在终端系统中方便使用所需的所有组件提供。
开发工具包(SDK)包括:
.可执行模块:
.构建最终应用程序所需的库和头文件:
.超文本帮助形式的电子手册文件:
.源代码中的一组示例;
.可执行程序RGKWorkshop——测试和调试外壳,既是分析工具又是调试几何模型的工具;
.RGK模型存储格式的描述-RGKXML。
另外,需要注意的是,RGKXML数据存储格式是开放和指定的。它具有清晰的结构,符合组织RGK数据模型的一般原则。该格式可用于标准化目的,以确保表示这些对象的准确几何模型。
该部分的第二部分由列昂尼德·巴拉诺夫领导。他谈到了构建RGK几何核心数据模型的原理、其架构特点以及模块开发人员必须解决的最复杂和有趣的任务。故事附有大量插图和对比测试演示。
RGK几何内核根据经典边界表示方案(B-Rep)和“精确”几何形状提供几何对象建模 - 使用各种类型的曲线和曲面的解析表示。这种表示允许您以高精度对对象进行建模,同时当计算的精度与模型对象一起存储时,提供使用容错几何体的能力。公 差几何精度设置适用于内核代码中执行的所有计算。即使对于非常复杂的几何形状和源数据的低精度,此功能也能够保持几何模型的完整性。
几何核提供以下主要功能:
.几何模型的存储 (物体、表面、曲线的几何/拓扑) ;
.创建和编辑几何模型;
.几何模型的标识和属性管理;
.控制几何模型的完整性和质量;
.几何模型的测量与分析;
.构建模型的平面表示(曲面细分),以便可视化或准备用于生成计算 (CAE) 网格的数据;
.预测和观点的生成。
可在最终应用程序中使用的 RGK 几何内核类提供用于创建和编辑几何图形的低级
功能,以及内核中称为生成器的高级专用功能。例如, 内核类库包含以下生成器:
.基元 (棱柱、环面、球体、圆柱体、圆锥体) ;
.运动学操作 (拉伸、旋转、沿轨迹、沿截面) ;
.布尔运算 (全局、局部、选择性) ;
.各种类型的平滑操作 (倒角、边缘平滑、三面体平滑、面平滑) ;
.壳体/本体 位移/加厚操作;
.端面锥度操作;
.面部去除/替换/变换操作 (所谓的直接建模操作) ;
.缝合/切割操作;
.复 制/变换实体的操作,包括沿轴使用不同的比例;
.许多低级实体操作以及许多曲线操作。
RGK 中许多生成器的功能相当先进。让我们详细讨论一下内核支持的一些操作的特 性。
例如,“按轨迹”和“按部分”生成器支持许多相当高级的选项。可以单独或组合设置所绘制轮廓的扭转和缩放定律 (图 1 ) ,以及设置多个轨迹及其同步的各种方式。
此外,还支持运动路径上的中断处理 (图 2.3) 。
在内核中构造曲面时,要特别注意其质量,既要满足构造精度的要求,又要最小化 控制点的数量并规范参数化。 由于 RGK 开发人员可以直接访问可以说是世界上最好的固态核心 Parasolid 的功能,因此可以进行公正的研究和结果比较。目前,RGK中的表面生成算法的质量总体上与该核心相当,并且还在不断提高,因为开发人员当前的任务是实现与世界上最好的核心的功能对等。在这方面,在开发过程中,进 行了大量的研究工作来分析算法的质量,并与“重”级的其他竞争解决方案进行比较。
众所周知,无论是在数学上还是在算法上,最复杂的几何建模问题之一是平滑 (圆 化) 表面的问题。鉴于此,在开发 RGK 内核时,特别关注这一特殊功能。 目前,边缘平滑支持几乎所有基本形状控制模式 (从所谓的“重型”类系统的功能中得知) :恒定和可变半径的截面;指定宽度,无论是在恒定模式还是可变模式下;具有二阶 曲线的可变截面 (椭圆、抛物线、双曲线) ;所有类型平滑的平滑过渡和边缘保留模式; 曲率保持 - G2 平滑度 (图 4) ;设置从顶点的缩进以进行顶点平滑。特别值得注意的是该算法的架构,它允许在单一形式中同时支持边面平滑和三面体平滑, 从而提供了算法非常高的灵活性和开发的可能性。在平滑算法的拓扑鲁棒性方面已经做了很多工作。例如,根据给定的半径,算法可以对身体的拓扑结构进行较大的 改变 (图 5.6) 。
在较小半径上构建较大半径的平滑是可以接受的。这样的问题在实际建模中经常出 现 (图 7) 。
支持各种“溢出” ,即过渡到平滑的相邻面,以及必要时保留边缘 (图 8- 10) 。
RGK 平滑算法处理拓扑元素退化的能力值得特别关注 (图 1 1 ) 。
支持平滑重叠的复杂拓扑,这显着提高了实际使用中算法的质量 (图 12) 。
在构造变量平滑方面取得了有趣的结果。特别是,通过重新计算重叠区域中的半径 变化规律来支持重叠平滑序列的处理 (图 13) 。
当然,RGK 算法支持可变半径的各个部分 (图 14) 。
此外,还开发了构建 n 边形区域的平滑“拉动”的数学方法 (图 19) 。
这些发展尤其使得解决构造具有顶部凹痕 (缩进) 的表面的问题成为可能 - 图 20和 21。
平滑算法适用于实体和曲面体 - 在 RGK 中,这些拓扑之间没有差异 (图 22) 。
在 RGK 核心中,边缘平滑功能实际上是通过与边缘平滑相同的算法来实现的——唯一的区别在于顶层接口,但是解决了边缘平滑的经典问题 (图 23-25) 。
由于 RGK 内核最初是为了与世界上最好的工业内核竞争而开发的,因此在内核工具中添加了重型应用系统所需的各种功能, 以解决各种特殊问题。例如,构建面的斜率的任务最初被制定为指示任意几何形状的固定边缘以及在操作期间改变主体拓扑 的可能性的任务 (图 26) 。
当然,也支持相对于分型面的斜率,作为更一般设置的特殊情况 (图 27) 。
另一个例子:在布尔运算中,除了传统的“全局”运算模式 (并集、减法和交集) 之外,还有局部运算模式,应用程序可以指定哪些面执行选择性布尔运算,并能够选 择原始实体中将保留的部分作为结果。此外,还提供了广义布尔运算,可以生成表示沿面和边缘彼此接触的物体的拓扑模型。还需要注意的是,布尔运算适用于实体 和曲面体及其组合 (图 28-32) 。
布尔运算工具集支持处理实体实例 (实例) 的功能 - 用于优化实体数组上的布尔运 算的技术,这些实体的几何形状仅在实例在空间中的位置上有所不同。此外,当元 素沿给定面倍增时,还支持“图案化”操作 (图 33) 。
多线程计算在几何核算法中被广泛且积极地使用。该功能从一开始就内置于内核算 法中,因为它是提高最终应用程序整体效率的主要工具之一。同时,RGK 支持计算的内部并行化 (当自动启动并行线程时) 和外部并行化 (当在内核函数之外的应用程序代码中创建并行线程时) 。与现有的几何内核相比,并行计算使得在许多场景 中获得性能的倍数提升成为可能 (图 34、35) 。
在大多数其他计算密集型任务中也观察到类似的行为。特别是检查装配体中物体相 交、计算距离以及用移除的不可见线构建投影的问题 (图 36) 。
RGK 开发套件 (SDK) 现已准备好交给第三方开发者试用。那些希望尝试 RGK 的 人可以联系 “顶级系统”。
除了内核本身的工作之外,相关工作也在 T-FLEX CAD 17 中完成。特别是,现在通 过系统用户界面和使用 Open API 支持 RGK (RGK_XML) 格式作为导入/导出功能 的一部分。此外,还可以使用 T-FLEX CAD Open API 中的新功能来访问 RGK 格式 的模型对象 (实体、曲线) 。系统的这些功能可以让您以最方便的方式获取 RGK 格
式的 CAD 系统的几何对象。最新的 T-FLEX CAD 17 更新支持这些新功能。
核心工作正在高速进行,“顶级系统”公司给自己设定的任务是尽快达到几何建模 领域现有西方世界领先者的水平,并可能超越这一水平。