孙尧,刘飚,倪诗炜(东华大学计算机科学与技术学院,上海200051)
摘要:多相非匀质材料,是指通过最优化配比相同或者不同源属的物质得出的具有优异性质的材料,由于该材料对于加工过程有着苛刻的要求,对于这类型加工工序的预先模拟显得分外重要。本文详细论述了我们科研小组针对计算机模拟多相非匀质材料运动学加工的仿真过程,并且尝试分析了在仿真过程中所遇到
的问题以及提出的解决方案,为今后的探索奠定了基础。
关键词:多相非匀质材料;模拟机床
中图分类号:TM743文献标识码:A文章编号:1007-9599(2010)04-0000-03
VPSimulateMultiphaseInhomogeneousMaterialMachiningKinematicsSimulation
SunYao,LiuBiao,NiShiwei
(EastChinaUniversity,Science&TechnologyCollege,Shanghai200051,China)
Abstract:Themulti-phasenon-homogeneousmaterialsistheoptimalratiobythesameordifferentsourcematerialderivedfromnaturewithexcellentmaterial,asthematerialfortheprocesswithstringentrequirements,forthistypeofpre-processingprocesssimulationbeveryimportant.Thispaperdescribesourresearchgroupforcomputersimulationofmultiphasenon-homogeneousmaterialsprocessingsimulationkinematics,andtrytoanalyzetheproblemsencounteredandsolutionsinSimulationprocess.Asabasisexplorationforfuture.
Keywords:Multiphaseinhomogeneousmaterial;Simulationtools
一、引言
多相非匀质材料,即是一种通过最优化配比相同或者不同源属的物质得出的具有优异化学或者物理性质的材料,用来满足各种社会生产中的各种特殊需求。为了制造这种特殊属性的材料,特殊的加工工艺应运而生。这些工艺通常都会涉及到复杂的混合的铺层生产技术。
由于多相非匀质材料对于加工过程有着苛刻的要求,其加工的高成本高风险以及对于加工工艺的精细控制,对于这类型加工工序的预先模拟生产就显得分外重要。通过计算机模拟生产工艺的整个过程能帮助相关生产厂商及早了解整个生产工序的步骤,直观地观察产品的制作过程进而发现生产工艺上可以做出的改进,便于商业展示以及其他各种目的。高级建模语言的广泛使用,特别是Web3D技术的出现,对于这类生产的仿真过程实现,具有极为重要的意义。事实上,现代计算机技术已经为我们提供了数种甚至数十种Web3D高级建模语言用于进行运动学模拟仿真。
(一)多种Web3D建模语言的比较
VRML:只需要标准插件;易于学习、使用;文件小,以代码进行传输,网络传输速度较快。复杂建模的功能较弱,浏览插件使用相对较复杂。
Cult3D:具有逼真的三维质感且文件小,网络传输速度快,浏览器使用方便。客户使用需要授权,并支持相应费用。
OpenGL:独立硬件,独立于窗口系统,是专业图形处理、科学计算等高端应用领域的标准图形库。在网络上传输的是图像,传输速度慢,无法满足多用户异地实时协作的要求。
Java3D:封装了OpenGL和Di-rectX,一次书写可跨平台使用,以代码进行传输,网络传输速度快。编写、调试相对和复杂,目前国内使用不是很广泛。
而这其中,VRML(virtualrealitymodelinglanguage)的出现使得我们有了一种方便使用的工具,来实现对于这一类生产仿真的诉求。
(二)VRML简介
WebscriptVRML(VirtualRealityModelingLanguage,虚拟现实建模语言)是一种网络上使用的三维形体和交互环境的场景描述语言,具有分布性、多媒体集成、交互性、平台无关性等优点。通过VRML自带的插补器和传感器,可以实现较简单的计算机动画和交互。但是对于一些高级应用,仅仅依靠VRML就会有很大的局限性,而应用VRML与Java的交互,就可以有效地弥补VRML本身的一些不足,增强VRML的动画效果和交互能力。
围绕VRML与Java的交互,在目前的技术领域已经存在几种比较成熟的技术方案,首推EAI交互和SAI交互两种方式。基于EAI的交互方式,EAI(ExternalAuthoringInterface)即外部编程接口,该接口由一组关于浏览器操作的函数组成,通过这些函数的调用,外部程序就能影响VRML世界中的物体。EAI是浏览器中VRML与JavaApplet的中介,这为客户端功能扩展以及提供更强大的动态交互性提供了技术保障,使得一些实时交互功能不必依靠服务器就可以在客户端实现,也为VRML、JavaApplet及html文件在同一网页中的嵌套提供了技术支持。而SAI偏重于虚拟场景内部处理,在浏览器内部对场景的节点进行访问;而EAI主要用来提供与外部环境相互通信的能力,从VRML浏览器外部获取场景节点和事件结构。基于EAI的交互关系如图2所示。利用EAI包提供的Browser类和Node类,可以完全不用Script节点和Script类及路由等方式而直接由EAI外部程序操控VRML世界中的各种节点,极大地丰富了VRML的功能。但是该方法也有其局限性,它只能通过Java小程序来控制VRML世界。
二、模拟仿真实验
(一)模拟机床的创建过程
1.学习了解SolidWorks机床模拟图。
在指导老师的帮助下,作者获得了SolidWorks制图生成的常规机床模拟图,借助SolidWorks搭建的3D机械机床图像,全面了解机床运动以及多相非匀质材料零件加工过程的原理。该方针图像由机床支架、加工台、喷绘台、研磨器、激光雕刻台五部分构成。机械机床的这种构成,能够满足使加工台自由实现空间三维坐标X轴、Y轴、Z轴方向的运动,在喷绘台中填充物质,在研磨台研磨物质,实现物质的细致化均匀化,并在激光雕刻台对于零件加工达到需要的形状。
2.使用VRML建模。
利用VRML实现模拟机械运动学仿真时有多种建模方法,可以在VRML代码中通过基本形体节点来建模,也可以使用其它建模软件中建模后转化为VRML文件。作者在仿真实验中,是通过SolidWorks2008搭建的3D机械机床,然后进行转换建模,进而完成模拟机床的VRML图像搭建。相应步骤为:在SolidWorks2008中,根据零件设计尺寸,将已经得到的SolidWorks2008机床的模拟图,进行输出转换,选择转换方式为VRML97。其中,VRML的默认单位是米,为了下一步装配方便统一单位设置,更改单位为厘米。
3.模型优化。
文件大小、文件质量是影响网络传输、视觉效果的重要因素,使用VRML实现模拟机械运动学仿真的一个优点就是数据量小,可以整合到网页中,并且VRML特效可以根据自我需要进行调节。而作者所创建的3D机床图,在使用到SolidWorks2008的SLDASM文件时,文件大小为230KB,而VRML图的大小仅为151KB。因此,为尽可能减少数据量,提升视觉效果,作者对复杂模型应进行优化。下面将谈一下两种优化方式。
(1)在3DSMAX中优化。
选择模型,在3DSMAX修改面板的下拉菜单中选择优化工具,在保证机床外观无太大损失的情况下,增加优化面板上的面阈值和边阈值,可减少机床的点、线、面,减少数据量。并且在3DSMAX软件中通过光线的设定,场景素材的添加,达到坚强视觉效果的功效。
(2)在VrmlPad2.1中优化。
使用VrmlPad2.1打开Vrml文件,在工具中选择代码,可以根据需要,选择删除注释,整理代码格式,3DMAX清理,删除无用命名等功能,优化文件。并且可以根据VRML语法规则,自己修改文件,增加修改相应的内容。作者在此,添加了背景Background,视角Viewpoint,修改了Appearance属性,达到增加视觉美观的功能。
以上是两种模型优化的方法的效果图,通过这两种方法的使用,可有效减少文件数据量。达到优化的效果。其中,3DSMAX优化的结果中,添加场景会照成大量数据量,在网络传输以及网页加载过程中,会造成一些滞后问题。而使用VrmlPad2.1优化对代码处理能力要求比较高,大部分场景修改需要自己对于代码进行编辑。经过反复优化尝试,实验结果为:原始文件大小为151KB,3DSMAX优化文件大小为1320KB,VrmlPad2.1优化文件大小为109KB。根据项目的客观要求,作者最后采用的为VrmlPad2.1优化文件作为模拟机床的原型。
(二)模拟机床的运动仿真
1.JAVA与VRML的交互。
在已经成功创建的VRML图的基础上,需要实现利用VRML模拟机械运动学过程仿真,而利用VRML模拟机械运动学过程仿真,可以通过多种方式实现,在目前的技术领域已经存在几种比较成熟的技术方案分别是:1.在VRML文件中,使用利用VRML的TimeSensor(时间传感器)节点和OrientationInterpolator(方向内插器)直接控制运动。2.利用EAI数据接口,实现JAVAApplet与VRML虚拟场景之间的相互通信,达到模拟机械运动学过程仿真的目的;EAI接口包含浏览器脚本接口的全部功能,例如查询浏览器状态,增删路由等,如果需要集成多种媒体达到人机互动的效果、进行复杂的网络控制,多采用利用EAI接口的方法进行。3.借助SAI接口的方法,利用script节点、事件发生器、dff/use命名规则和路由route,连接VRML场景中对应的节点和域,实现VRML与JAVA的交互,并最终实现模拟机械运动学过程的仿真。
根据多项非匀质材料零件加工过程中的运动学仿真的动态模拟需要,小组选用EAI接口技术,用DEF关键字修改VRML视图中所有节点名称,通过JAVA对于VRML文件所有节点进行控制,实现模拟机床的运动学过程仿真。在搭建平台环境过程中,使用JDKversion1.3平台,添加cortonavrml浏览览插件中的classes、corteai包,以实现EAI接口的调用功能,在理论完善的基础上,实现JAVA与VRML的交互,完成运动模拟的仿真。
2.模拟机床的运动仿真。
EAI接口连接运动节点
根据在之前通过VrmlPad2.1优化的模拟机床的原型,作者利用EAI接口技术,实现了JAVAApplet与虚拟机床场景节点相互交互。其中,Applet利用封装在vrml.eai.Browser包中的Browser类访问VRML场景,通过getNode(””)函数用来直接获得VRML中使用DEF关键字定义的节点对象,调用EAI接口中的getEventOut、getEventIn函数获得事件输入、输出的实例,改变事件输入项,从而相当于改变场景。
以视点Viewpoint以及Transform为例,分别介绍相应的连接代码:
VRML场景中定义视角1:DEFView1Viewpoint{…}
Java程序中代码实现连接视角:
……
browser=BrowserFactory.getBrowser(this);//生成Browser对象
view1=browser.getNode("View1");//得到View1节点
bind1=(EventInSFBool)view1.getEventIn("set_bind");//得到事件输入实例
……
if(event.target==bview1)//如果选择一视角
bind1.setValue(true);//设置输出,调整视角
VRML场景中定义节点:DEFUpper_saddleTransform{…}
Java程序中代码实现连接节点:
……
browser=BrowserFactory.getBrowser(this);//生成Browser对象
nodeUpper_saddle=browser.getNode("Upper_saddle");//得到Upper_saddle节点
set_translation_Upper_saddle=(EventInSFVec3f)nodeUpper_saddle.getEventIn("set_translation");//得到事件输入实例
……//循环递减tmp_rate,实现加工台的运动
position_Upper_saddle[2]=position_Upper_saddle[2]-tmp_rate;
set_translation_Upper_saddle.setValue(position_Upper_saddle);
实现模拟机床多项非匀质材料的生成
实现模拟机床多项非匀质材料的生成,即使用JAVA编程通过EAI接口,对于所有VRML中的机床节点进行系统控制,在前面连接的基础上,有效的控制运动。在作者设计的JAVA控制文件中,使用到变量控制的循环处理方式,实现基本模拟运动路径。
路径包括:①喷绘→②研磨→③激光雕琢→①喷绘→②研磨,控制方式代码表述为:
for(;;)//循环处理
{
//变量控制
if(assembly_flag==NUM)
{
//通过assembly_flag变量控制,实现运动步骤的判定,并执行运动
}
}
根据多项非匀质材料的特性,作者在机床仿真运动的基础上,通过对于VRML喷洒头的动画效果模拟,仿真多项非匀质原料的喷洒过程。在VRML文件中,定义DEFPolatorColorInterpolator节点,选择颜色值、持续时间,然后将颜色值列入keyValue域中,并将相应的持续时间列于key域中,并且通过TimeSensor节点循环控制,模拟喷洒效果。
其中,ColorInterpolator的设置如下:
DEFPolatorColorInterpolator{
key[0,0.5,1]
keyValue[100,111,100]
}
即实现0.5秒的红色材料喷绘,1秒的白色材料喷绘。再结合激光雕刻方式,能够完成较为复杂的零件仿真。
以上,通过所有步骤实现了多相非匀质材料零件加工过程中机床运动学的模拟部分的仿真。
三、结论:
尽管VRML在实现交互和网络通信方面存在缺陷,但它与Java的结合有效弥补了自身的不足,相信随着研究的不断深入,VRML将会在分布式虚拟现实和协同虚拟现实技术中发挥重要作用。但是由于传统方法SAI和EAI对JDK版本的限制,使得Java的JDK版本被限制在了1.4以下。在项目研究的初期,我们试图找到解决这个问题的方法,提出了基于网页脚本交互的方案,但在实际研究过程中,该方案人存在严重的不足:对场景参数的修改要在网页脚本中实现,无法充分利用浏览器插件所提供的开发包,当修改参数较多时,对系统的实时性有影响。因此,我的研究只能作为一种思路的借鉴,为以后进一步深入研究提供一个探索的方向。
参考文献:
[1]赛博科技工作室.VRML与Java编程技术[M].人民邮电出版社,2002
[2]汪兴谦,牛燕明,邓谆谆.VRML与JAVA编程实例讲解[M].北京中国水利水电出版社,2002
[3]连振汉.Java/VRML设计大全/Internet实务系列丛书[M].机械工业出版社,1997
[4]王汝传,姚旭敏,王海艳,刘丽.基于JAVA和VRML虚拟场景通信方式的研究[J].系统仿真学报,2003
[5]康与云,赵晓春.基于VRML的牛头刨床机构运动的虚拟仿真[J].工程图学学报
作者简介:孙尧(1988-),男,山东泰安人,东华大学计算机科学与技术学院07级学生。
上海市大学生科技创新计划入选项目(200918),指导老师:冯向阳,黄永峰