CN103093496B - 一种三维图形仿真方法及系统 - Google Patents

一种三维图形仿真方法及系统 Download PDF

Info

Publication number
CN103093496B
CN103093496B CN201210591691.8A CN201210591691A CN103093496B CN 103093496 B CN103093496 B CN 103093496B CN 201210591691 A CN201210591691 A CN 201210591691A CN 103093496 B CN103093496 B CN 103093496B
Authority
CN
China
Prior art keywords
parts
vector
file
tri patch
axles
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210591691.8A
Other languages
English (en)
Other versions
CN103093496A (zh
Inventor
张丽娜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING PEITIAN TECHNOLOGY Co Ltd
Original Assignee
BEIJING PEITIAN TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING PEITIAN TECHNOLOGY Co Ltd filed Critical BEIJING PEITIAN TECHNOLOGY Co Ltd
Priority to CN201210591691.8A priority Critical patent/CN103093496B/zh
Publication of CN103093496A publication Critical patent/CN103093496A/zh
Application granted granted Critical
Publication of CN103093496B publication Critical patent/CN103093496B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

本发明公开了一种三维图形仿真方法及系统。其中,三维图形仿真方法包括:获取部件的三角面片数据;利用部件的三角面片数据为部件构建独立的显示表;获取部件运动的三维转动向量,将部件运动的三维转动向量与独立的显示表组装得到仿真结果。通过上述方式,本发明能够分别为各个部件创建相对独立的显示表,在仿真软件中,通过调用不同的显示表,并结合部件的三维转动向量,组装成最终的实体三维模型,从而再现实体各个部件的相对运动状况和仿真结果。

Description

一种三维图形仿真方法及系统
技术领域
本发明涉及一种三维图形仿真方法及系统。
背景技术
三维图形仿真是指建立一个精确且逼真的实体模型以及实体的工作环境。
一般情况下,三维图形仿真通过读取实体的立体光造文件,并通过专业的图形程序接口(OpenGL)重新构造几何模型,将实体的所有的单个几何模型封装到一个显示表,将显示表导入仿真软件中实现仿真。
这种方式只能针对各个部件之间没有运动的实体,例如整体模型的构建与观察。但是如果实体各个部件之间有运动,该方法就没法实现仿真。
发明内容
本发明主要解决的技术问题是提供一种三维图形仿真方法及系统,能够对实体各个部件之间有运动的情况实现仿真,从而再现实体各个部件的相对运动状况和仿真结果。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种三维图形仿真方法,包括:获取部件的三角面片数据;利用所述部件的三角面片数据为所述部件构建独立的显示表;获取所述部件运动的三维转动向量,将所述部件运动的三维转动向量与所述独立的显示表组装得到仿真结果。
其中,所述获取部件的三角面片数据的步骤包括:读取机器人的立体光造文件以获取部件的三角面片数据。
其中,所述读取机器人的立体光造文件以获取部件的三角面片数据的步骤之前,还包括:根据机器人各个部件的运动状态,将所述机器人的立体光造文件划分为五轴和向量六个部件的立体光造文件;所述读取机器人的立体光造文件以获取部件的三角面片数据的步骤包括:读取所述五轴和向量六个部件的立体光造文件,以获取所述机器人的所述五轴和向量六个部件的三角面片数据。
其中,所述利用所述部件的三角面片数据为所述部件构建显示表的步骤包括:从所述机器人的所述五轴和向量六个部件的三角面片数据中获取所述五轴和向量六个部件的中心点信息,利用所述五轴和向量六个部件的中心点信息分别构建所述五轴和向量六个部件的三维模型,将所述五轴和向量六个部件的三维模型分别封装得到所述五轴和向量六个部件的独立的显示表。
其中,所述获取所述部件运动的三维转动向量,将所述部件运动的三维转动向量与所述独立的显示表组装得到仿真结果的步骤包括:
获取所述机器人的所述五轴和向量六个部件运动的三维转动向量,为所述五轴和向量六个部件运动的三维转动向量分别设置旋转矩阵,将所述五轴和向量六个部件的所述旋转矩阵与所述五轴和向量六个部件的独立的显示表对应组装得到仿真结果。
其中,所述读取机器人的立体光造文件以获取部件的三角面片数据的步骤包括:获取机器人的立体光造文件,判断所述立体光造文件的格式为文本格式还是二进制格式;若所述立体光造文件的格式为文本格式,打开所述立体光造文件读取文件头标识,并读取一个部件的三角面片数据转化为数值后存入三角链表;判断所有部件的立体光造文件是否读取完;若所有部件的立体光造文件已经读取完,则结束读取所述机器人的立体光造文件,否则,返回继续读取直到读取完所有部件的立体光造文件;若所述立体光造文件的格式为二进制格式,打开所述立体光造文件读取文件头以获取三角面片数据的总数量,读取一个部件的三角面片数据存入三角链表;判断读取的所述三角面片数据的数量是否与所述三角面片数据的总数量相同;若相同,则结束读取所述机器人的立体光造文件,若不同,返回继续读取直到读取的所述三角面片数据的数量与所述三角面片数据的总数量相同。
为解决上述技术问题,本发明采用的另一个技术方案是:提供一种三维图形仿真系统,包括获取模块、构建模块以及仿真模块,其中:所述获取模块用于获取部件的三角面片数据,并将所述部件的三角面片数据发送给所述构建模块;所述构建模块用于利用所述部件的三角面片数据为所述部件构建独立的显示表,并将所述独立的显示表发送给所述仿真模块;所述仿真模块用于获取所述部件运动的三维转动向量,将所述部件运动的三维转动向量与所述独立的显示表组装得到仿真结果。
其中,所述获取模块具体用于读取机器人的立体光造文件以获取部件的三角面片数据,并将所述部件的三角面片数据发送给所述构建模块。
其中,所述系统还包括划分模块,用于根据机器人各个部件的运动状态,将所述机器人的立体光造文件划分为五轴和向量六个部件的立体光造文件;所述获取模块具体用于读取所述五轴和向量六个部件的立体光造文件,以获取所述机器人的所述五轴和向量六个部件的三角面片数据,并将所述五轴和向量六个部件的三角面片数据发送给所述构建模块。
其中,所述构建模块具体用于从所述机器人的所述五轴和向量六个部件的三角面片数据中获取所述五轴和向量六个部件的中心点信息,利用所述五轴和向量六个部件的中心点信息分别构建所述五轴和向量六个部件的三维模型,将所述五轴和向量六个部件的三维模型分别封装得到所述五轴和向量六个部件的独立的显示表,并将所述五轴和向量六个部件的独立的显示表发送给所述仿真模块。
其中,所述仿真模块具体用于获取所述机器人的所述五轴和向量六个部件运动的三维转动向量,为所述五轴和向量六个部件运动的三维转动向量分别设置旋转矩阵,将所述五轴和向量六个部件的所述旋转矩阵与所述五轴和向量六个部件的独立的显示表对应组装得到仿真结果。
本发明的有益效果是:区别于现有技术的情况,本发明通过获取实体的部件的三角面片数据,针对部件的三角面片数据为部件构建显示表,并获取部件运动的三维转动向量,将部件运动的三维转动向量与显示表组装得到仿真结果。通过这种方式,能够分别为各个部件创建相对独立的显示表,而不是现有技术中而不是将所有部件的三维模型全部封装到一个显示表中。这样如果某个部件的模型的属性发生变化,只需要对该模型本身重新创建显示表,而不需要对其他部件的模型重新创建显示表,极大减轻建模的负担,简化每次运动状态改变更新仿真结果时的工作量。在仿真软件中,通过调用不同的显示表,并结合部件的三维转动向量,组装成最终的实体三维模型,从而再现实体各个部件的相对运动状况和仿真结果。
附图说明
图1是本发明三维图形仿真方法一个实施方式的流程图;
图2是本发明三维图形仿真方法一个实施方式中读取STL文件的流程图;
图3是本发明三维图形仿真方法一个实施方式中机器人结构示意图;
图4是本发明三维图形仿真方法一个实施方式中模型设计类图;
图5是本发明三维图形仿真方法一个实施方式中用部件的三角面片数据为部件构建独立的显示表的流程图;
图6是本发明三维图形仿真方法一个实施方式中的仿真结果示意图;
图7是本发明三维图形仿真系统一个实施方式的原理框图。
具体实施方式
请参阅图1,本发明三维图形仿真方法一个实施方式包括:
步骤S101:获取部件的三角面片数据;
本实施方式中的部件是指实体的各个组成要件,比如机器人的各个转动轴和连接法兰等等,因此本实施方式中的部件可以包括实体运动的部件和不运动的部件。
通常情况下,通过读取实体的立体光造文件(STL文件)来获取实体的各个部件的三角面片数据。读取STL文件实际就是读取三角面片的信息,而每个三角面片包括有一个法向矢量和三角形三个顶点的信息。
STL文件是描述三维几何形状的标准格式之一,它采用一系列离散的三角片来描述三维曲面形状。大多数CAD(计算机辅助设计)系统都能够将几何模型的数据以ASCII或二进制形式输出STL文件。这里我们使用由Solidworks(基于windows开发的三维机械设计软件)输出的ASCII(用于信息交换的美国标准代码)形式的STL文件。在STL文件中的三角面片信息单元(facet)是一个带矢量方向的三角面片,STL模型就是由一组这样的三角面片构成。如下面的STL文件所示,在一个STL文件中,每一个facet由七行构成,第1行是三角面片指向实体外部的法向矢量数据,第2行说明随后的第3,4,5行数据分别是三角面片的三个顶点的信息,沿指向实体外部的法向矢量(第1行数据)方向的逆时针排列。
solidascii//文件路径及文件名
facetnormal-1.0000000.0000000.000000//三角面片法向量的三个分量值outerloop
vertex0.000000111.78778171.488785//三角面片第一个顶点坐标
vertex0.000000105.80000379.994896//三角面片第二个顶点坐标
vertex0.000000113.68500576.210213//三角面片第三个顶点坐标endloop
endfacet//完成一个三角面片定义
endsolid//stl文件结束
本发明实施方式以机器人三维图形仿真为例来进行说明。通过读取机器人的STL文件来获取机器人各个部件的三角面片数据。
其中,读取STL文件的具体步骤可参见图2,包括以下步骤:
步骤S201:获取机器人的STL文件;
步骤S202:判断STL文件的格式为文本格式还是二进制格式;
判断机器人的STL文件的格式,若STL文件的格式为文本格式,进入步骤S203,若STL文件的格式为二进制格式,进入步骤S205。
步骤S203:打开STL文件读取文件头标识,并读取一个部件的三角面片数据转化为数值后存入三角链表;
当STL文件的格式为文本格式时,打开STL文件读取文件头标识,并读取一个部件的三角面片数据转化为数值后存入三角链表,进入步骤S204。
步骤S204:判断所有部件的STL文件是否读取完;
判断所有部件的STL文件是否读取完,若已读取完,进入步骤S207,若没有读取完,返回步骤S203继续进行STL文件的读取,如此重复,知道所有部件的STL文件都读取完。
步骤S205:打开STL文件读取文件头以获取三角面片数据的总数量,读取一个部件的三角面片数据存入三角链表;
若机器人的STL文件为二进制格式,则打开文件,读取文件头获得三角面片数据的总数量,并读取一个部件的三角面片数据存入三角链表,进入步骤S206。
步骤S206:判断读取的三角面片数据的数量是否与三角面片数据的总数量相同;
通过判断读取的三角面片数据的数量是否与三角面片数据的总数量相同来判断STL文件是否读取完。当读取的三角面片数据的数量与三角面片数据的总数量相同,则表示STL文件已经读取完,进入步骤S207。否则,返回步骤S205继续进行STL文件的读取,直到STL文件都读取完。
步骤S207:结束读取机器人的STL文件;
当机器人的STL文件都读取完时,结束STL文件的读取。
在实际应用过程中,在读取机器人的STL文件之前,可以根据机器人各个部件的运动状态,将机器人的STL文件划分为五轴和向量六个部件的STL文件,分别读取这六个部分的STL文件获得机器人的五轴和向量六个部分的三角面片数据。
其中,本发明的一个实施方式中,机器人的结构示意图可以按照如图3所示,划分为图中AB、BC、DE、EF、FG五个轴以及向量G。
步骤S102:利用部件的三角面片数据为部件构建独立的显示表;
利用部件的三角面片数据,可以通过OpenGL来为部件建立几何模型,从而将几何模型封装得到部件的独立的显示表。
OpenGL是一种图形与硬件的接口,包括了100多个图形函数,可以用这些函数来建立三维模型和进行三维实时交互。OpenGL提供的基本功能有:模型绘制,模型观察,颜色模式的设定,光照应用,图像效果增强,位图和图像处理,纹理映射,实时动画和交互技术等。OpenGL基本库提供了大量的绘制各种类型图元的方法,如点,线,多边形等,有了这些图元就可以建立比较复杂的模型,因此OpenGL比较适合在可视化技术、动画技术和虚拟现实等领域的应用。
但OpenGL仅提供了十几个生成三维实体模型的辅助函数,简单的模型如长方体,圆柱,球等可以通过这些函数绘制,如果仅通过这些简单的图元来构造复杂的图形将是一件很费时费力的事情。
现在主流的CAD/CAE系统,如UG、Pro/ENGINEER、CATIA和SolidWorks等,均可输出质量较高的STL格式文件。CAE(ComputerAidedEngineering),用计算机辅助求解复杂工程和产品结构强度、刚度、屈曲稳定性、动力响应、热传导、三维多体接触、弹塑性等力学性能的分析计算以及结构性能的优化设计等问题的一种近似数值分析方法。这就是说,可借助任何商品化的CAD/CAE系统生成所需制品的三维几何模型的STL格式文件,然后在3D仿真设计中通过读取STL文件中的三维几何模型的数据,再利用OpenGL建立模型。这样可以大大减轻建模的负担。
OpenGL是一套API(应用程序编程接口),借助这个API我们开发人员就可以开发出对图形硬件具有访问能力的程序。可以使用OpenGL开发出运行效率较高的图形程序或游戏,因为OpenGL非常接近底层硬件并且OpenGL使得不必去关注图形硬件的细节,而是关注如何根据物体的规格参数及相关属性,借助虚拟照相机和光照生成一幅该物体的图像。OpenGL程序与平台是无关的,所以OpenGLAPI中不包含任何输入函数或窗口函数,原因是因为这两种函数都要依赖于特定的平台,例如Windows,Linux或是其他系统。
OpenGLAPI是过程性的,不是描述性的,即OpenGL不是面向对象的,所以OpenGL无法利用面向对象的特性,例如重载,继承等。但是可以通过使用面向对象的程序与OpenGL的实现进行链接就可以利用面向对象的特性。因此在开发的时候,不需要去描述场景的性质和外观,而是去确定一些操作步骤,因为操作步骤是为实现一定图形或图像所服务的。在实现这些步骤时可以调用OpenGL中的一些命令,可以利用这些命令绘制点、直线、多边形或是其它图形,还可以调用这些命令实现光照、着色,动画等各种效果。
OpenGL的实现可以是软件实现,也可以是硬件实现。软件实现是对OpengGL函数调用时作出的响应并创建二维或三维图像的函数库,那么硬件实现则是通过设置能够绘制图形或图像的图形卡驱动程序。一般来说,硬件实现要比软件实现快得多。一般是由图形设备接口将图形或图像显示在屏幕上或是其他显示设备上的。
OpenGL的实现就软件实现来说会根据程序命令的要求,生成相应的图形或图像,然后会将这个图形或图像移交给图形设备接口,由图形设备接口将图形或是图像显示在我们的屏幕上或是其他显示设备。
OpenGL的硬件实现与软件实现稍微有些不同,硬件实现是将OpenGL的调用传递给硬件驱动程序,而硬件驱动程序不会将生成的图形或图像传递给图形设备接口,而是直接与显示设备通信,直接将图形或图像结果传递给显示器或其他显示设备。
OpenGL在绘制图形时是基于一个被称为流水线模型的模式。也就是说其中的几何图形在程序中通过描述空间位置或顶点来指定其形状并由程序生成,这些顶点在流经一系列模块时,每个模块在图形的基本组成部分(在这里称为图元)经过时对其实施一种或多种操作。模块负责对流经的图元实施一种或多种操作变换,例如:旋转、平移、缩放及对摄像机进行定位等。
在获得部件的三角面片数据之后,主要是通过OpenGL来构建三维几何模型。STL文件一般很大,包含的三角面片数自然庞大,特别是在利用OpenGL生成动画时,如何提高显示效率就显得非常重要。最常用的提高显示效率的方法是利用OpenGL提供的显示表技术。一个显示表就是一组先被存储再被运行的OpenGL命令,当引用显示表时,命令就按发出的顺序执行。
OpenGL的显示表实际上就是命令的一个高速缓冲存储器,而不是一个动态数据库,即一个显示表一旦创建,就不能被修改。显示表可以用任意一个正整数作为显示表的索引,但这样会引起索引值冲突,因此调用glGenLists()函数自动生成一个未创建的索引。然后在glNewList和glEndList()语句对之间包含显示表的内容,这样便生成了一个显示表。
对STL文件的分析知道STL文件保存的是众多三角面片的信息,通过这些三角面片的组合来构造复杂的几何模型。每个三角面片包括有一个法向矢量和三角形三个顶点的信息,构造三角面片类CSTLTriangleFace。
如图4所示,其中,类CSTLModel表示由三角面片组合的单个模型。在模型导入到仿真软件后,模型的位置、姿态和大小都需要根据用户的需要作一些调整。x,y,z;rx,ry,rz;scale这三组成员变量为模型的位置坐标值,旋转角度与放大系数。根据实际情况,汽车模型在读入仿真软件后,通常需要同时在三个方向上放大同样的倍数,否则会引起模型的失真,因此添加了一个成员变量scare来表示放大倍数,即模型在X、Y、Z三个方向上放大系数相同。STL文件只保存了模型三角面片的几何信息,而模型的颜色,光照渲染等信息没有保存到文件中。这可以结合OpenGL的渲染功能重新构造模型,实现的模型通常有线框模式和实体模式。m_color为设置模型的颜色属性。
现有技术中,在CSTLAssemble构造组合模型时,为了优化显示效率,也采用显示表技术将整个组合模型封装到一个显示表中。因为显示表在创建后不能被修改,所以装配件是在所有其拥有的单个模型的状态确定后,再创建显示表,否则只要其某个模型的属性发生改变,其也需要重新创建显示表。CSTLAssemble的成员函数Build()和Draw()分别用来创建和调用显示表。CSTLAssemble是由多个单个模型组合而成,成员函数中添加了增加和删除模型的操作。
而本发明实施方式中,为了保证运动状态正确,从机器人的五轴和向量总共六个部件的三角面片数据中获取五轴和向量六个部件的中心点信息,利用五轴和向量六个部件的中心点信息分别构建五轴和向量六个部件的三维模型,将五轴和向量六个部件的三维模型分别封装得到五轴和向量六个部件的独立的显示表,即六个相互独立的显示表,而不是将机器人所有部件的三维模型全部封装到一个显示表中。这样如果某个部件的模型的属性发生变化,只需要对该模型本身重新创建显示表,而不需要对其他部件的模型重新创建显示表,极大减轻建模的负担,简化每次运动状态改变更新仿真结果时的工作量。
其中,利用部件的三角面片数据为机器人各个部件构建独立的显示表的步骤可参见图5,包括以下步骤:
步骤S301:从配置文件读取STL文件个数;
从配置文件读取机器人的STL文件个数,比如根据机器人部件的运动状态,将机器人的STL文件划分为五轴和向量六个部分的STL文件,则从配置文件读取的STL文件个数为6个。
步骤S302:读取相应STL文件,将三角面片数据存入堆栈容器;
读取每个部件的STL文件,将三角面片数据存入堆栈容器。
步骤S303:将该STL文件内的相应绘图操作封装成显示表;
从STL文件中获取的三角面片数据相应的绘图操作封装成独立的显示表。
步骤S304:判断所有STL文件是否处理完;
判断所有部件的STL文件是否处理完,若都处理完则进行步骤S305,若没处理完返回步骤S302继续进行相应的处理。
步骤S305:结束;
如下是为机器人的其中一个部件创建独立的显示表的代码实现方式:
为机器人的其他部件创建独立的显示表跟上述代码实现方式相似,只要将相应部件的三角面片数据相应替换即可。
步骤S103:获取部件运动的三维转动向量,将部件运动的三维转动向量与独立的显示表组装得到仿真结果;
为机器人的各个部件创建独立的显示表之后,在进行仿真时,只要从机器人控制器中获取实时反馈的机器人各轴运动的三维转动向量,为这些三维转动向量分别设置旋转矩阵,在仿真软件中调用各个独立的显示表,将这些旋转矩阵与机器人各个部件的独立的显示表对应组装得到仿真结果。其中,可以通过glCallList()函数调用显示表。
其中,实现仿真部分的代码如下:
其中,obj_rot存储的是从机器人控制器得到的实时反馈的机器人各轴转动的三维转动向量,dot_point向量内存储的是三维点坐标的结构体,这些结构体为从机器人装配图读出的五轴和法兰(即上述的向量)的运动中心点坐标,即图3中的A,B,C,D,E,F六个点的坐标,其结构体如下:
通过上述方法,实现的仿真结果可以参见图6,其可以清晰的再现机器人的各部件相对运动状况。
请参阅图7,本发明三维图形仿真系统一个实施方式包括获取模块11、构建模块12以及仿真模块13,其中:
获取模块11用于获取部件的三角面片数据,并将部件的三角面片数据发送给构建模块12;
获取模块11具体用于读取机器人的立体光造文件以获取部件的三角面片数据,并将部件的三角面片数据发送给构建模块12。
其中,本发明三维图形仿真系统的另一个实施方式中,还包括划分模块,用于根据机器人各个部件的运动状态,将机器人的立体光造文件划分为五轴和向量六个部件的立体光造文件。
获取模块进一步用于读取五轴和向量六个部件的立体光造文件,以获取机器人的五轴和向量六个部件的三角面片数据,并将五轴和向量六个部件的三角面片数据发送给构建模块12。
构建模块12用于利用部件的三角面片数据为部件构建独立的显示表,并将独立的显示表发送给仿真模块13;
构建模块12具体用于从机器人的五轴和向量六个部件的三角面片数据中获取五轴和向量六个部件的中心点信息,利用五轴和向量六个部件的中心点信息分别构建五轴和向量六个部件的三维模型,将五轴和向量六个部件的三维模型分别封装得到五轴和向量六个部件的独立的显示表,并将五轴和向量六个部件的独立的显示表发送给仿真模块13。
仿真模块13用于获取部件运动的三维转动向量,将部件运动的三维转动向量与独立的显示表组装得到仿真结果。
仿真模块13具体用于获取机器人的五轴和向量六个部件运动的三维转动向量,为五轴和向量六个部件运动的三维转动向量分别设置旋转矩阵,将五轴和向量六个部件的旋转矩阵与五轴和向量六个部件的独立的显示表对应组装得到仿真结果。
通过上述实施方式的阐述,可以理解,本发明通过获取实体的部件的三角面片数据,针对部件的三角面片数据为部件构建显示表,并获取部件运动的三维转动向量,将部件运动的三维转动向量与显示表组装得到仿真结果。通过这种方式,能够分别为各个部件创建相对独立的显示表,而不是现有技术中而不是将所有部件的三维模型全部封装到一个显示表中。这样如果某个部件的模型的属性发生变化,只需要对该模型本身重新创建显示表,而不需要对其他部件的模型重新创建显示表,极大减轻建模的负担,简化每次运动状态改变更新仿真结果时的工作量。在仿真软件中,通过调用不同的显示表,并结合部件的三维转动向量,组装成最终的实体三维模型,从而再现实体各个部件的相对运动状况和仿真结果。
在本申请所提供的几个实施方式中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的功能模块可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能模块可以集成在一个处理单元中,也可以是各个功能模块单独物理存在,也可以两个或两个以上功能模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (9)

1.一种三维图形仿真方法,其特征在于,包括:
读取机器人的立体光造文件以获取部件的三角面片数据,其中,读取机器人的立体光造文件以获取部件的三角面片数据包括:获取机器人的立体光造文件,判断所述立体光造文件的格式为文本格式还是二进制格式,若所述立体光造文件的格式为文本格式,打开所述立体光造文件读取文件头标识,并读取一个部件的三角面片数据转化为数值后存入三角链表;判断所有部件的立体光造文件是否读取完;若所有部件的立体光造文件已经读取完,则结束读取所述机器人的立体光造文件,否则,返回继续读取直到读取完所有部件的立体光造文件;若所述立体光造文件的格式为二进制格式,打开所述立体光造文件读取文件头以获取三角面片数据的总数量,读取一个部件的三角面片数据存入三角链表;判断读取的所述三角面片数据的数量是否与所述三角面片数据的总数量相同;若相同,则结束读取所述机器人的立体光造文件,若不同,返回继续读取直到读取的所述三角面片数据的数量与所述三角面片数据的总数量相同;
利用所述部件的三角面片数据为所述部件构建独立的显示表;
获取所述部件运动的三维转动向量,将所述部件运动的三维转动向量与所述独立的显示表组装得到仿真结果。
2.根据权利要求1所述的方法,其特征在于,
所述读取机器人的立体光造文件以获取部件的三角面片数据的步骤之前,还包括:根据机器人各个部件的运动状态,将所述机器人的立体光造文件划分为五轴和向量六个部件的立体光造文件;
所述读取机器人的立体光造文件以获取部件的三角面片数据的步骤包括:读取所述五轴和向量六个部件的立体光造文件,以获取所述机器人的所述五轴和向量六个部件的三角面片数据。
3.根据权利要求2所述的方法,其特征在于,
所述利用所述部件的三角面片数据为所述部件构建显示表的步骤包括:从所述机器人的所述五轴和向量六个部件的三角面片数据中获取所述五轴和向量六个部件的中心点信息,利用所述五轴和向量六个部件的中心点信息分别构建所述五轴和向量六个部件的三维模型,将所述五轴和向量六个部件的三维模型分别封装得到所述五轴和向量六个部件的独立的显示表。
4.根据权利要求3所述的方法,其特征在于,
所述获取所述部件运动的三维转动向量,将所述部件运动的三维转动向量与所述独立的显示表组装得到仿真结果的步骤包括:
获取所述机器人的所述五轴和向量六个部件运动的三维转动向量,为所述五轴和向量六个部件运动的三维转动向量分别设置旋转矩阵,将所述五轴和向量六个部件的所述旋转矩阵与所述五轴和向量六个部件的独立的显示表对应组装得到仿真结果。
5.一种三维图形仿真系统,其特征在于,包括获取模块、构建模块以及仿真模块,其中:
所述获取模块用于获取部件的三角面片数据,并将所述部件的三角面片数据发送给所述构建模块,其中,所述获取模块通过以下方式获取部件的三角面片数据:获取机器人的立体光造文件,判断所述立体光造文件的格式为文本格式还是二进制格式,若所述立体光造文件的格式为文本格式,打开所述立体光造文件读取文件头标识,并读取一个部件的三角面片数据转化为数值后存入三角链表;判断所有部件的立体光造文件是否读取完;若所有部件的立体光造文件已经读取完,则结束读取所述机器人的立体光造文件,否则,返回继续读取直到读取完所有部件的立体光造文件;若所述立体光造文件的格式为二进制格式,打开所述立体光造文件读取文件头以获取三角面片数据的总数量,读取一个部件的三角面片数据存入三角链表;判断读取的所述三角面片数据的数量是否与所述三角面片数据的总数量相同;若相同,则结束读取所述机器人的立体光造文件,若不同,返回继续读取直到读取的所述三角面片数据的数量与所述三角面片数据的总数量相同;
所述构建模块用于利用所述部件的三角面片数据为所述部件构建独立的显示表,并将所述独立的显示表发送给所述仿真模块;
所述仿真模块用于获取所述部件运动的三维转动向量,将所述部件运动的三维转动向量与所述独立的显示表组装得到仿真结果。
6.根据权利要求5所述的系统,其特征在于,
所述获取模块具体用于读取机器人的立体光造文件以获取部件的三角面片数据,并将所述部件的三角面片数据发送给所述构建模块。
7.根据权利要求6所述的系统,其特征在于,
所述系统还包括划分模块,用于根据机器人各个部件的运动状态,将所述机器人的立体光造文件划分为五轴和向量六个部件的立体光造文件;
所述获取模块具体用于读取所述五轴和向量六个部件的立体光造文件,以获取所述机器人的所述五轴和向量六个部件的三角面片数据,并将所述五轴和向量六个部件的三角面片数据发送给所述构建模块。
8.根据权利要求7所述的系统,其特征在于,
所述构建模块具体用于从所述机器人的所述五轴和向量六个部件的三角面片数据中获取所述五轴和向量六个部件的中心点信息,利用所述五轴和向量六个部件的中心点信息分别构建所述五轴和向量六个部件的三维模型,将所述五轴和向量六个部件的三维模型分别封装得到所述五轴和向量六个部件的独立的显示表,并将所述五轴和向量六个部件的独立的显示表发送给所述仿真模块。
9.根据权利要求8所述的系统,其特征在于,
所述仿真模块具体用于获取所述机器人的所述五轴和向量六个部件运动的三维转动向量,为所述五轴和向量六个部件运动的三维转动向量分别设置旋转矩阵,将所述五轴和向量六个部件的所述旋转矩阵与所述五轴和向量六个部件的独立的显示表对应组装得到仿真结果。
CN201210591691.8A 2012-12-31 2012-12-31 一种三维图形仿真方法及系统 Active CN103093496B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210591691.8A CN103093496B (zh) 2012-12-31 2012-12-31 一种三维图形仿真方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210591691.8A CN103093496B (zh) 2012-12-31 2012-12-31 一种三维图形仿真方法及系统

Publications (2)

Publication Number Publication Date
CN103093496A CN103093496A (zh) 2013-05-08
CN103093496B true CN103093496B (zh) 2016-03-02

Family

ID=48206027

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210591691.8A Active CN103093496B (zh) 2012-12-31 2012-12-31 一种三维图形仿真方法及系统

Country Status (1)

Country Link
CN (1) CN103093496B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107856034B (zh) * 2017-10-18 2021-04-20 南京师范大学 一种机械手空间移动轨迹的设计方法
CN109635487B (zh) * 2018-12-25 2023-04-07 宁波弘讯科技股份有限公司 物品搭配仿真方法、装置、网络销售平台及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1555030A (zh) * 2003-12-22 2004-12-15 李浩宇 人体骨骼未知体三维交互模型的建立方法及其应用

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000137829A (ja) * 1998-10-30 2000-05-16 Toshiba Corp 3次元cadシステム、図形処理方法及び図形処理用ソフトウェアを記録した記録媒体

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1555030A (zh) * 2003-12-22 2004-12-15 李浩宇 人体骨骼未知体三维交互模型的建立方法及其应用

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Research on 3D Equipment Operation Simulation Training System;Yue Zhang等;《2009 International Conference on Information Management and Engineering》;20090405;第564-568页 *
基于OpenGL的真空机器人三维图形仿真;潘萌等;《微计算机信息(嵌入式与SOC)》;20071231;第23卷(第12-2期);第237-239页 *
海量STL文件的快速读取与显示;卫炜等;《机械科学与技术》;20060831;第25卷(第8期);第935-938,975页 *
集成激光制造系统加工过程计算机模拟;钟雷等;《系统仿真学报》;20090731;第21卷(第14期);第4536-4539页 *

Also Published As

Publication number Publication date
CN103093496A (zh) 2013-05-08

Similar Documents

Publication Publication Date Title
JP5616060B2 (ja) グラフィックスプロセッサ上の物理シミュレーション
CN104484522B (zh) 一种基于现实场景的机器人模拟演练系统的构建方法
CN110134982B (zh) 可通过铣削操作制造的部件的设计
US10002465B2 (en) Creation of bounding boxes on a 3D modeled assembly
Greß et al. GPU‐based collision detection for deformable parameterized surfaces
WO2012138897A1 (en) Bim based 3-d visualization
Cai et al. Collision detection using axis aligned bounding boxes
EP3040946B1 (en) Viewpoint selection in the rendering of a set of objects
CN109859318A (zh) 面向安全生产的三维模型制作加载显示系统及方法
CN111339599A (zh) 一种bim模型到gis模型的转换方法
US11605200B2 (en) System for optimizing a 3D mesh
CN104217273A (zh) 一种航天器三维数字化模型特征管理方法
CN103093496B (zh) 一种三维图形仿真方法及系统
CN102339476A (zh) 一种描述三维轻量化模型的方法
CN109872386B (zh) 一种基于stl模型精确体素化的产品物性建模方法
CN100385464C (zh) 一种基于四边形折叠的三维网格图形简化方法
CN112989458B (zh) 一种BIM模型到3DTiles文件的转换方法
Conesa et al. An agent-based paradigm for virtual modeling
US20220138359A1 (en) Cell shrink wrap
An et al. Research on Fast Collision Detection Algorithm Based on CPU Cache Technology
Ye et al. Design of Parametric CAD System for Ceramic Products Based on Virtual Reality Technology
CN118643558A (zh) 基于eda软件参数化的3d建模装置及建模方法
CN117853661A (zh) 一种基于物件模型的可视化效果自定义方法和系统
Zhen et al. Research and implementation of modeling in virtual environment based on OpenGL
CN118552678A (zh) 一种基于三维引擎的切割头三维模型贴图的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent for invention or patent application
CB02 Change of applicant information

Address after: 100085 Beijing City, Haidian District information road, building 18, No. 7, digital media building, room two, Room 201

Applicant after: BEIJING PEITIAN TECHNOLOGY CO., LTD.

Address before: 100085 Beijing City, Haidian District information road, building 18, No. 7, digital media building, room two, Room 201

Applicant before: Beijing A&E Precision Machinery Co. Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: BEIJING A+E PRECISION MACHINERY CO. LTD. TO: BEIJING PEITIAN TECHNOLOGY CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20130508

Assignee: Anhui SCBD Robot Technology Co Ltd

Assignor: BEIJING PEITIAN TECHNOLOGY CO., LTD.

Contract record no.: 2016990000487

Denomination of invention: Three-dimensional figure simulation method and system

Granted publication date: 20160302

License type: Exclusive License

Record date: 20161125

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model