首页/文章/ 详情

KOMPAS-3D V20 中性格式: C3D 格式(如何加快读取大型 3D 模型的速度)

20天前浏览248

许多专家每天都在计算机辅助设计系统中使用 3D 建模的功能,但并不是每个设计师或设计师都会考虑在熟悉的界面命令屏幕背后隐藏着什么,这些命令为 3D 产品设计提供了如此宝贵的舒适性和便利性。通常,使用 CAD 的整体体验受处理大型装配体时的速度以及将 3D 模型加载到系统中的速度的影响。在工程界,几何内核负责这部分功能是完全正确的,并非没有道理。C3D Labs 是 ASCON 集团的子公司,也是 Skolkovo IT 集群的驻地,自 2012 年以来一直在开发商业核心 C3D Modeler。



大多数 CAD 系统用户在处理大型复杂 3D 模型时都面临同样的问题 - 几何模型需要很长时间才能加载到系统中,因此您不可避免地需要等待一段时间才能继续进行产品设计。除此之外,每天早上在工作日开始之前需要重复该过程,现在我们得到了一个小而烦人的刺 激,随之而来的是软件应用程序用户的不满。

在这种情况下,计算机辅助设计系统的开发人员努力以各种可能的方式改进负载指标。特别是,机械制造 CAD KOMPAS-3D 提供了多种从文件加载信息的选项:具有构造历史的模型、面模型和尺寸框。用户选择他需要的东西,从而在应用程序级别解决问题。

另一方面,JT 格式的开发人员在文件架构级别提供了一次传输两种几何表示的能力:边界和多边形。这允许您在 3D 模型的初始加载时将其分面表示加载到应用程序中(可以立即传输以进行渲染),并在必要时并行加载更重的边界表示,大多数用户在其上进行操作CAD 进行。考虑到 JT 是一种开放格式,因此,它不仅可以应用于设计系统,还可以应用于各种 3D 模型查看器或更复杂的程序以处理元数据。

从前两个示例中可以看出,文件优化是最终应用程序级别以及较低级别的一项必需任务。因此,在 C3D Labs,我们在使用 C3D 格式时处理了提高性能的问题,这是 C3D Modeler 几何核心的原生格式。因此,开发并实现了一种用于存储几何模型的扩展格式,它支持以任意顺序从文件中读取单个模型对象,并允许获取有关模型及其对象的结构的信息,而无需从文件中加载整个模型。文件。

让我们更详细地考虑使用 C3D 格式。

1.标准 C3D 格式

使用标准 C3D 数据格式时,模型对象会按顺序写入一组文件空间集群(图 1),该集群具有单个记录点。当一个几何对象引用另一个对象时,内部对象被写入引用它的对象内部。在这种情况下,被其他几个对象引用的模型对象被写入第一个引用对象内,并在“注册对象”表中注册。引用此对象的所有后续对象都必须包含表中的索引。



图 2. 以传统 C3D 格式存储几何模型对象

这种经典方法的优点是编写和读取模型时的开销最小、文件紧凑、软件实现简单以及 API 的可用性。同时,这种处理数据的工作组织对 C3D 格式的使用施加了限制:

  • 只有在阅读整个模型后,才能获得有关模型结构或其单个对象的信息。

  • 以任意顺序加载模型对象和导入单个对象是不可能的,因为: a) 在 C3D 文件中没有关于对象存储位置的信息;b) 一个对象可以嵌套在另一个对象中,或者引用一个存储位置未知的对象。

为了摆脱这些限制,开发了扩展的 C3D 格式。



2.扩展的 C3D 格式

C3D 格式更新要求 C3D 实验室团队详细说明新结构的主要要求。在某种程度上,它们已经在较早的时候制定了——这是提供对象的独立存储和选择性读取它们的能力,以及提供对几何模型对象信息的访问,而无需从文件中读取整个模型。在附加要求中,值得注意的是新接口的创建(用于读取和写入模型、读取单个模型对象等),并且重要的是支持与当前 C3D 格式的兼容性。

已经在实施阶段,有必要决定在哪里写下对象的特征、它们的存储位置和有关构建层次结构的信息。因此,开发了一种用于在模型文件中创建和存储目录的机制。几何模型对象的独立存储提供如下:

  • 只有那些对象被写入该对象专门使用的对象内。在这种情况下,模型的每一层的对象都记录在一个单独的文件空间中,在文件记录过程中,您可以在不同的记录点之间切换(图2)。

  • 它在文件中的存储位置用作对象的引用。



以扩展的 C3D 格式存储几何模型对象

我们最终会得到什么?将模型及其目录写入文件时,实现了几何模型的一次性处理。在这种情况下,几何模型的对象树(模型的目录)是为 Items 类型的几何模型的所有对象创建的,并以节点的平面列表的形式写入文件,其中树的每个节点存储特定对象的数据:

  • 对象类型,

  • 对象名称,

  • 对象的大小和本地坐标系(如果有),

  • 文件中写入/读取对象的位置(簇索引和其中的偏移量),

  • 节点的直接后代列表,

  • 对象的属性信息。

3.CAD 应用程序

使用扩展的 C3D 格式时,在加载模型时,您可以确定需要读取哪些特定对象(按名称、类型、大小或属性)并在屏幕上显示(图 3)。开发的数据读取接口支持扩展和标准C3D格式,确保与早期版本的文件兼容。在 CAD 用户需要从文件中部分读取信息而不是整体加载整个模型的情况下,使用此功能将减少数据加载时间。



扩展 C3D 格式的更新结构还将允许优化用于以 C3D 格式读取和写入多核架构数据的算法。


4.3D PDF 和 eDrawings 有什么问题。我们如何替换应用程序中的 3D 模型查看器



任何值得一提的 PLM 解决方案都包括 PDM(产品数据管理)机制/子系统。

PDM 系统数据库存储在各种 CAD 系统中创建的文档和文件:3D 模型、图纸、规格和计算。

为了让那些没有在工作场所安装相应 CAD 应用程序的用户可以使用这些文档的内容(而且它们可能非常昂贵),PDM 系统生成了“文档的二次演示”——一个副本以“中性”公共格式显示的文档。

在“次视图”加载到系统后,您可以在此基础上直接在 PDM 系统的客户端界面中构建文档内容的预览;在与外部用户交换信息、审批流程以及使用注释和注释交换注释时用作媒介。

在不同时期,VRML、eDrawings、3D PDF 在 LOTSMAN:PLM 中充当 3D 模型的“辅助表示”。

我不会谈论 VRML - 我年轻时的错误......它不会发生在任何人身上。

eDrawings 还不错,但开发适配器和支持服务的价格非常适中。此外,从 2014 年开始,eDrawings 仅在 x64 版本中可用。尽管我们有此愿望,但我们无法再将其作为 ActiveX 构建到我们的 32 位客户端 LOTSMAN:PLM 中。

起初,3D PDF 似乎是一种免费的礼物,已经安装在每台第一台计算机上,这是我们银河系袖子中的事实上的标准,还有一个现成的适合嵌入的 ActiveX 库,但随着时间的推移,它的阴暗面开始显现向我们敞开心扉:

  1. 我们有权在我们的发行版中分发 Acrobat Reader。事实证明,并非每台第一台计算机上都安装了 Acrobat Reader。有时安装了不兼容的 Acrobat Reader 版本,有时 - 一个完全不同的 PDF 查看器,与 Acrobat Reader 不兼容,同时,对用户来说非常珍贵。

  2. Acrobat Reader 开发的载体是不可预测的。每个版本都充满惊喜,并增加了我们的工具库,旨在自动关闭不必要的消息窗口、最小化烦人的面板并设置模糊记录的选项。

  3. Acrobat Reader 更新的发布是突然且不可避免的。我们从用户报告中了解到“辅助视图”已停止为我们工作。

  4. 来自开发人员的反馈可能是可能的,但是,正如对悲伤论坛的定期审查所显示的那样,这是徒劳的。

  5. 有时使用 ActiveX Acrobat Reader 会导致您的应用程序崩溃。我们最终在 Acrobat Reader 中使用了安全模式。在这种模式下,只有隐藏的 Acrobat Reader 子进程会定期崩溃,而我们的应用程序会继续运行。

  6. ActiveX Acrobat Reader 仅在 32 位版本中可用,没有选项。

而最重要的是在处理大型模型(装配体)时表现不尽如人意:

  • 从 KOMPAS-3D 到 3D PDF 的导出速度较慢。
    也许部分责任在于 KOMPAS-3D,但它是什么 - 就是这样。

  • 大型 3D PDF 文件大小,这会增加文件系统和网络的负载并需要更多 RAM。
    从模型输出精度与文件大小的比率的角度寻找最佳设置并没有给出可接受的结果。

  • 大型 3D PDF 模型的加载速度缓慢。

  • 大文件的渲染速度/质量较差。

C3D 查看器

我们一直感兴趣地关注 C3D Labs(毕竟是 ASCON 的子公司,同事)的成功和创新。新 C3D 查看器的到来并没有引起人们的注意。在获得该产品的早期测试版之后,我们对功能和性能进行了比较研究。

该研究的结果激励我们启动一个项目,该项目将导致将 C3D 查看器组件嵌入为查看器和注释工具,用于 LOTSMAN:PLM 中 3D 模型的二次表示。
  • 保存为 C3D 格式的速度比 PDF 快 - 快 6 到 18 倍!
    没有发现与模型大小和组件数量的相关性。

  • C3D 文件比 PDF 小 - 2 到 39 倍!

  • C3D 文件的下载速 度比 PDF 的下载速 度快 - 6x 到 264x。
    没有发现与模型大小和组件数量的相关性。

  • 在 C3D Viewer 中旋转时的显示质量和平滑度明显优于 Adobe Reader。
    由于某些未知原因,并非总是可以在 Adobe Reader 中测量 FPS。在计量尝试成功的情况下,FPS 不超过“5”。C3D 查看器在不同模型上以 30-100 ++ FPS 的速度“旋转”。

对项目的兴趣是相互的,这对与开发人员的交互质量和解决各种问题的速度产生了最好的影响。
应我们的要求,C3D Labs 团队开发了一种用于注释 3D 模型的功能,提供俄语本地化。

C3D 查看器 API 的许多改进是由于在我们的应用程序中使用该组件的细节。因此,API 中出现了新的方法和事件,这使得可以实现自己的机制来指示模型加载的进度和紧急中断/取消加载。

既然我提到了 eDrawings 的高成本,公平地说,我必须说 C3D Viewer 对我们来说也不是免费的,但它的使用条件要民主得多。



来源:山涧果子
ACTPLM渲染装配
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-01-15
最近编辑:20天前
山涧果子
大专 签名征集中
获赞 204粉丝 52文章 1069课程 0
点赞
收藏
作者推荐

国产工业软件之管窥—读“陈立平:关于中国工业软件技术创新与应用发展的思考”

读“陈立平:关于中国工业软件技术创新与应用发展的思考”在此遥祝农神袁隆平老爷爷,五谷玉金,拜祝农神:后稷袁老,农业之神。解民饿羸,功德永存。佑我中华,岁星长生。小民开业,祈请玉成。1.工业软件究竟是什么?有人说,工业软件是产品。有人说,工业软件是工具。有人说,工业软件是载体。等等这些并不能完全解释我心中的答案。后来,某一天,站在水田边,看着无人机撒着农药。波光鳞鳞的水光,反射到我的视野里。我才恍然大悟。由于语言表达不够练达,我就啰嗦一下,描述这个认知。我们都知道,农民种植各种农作物,必然进行深耕,细作,撒种,浇水,施肥,除虫,除草,直至收获,储藏,如此往复。但是我们忽略了一个重要的客观条件,那就是阳光雨水。很多不识农稼,总以为农业就像工业,必须朝九晚五,准时上班。不完全是,不仅仅是。农稼活,要早起打农药,趁阳光未炽,打下农药,能够使农药的作用更好一些。该施肥时必须施肥,不该施肥的时候坚决不能施肥。要看准时机,要跟着农稼的习性走。除此之外,就是等待。回过头来,再说“阳光雨水”的事。没有阳光雨水,农稼就不能光合作用,就不会发芽,也会停止生长。农稼,是个看天吃饭,抢天时,抢地利,抢人和的辛苦活计。而工业软件更像工业的“阳光雨水”,能够在人力之外,如同阳光雨水,促进工业的发展,填补人力机械之外的“天时”。如同四季和日夜,陪伴着工业互相成长。单纯地把工业软件看作某种局部概念,无疑是狭隘的。2.工业软件能做什么?可能有人会说,CAD/ CAM /CAE /EDA /PLM/ERP/MES/MRO等等。这可能是专业性回答。但是专业性本身就代表局限性。用一个不恰当的比喻,专科医院和综合医院,不见得谁更怎么一些。因为“预判”有两个极端,否定“某个假设”,确定“某个假设”。预判不是没有前提!这个前提是我们看见的,还是我们“只能看到的”?就单独来说,从使用者的角度,工业软件是工具。这句话正确,但不完整。工业软件是工具体系。工业软件是使用工具的工具。CAD软件,是实现设计的工具体(系)。CAM软件是使用CAM机床和刀具的工具体(系)。工具和工具体的同异,就在概念和实际应用。工具在概念上包含了工具体。在实际应用中,工具体包含了工具和体系。不仅仅是软件开发者的野心,更取决于开发者的视野格局。国内,翻译国外相关资料时,要注意工具和工具体(系)很多时候,是混淆的。不仅仅停留在and /OR.另外,我们由于缺乏原创性的概念体系。我们总是把工具体和目标体分开。这种思维看似没有多大区别,事实上在CAD/CAM等软件开发过程时,会出现知见障,知见障还是可取的,就怕形成“这个和那个”的分别心。它们是一个整体,我们把它们分开,又算个什么事?氢和氧原子可以分开吗?分开了,没有氧,我们怎么认识氢。没有氢,我们怎么认识氧?知见障和分别心会逐渐泯灭研究过程中的客观性。中国传统文化里的“创造”是个极其广袤的概念。盘 古开天地,是创。女娲造人是创。仓颉造字是创。十二时辰十二生肖也是创。创新是个比发明更大的范畴。但是在我们了解西方的语境之后,才发现一个事实。创造发明,过于拔高科学的高度。科学的本质是发现,而非发明。我们仅仅是在语言和物质重复复 制解构这个世界的某种发现,而已。这一点就弥足珍贵了。好高骛远也罢,仰望星空也罢,笃定求实,发现也是一件很快乐的过程。所以,我今天,也慢慢顺着这个逻辑,得出一个结论。工业软件就是工具体系。以前或许不是,现在将来必然是,也必须是。3.工业软件有哪些?在我的角度里,所有的软件,小到一个加减乘除的计算器,大到电力控制系统,宇宙飞船的超级计算机,再到我们日常使用的QQ/播放器,都是工业软件,当然也包括中文输入法。这些统统都是工业软件。包括微软系统,机床控制器。在这里,不得不提这两位前辈先驱。王选,汉字激光照排之父;王永民,王码五笔输入法之父。一个搞的是输出,一个搞的是输入。王选1937年出生,王永民1943年出生,两人可说是同时代的人。不过王选在2006年因病早逝。王选院士,他最大的贡献,就是在计算机个人PC开始风靡全世界的重要节点上,创造了汉码。捍卫了中华文化在世界文化里的不可侮辱的地位。作为80后,我对这件事深有感触。自己的性格本来就桀骜不驯,从不认为什么绝对性不可能。当时,在90年代,计算机以国家军事领域为主,所以地位超然。而且计算机相关都是英文。所以国际上和国内,绝大多数人认为中文汉字与计算机是“绝缘体”。作为紧跟时事的小伙伴,为了这个理念之争,那是没少打架,衣服都扯破好几身。有的小伙伴,是教而学型,别人教什么,我们就学什么。而我。则不然,我想学和你想教既不绝对也不必然。当时国内舆论界大肆宣扬“欧美创造了计算机”“XX创造了系统”。我承认差距,但是嗤之以鼻“创造”这两个字眼。在我心目中,创造无异于盘 古开天女娲造人伏羲演卦。发明就是发明,发现就是发现。没办法,嘴上解决不了问题,只能手上解决。当时正值农忙,有的是条件,最后带着一身草壳回家,竹笋炒肉那是家常便饭,不值一提。从这件事,反衬出“王选王王永民”的时代精神。当然了,这些跟“精日精美”者没半分关系。王永民教授的贡献,不亚于王选院士。很多东西普及了,进入千家万户,才会爆发出不竭的生命力。王选院士的发明,或许距离普通人很远。但是,王码一出,就让当时国内那些唱衰中国的那些人,闭上了臭嘴。也符合当时国内的时代精神“实干兴邦,实业报国”。借用毛主席的话就是“国际上争了面子,站直了腰板。国内团结了群众,增强了凝聚力”。有些人会说,输入法有什么难的。就那么简单。我只能笑笑。我只知道,如果让美国人开发中文输入法,这个难度非常高。我只知道,在英语系统上开发中文输入法,这个难度超过前者。我再假设,如果站在王选院士和王永民教授的角度,可能更愿意开发国产系统的意愿多一些。4.工业软件和硬件的关系说句实话我也不太清楚。这需要专业领域的专家来解答这个疑问。如果真的要窥视猜测,倒不如用这个网友的文章来稍稍打个擦边球。从这两段,我们可以知道两个重要信息。第一,我们知道牙膏厂为什么挤牙膏。第二,我们知道了,在一个系统平台上,到底谁说了算。如果一家工业软件,源代码是国外的,内核是国外的,数据库是国外的,封装工具是国外的,这款软件,就是国外的技术。毫无疑问。高科技公司如果不能短期内消化外来技术,核心技术是从哪来的,公司就是谁的。我实在想象不出来,一个人,到处撒钱的情景,是多么疯狂。他们以为,源代码是自己的就行了!错了!根技术是自己的才行。。求解器+内核再+架构,就是根技术。概念分散,不代表实际分散。位置的错对,造成现在这种窘境。践踏两条船的事还是不好做。因为践踏两条船,本身就会给人一种错觉。固步自封也能生存的错觉错觉会造成错误,也会扼杀创造力。所以,尽量与国内友商合作。这是客观现状。很多软件必须针对硬件优化,并不是所谓的换平台就行了。这里面的技术门槛并不低。甚至相当于工业软件0-1的水平。谁抓住核心,谁就是不败之地。5.为什么UG会卖给西门子这也是我长期以来的疑问。但是我从一句话得到某种启示。美国善于制订标准。标准是标准,是门槛,是渠道,是自来水管。UG基于PARASOLID内核开发,即使收购了很多软件模块,依然不影响整个美国软件体系的战略发展。哪怕UG就是补丁怪,依然不能掩盖其商业价值和资本特性。因为美国促使欧美形成一个标准,这个标准准入准出。标准,就是一张密密麻麻密的大网,任何变化都会有所反馈。更何况,美国本就是先发制人。UG卖给西门子又如何,又能如何?用一套时刻变化的标准,换来西门子整个体系的开放,谁赚得更多,又有谁看的清?6.国产工业软件,如何发展?摸着鹰酱过河,说明我们落水已久。渐渐我们会抵达第一个岸边。这时候,为了竞争优势,不让我们上岸修整是可以预见到的。上了岸,做好痕迹的清理工作。做好下一个水情的勘探准备。为下一个目标做好提前量。免得出现多米诺骨牌效应,前面摔倒了,后面都趴下。都是一根绳上的蚂蚱。别想着跳线。不值得,也不必要,也于事无补。猪养肥了,是要杀的。吃下别人的香饵,就得知道什么时刻脱钩。咬钩并不是最危险的时刻,离开水面,才是最危险的。因为离开水面,等着我们的只有十香软筋散,烈火烹油。如果水下已经没有什么鱼群了,钓手们,只会把一只只长不大么得畸形鱼,摔死在岸边。然后重新买来一盆鱼苗,重新撒下水面。所以,要想成为钓手,首先要先做人。鱼永远成不了钓手,这是事实!先学做人吧!再学做事!别想着做鱼!当钓手多到一定程度,这个鱼塘也就空了!也别想着从其他鱼塘买鱼过来,家养的鱼,跟野生的鱼,不是一个档次。从水里钓起来的往往是鱼虾蟹鳖。只有站在岸边,才有机会!就怕,有人拎着电网,呲溜一声,全部翻了肚皮。悲哀的鱼生!如果,没钱买鱼苗,那就放开水道,从大江大河里导入新鲜水源,新鲜的水源,必然会带来新鲜的鱼苗和水货。国人有句老话,浅水里住不得真龙。一眼到底的水池,怎么可能住得真龙。这么浅显的道理,都不懂。还传什么道,取什么真经!目前国产工业软件仅仅对欧美软件进行一个对标,于是,买办拿来一套国外软件中国区特 供版,做完相关测试,中国软件达到国际同类产品优秀水平。事后,外国人说,中国软件企业技术基础并不差。OEM软件企业赶快举手,我们也能做到。买办就是想扼杀最原始的创造力。这个基础失去了,任何基于租借的上层建筑才能稳固。实现大树底下寸草不生的环境。这就是陷阱,这就是麻痹。所以,面对国际软件硬件的围剿,中国的软件必须坚持独立自主。妄图借助对手的打盹,放水,这是不切。我就怕,国外软件和国外电脑系统硬件,搞出一个圈套,降维打击。让我们认为这个是参照物。实际上,这个根本不是。这就是质子。就像三体里的质子。误导你,诱导你,让你从正确的路径上,走到他们需要的那个路径上。脱离欧美体系的掌控,自主能力更强一些,主动性更多一些。把战略性的概念,降维成战术性的操作。这才是降维打击。一句话,打破常规,打破权威,打破垄断。你用你的我用我的,你打你的,我打我的。你没打赢,我也没输。我们国产软件,要从技术体系层面上打破欧美体系的垄断。全民皆兵,添兵减灶。谁说,欧美的软件概念就是圭臬?现在硬件这么强大,为什么不把某些残余计算能力挖掘出来?行成自己的实力。我相信,这个理念,目前的困难程度,并不高。完全有实现的可能性。一旦实现,我们国产软件就真的掌握主动权了。把软件体系从单向向上流动,变为上下对流。这样会更科学一些。也能重新定义软件开发领域的僵化问题。这样也能促进数学和软件之间的联系。让数学应用从理论上走向纸面上,从体系高度走向应用广度。也算为数学领域的人才打开一个实现自我价值的通道。我相信这个社会意义远大于欧美那种精英教育的局限。数学将来必须处处为社会服务。不能总是培养一两个数学家,那么剩下的那些数学偏才怪才奇才的流失,和默默死去,实在是太可惜了。计算机体系是个很大很广的世界。这个世界里,不能只有一些码农在里面耕耘。应该引进大量的数学物理化学社科等等各种人才。数学走下神坛,步入民间。说不定就是数学得以突破的重要基石。一直依靠社会来筛选,恐怕人类永远飞不出地球。学术理论不能高居象牙塔,应该融入这个世界。这样就能提高软件开发的质量。只有软件体积和数量,这样的软件体系是畸形的,残缺的,不完整的。将来,社会必然走向全民教育。怎么实现全民教育?用一层层砖头瓦块建设起一堵堵高墙?今天建设高墙有多累,明天砸开这些屏障就有多辛苦!与其层层设防不如层层放开。把人才关进笼子里不如把人才放到他们需要的环境中去。我相信,软件是个很好的平台和世界。将来的软件未必不能从小学生开始,不停地完善补充这个软件,说不定就能实现一个真正的数学软件。而不是现如今这种必须由软件工程师来完成。看似合理,其实从人类整个发展逻辑来看,就是一个bug。30年前,坚持独立自主的,今天依然独立自主。30年前开始代理国外软件的,今天依然在代理oem软件。30年前,在学术圈耕耘的,为国家软件发展培养人才的,今天依然还在做着同样的事情。30年前,以一己之力,撑起软件半壁江山的,今天依然在砥砺死撑。......所以说,我们坚持住了,坚持了30年,往后依然还会坚持下去!不妨再坚持30年!来源:山涧果子

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈