论文部分内容阅读
随着以网络程序设计语言VRML为核心的第二代Web技术的发展,基于VRML的虚拟产品技术越来越受到人们的重视。在机械工程领域里,VRML被广泛的用来实现机械产品的虚拟装配,真实地模拟机械产品的装配、拆卸过程。观察者只须操作浏览器就可以对这一过程进行多角度、全方位观察。这对基于Web的产品展示及对设备维护维修工人和学生的培训等都具有重要的意义。 在系统的总体规划中,简单介绍了包括浏览器页面,VRML场景文件的编写,Java Applet界面的规划以及Java Applet与VRML场景的通信问题,及采用的技术路线,预期达到的目标。本文主要完成了以下几个方面的工作: 首先是借助于PROTO节点建立了优化的用户自定义Part节点。由于虚拟装配的最小单位是单个的零件,而VRML 97中的原型节点都无法将零件的特性完整正确地描述出来。因此,只有通过PROTO节点建立用户自定义的Part节点,并在其中集成了PlaneSensor平面传感器节点,SphereSensor球面传感器节点,Switch选择节点以及TouchSensor触摸传感器节点,实现了用户通过鼠标对零件进行选中、平移、旋转的操作。相比普通的只能通过Java Applet中的按钮交互而言,大大方便了装配过程。 其次在软件工程的标准化、模块化的思想的基础上,建立了文件的树状结构的数据结构,优化了对场景中零件的分层操作。并通过PROTO节点建立了不同层次的节点Assembly节点,Configration节点以及ConfigInstance节点,再加上前面提到的Part节点,形成了标准VRML文件的树状结构,从而方便对场景中单独零件或者子装配体的操作。 接着,通过EAI对出事件的监听机制,并结合自定义的Part节点中内嵌的TouchSensor节点,实现了点击选中模型零件的功能,极大地方便了用户的交互装配。这是本文的一大创新点。最后,借助于Parallel Graphics公司则VRML 97原型节点Script扩展而形成的Object-to-Object Collision Detection节点,实现了碰撞检测,程序代码简单,执行快,效果也较好。完全满足了虚拟装配中的碰撞检测的需要。 最后经过测试,完全可以满足教学和产品演示中对交互式柴油机虚拟装配的要求。可见,基于VRML和Java的虚拟装配仿真是一条完全可行的研究方向。