12 第1页 | 共2 页下一页
返回列表 发新帖
查看: 2990|回复: 17
打印 上一主题 下一主题

基于VRML的虚拟制造(二)

[复制链接]

1096

主题

1

听众

1万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
17782
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2011-12-26 15:15:23 |只看该作者 |倒序浏览
实现电机的转动用到TimeSensor 节点,其VRML语法如下:

    DEF time TimeSensor {cycleInterval A

       loop True }

    cycleInterval的值指定了一个时间长度A,即传感器从0.0到1.0时刻的间隔。改变A的大小可以改变电机转动的快慢。Loop域是一个开关量,指转动循环的状态,True 指无限的循环,False指只循环一次。

    实现电机转子转动要定义的另一个节点是OrientationInterpolator,即朝向插补器。

    DEF path OrientationInterpolator {key [ ]

                            keyValue [ ]}

    key和keyValue定义了电机转子转动的关键值和关键位置。产生事件和接收事件节点由ROUTE指令连接在一起。

    ROUTE time.fraction_changed TO path.set_fraction

    ROUTE   path.value_changed TO zhuanzi.set_rotation







图2.Java和VRML动态仿真的程序流程图

    第一个路由在TimeSensor节点的fraction_changed eventOut和OrientationInterpolator节点的set_fraction eventIn之间建立连接。第二个路由在OrientationInterpolato节点的Value_changed eventOut事件和TimeSensor节点的set_translation 之间建立连接。在虚拟场景中电机一旦开启,时间传感器被击发而不断输出时刻值,插补器OrientationInterpolator收到这些值后,用来计算一个新的旋转,新的旋转数据输出给Transform节点,使得节点坐标以一个新的角度旋转。要实现在虚拟场景中对转速的加减进行控制,可运用s cript节点对应的Java类来完成,使用Java对VRML的s cript节点编程、封装属性和建立场景图内部消息通道能够实现虚拟实体丰富的动态交互功能。其程序流程如图2示。Java程序对虚拟场景中电机的转速控制的流程为:设计者在虚拟场景中输入一个转速值,该事件经路由传入s cript节点;Java程序从s cript节点处获取的事件进一步加工,再将在Java程序中实现的操作者的加速或减速的逻辑信息反馈到s cript节点中,实现对虚拟现实场景中电机转子的速度控制。
  三、VRML技术在虚拟制造中应用的关键技术
  1.模型建立
  根据部件尺寸、形状、位置、运动关系建立机构模型,尤其是复杂模型,可利用3D成型软件如UG、3dsmaxmaya、Pro/E、SolidWorks先进行三维建模,通过Export输出VRML文件(.wrl),再调入VRML编辑器进行编辑处理,,这样可提高VRML编程效率。对于机械模型的不规则外形和不同的运动形式,可用位置插补器(position interplolator)来进行更精确描述。对需要细节展现的机械部件可运用LOD算法,它的功能为:一个复杂的模型在距离观察者很远时,它的大多数细节都不能被观察者看见,因而可忽略,只有当观察者足够接近模型时这些细节才体现出来。这样既可满足设计需要,又可节省资源。VRML的颜色插补器、法线插补器、坐标插补器、位置插补器等能更真实地建立模型和场景,更准确地定位模型、描述其运动,达到很好的仿真效果,并且文件所占空间很小(一般为几十KB)。


  2.VRML文件与HTML文件的超级链接
  基于VRML的虚拟制造很大程度上是通过网上的动态交互功能来实现的,而VRML适合通过网络进行信息传输,于是VRML文件与HTML文件通过网络进行相互超级链接显得十分重要。

    HTML文件格式的标准并不支持对VRML文档的嵌入,但非标准HTML提供<EMBED>标记可实现VRML文档的嵌入[2]。如:

    <EMBED NAME=bodyvrml SRC=”example1.wrl” HEIGHT=300 WIDTH=400 ALIGN=LEFT>实现了VRML文档“example1.wrl”在HTML文件中的嵌入。

   

    应用组节点 Anchor在VRML文件中也可实现对HTML文件的超链接,只要用户在 Anchor的几何子节点上点击,即触发这一链接。如:

    Anchor {des cription 'link to example.wrl'    #对Anchor的链接对象进行描述

        url 'example2.html'                #设定链接的HTML文件名称

     children Shape {geometry

    Sphere {}#定义一个球体,一旦点击该球,则打开example2.html文档0

             }

   }

    VRML文件之间的跳转也可以由Anchor实现。另外,Inline节点也可以实现VRML文件之间的连接,但它并不触发超链接,而是用网络上某个VRML程序作为它的子节点,如果点击则会触发一个VRML程序。

    3.虚拟制造系统内的交互

    实现虚拟制造交互性操作的具体位置有HTML页面的控件以及VRML页面的节点。前者一般是在二维网页上进行超级链接,后者是单纯地在VRML页面上实现的用VRML父节点控制其它VRML节点的活动。

    VRML交互功能一般是通过一系列检测器来实现的,触动监测器是用来检测用户的触动动作,其中包括TouchSensor节点、PlaneSensor节点、CylinderSensor节点和SphereSensor节点。除触动检测器外,能产生交互功能的节点还有感知检测器,它是用来感知用户与造型的接近程度,包括VisbilitySensor节点、ProximititySensor节点 和Collision节点。检测传感器的选择必须考虑相关的动作类型,如果要获取观察者的位置和可见度的信息,可以使用Proximitysensor和VisibilitySensor;要滚动、转动、拖动几何体,可以使用Spheresensor,Cylindersensor和PlaneSensor;TouchSensor可获得非常丰富的关于鼠标的信息,作为输入驱动产生若于事件;VRML为Javas cript、Java等语言提供了调用的接口,他的主要作用是提供灵活的编程嵌入接口。URL域可以直接编写描述性质的程序,也可以将程序部分分离出来,单独存放在一个文件中,然后在URL域指定它的资源地址。在VRML2.0标准中也没有具体规定编程语言,用户可以根据情况,灵活地选择 Vrmls cript,Javas cript或Java。

    4.系统导航与视点的变换

    为了防止在复杂的虚拟制造VRML场景中迷失航向,应设置作用明显突出的导航控件或者节点,为了可以细致地观察某些现象,应适当地设置观察位置和观察方向(即视点)。如在场景的设计中,应设置正视图、侧视图、俯视图以及全局图的视点,以方便用户随时切换观察方式,必要时,可以提供自动浏览的功能。

    设置视点要采用Viewpoint节点,其语法如下:

    Viewpoint {des cription 'view1'  #des cription定义视点名称;

    position  0 1 0       #定义在虚拟场景中观察者的坐标位置;

    orientation 0 1 0 1.57 }  #orientation定义了虚拟场景中观察者观察者的空间朝向,前三(0 0 1)位确定了视点的方向,即与z轴的负方向对齐,最后一位指出了旋转角度;

   

    fieldOfView 0.785398   #fieldOfView给出了一个以弧度为单位的视点的视宽角的大小,在0.0~3.14选取,默认值为0.785398,即45&deg;角;

   

    jump FALSE } #jump是个开关值,TRUE表示是跳跃视点,FALSE表示是非跳跃视点;

    5、结合Java的数据信息传输

    虚拟制造设计者可在虚拟场景中把机械模型的参数、存取的数据、优化的数学模型和可靠性分析数据结合Java编程和数据库,将优化解直接传送给Java Applet,Java Applet与VRML文件及页面数据进行通信并使之实时显示[3,4]。基于网络的虚拟制造系统都会涉及到这个问题。VRML文件中定义s cript接口和其他节点名称、属性,在s cript节点与Java程序间建立一个映射,同时初始化指向VRML场景的程序变量,这可在initialize()方法中完成。在映射并初始化后,可用Value()赋值,同时将该值传递给VRML中某一字段,当VRML中的传感器如TouchSensor检测到触发事件后,使VRML即时更新,实现实时显示虚拟制造过程和结果。

    6.其他关键技术

    基于VRML技术实现虚拟制造是涵盖了自动化控制、计算机图形学、机械设计、人机工程学、网络技术、计算机应用及虚拟现实(VR)等多门学科,具有较大的难度,进行虚拟制造过程中要综合考虑各学科的特点[5]。

    目前,关于数字虚拟机械的研究主要集中在有关广义力学的静态模型方面(性能、设备及工艺参数等),而在动态模型的研究方面开展得较少,故建立虚拟机械动态模型是关键技术。
此外,VRML2.0是单纯的文本编辑语言,它不提供可视化编写环境,实物虚拟模型的建立完全依赖于坐标的定位、旋转和放缩,这给模型的建立带来了很大的难度。动态虚拟仿真场景的建立以及最后建立的三维监控系统需要三维模型与仿真的数学数据动态交互,VRML不提供数学运算,这需要借助于其他语言,多种语言的混合运用也是关键技术[6],同时也给编程带来了一些难度。

    四、结语

    虚拟制造是一种通过计算机虚拟模型来模拟和预估产品功能、性能及可加工性等方面可能存在的问题的技术。虚拟制造为工程师们提供了从产品概念的形成、设计到制造全过程的三维可视及交互的环境,使得制造技术从经验模式发展到整体预报的新模式。

    VRML作为国内外虚拟现实技术新的研究点,因其文件长度小、节点功能丰富、适于网络三维信息动态交互等优点,通过与Javas cript和Java相结合所具有的强大的动态交互操作能力使得基于它的虚拟制造能够得以实现。随着VRML用于虚拟制造,相关技术也在进一步完善,VRML与各种新技术的融合将会有力的拓展VRML的应用领域。相信随着工程技术人员对VRML的认识的加深,VRML在虚拟制造领域会得到广泛深入的应用。
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

168

主题

1

听众

3637

积分

中级设计师

Rank: 5Rank: 5

纳金币
3637
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2011-12-27 13:36:57 |只看该作者
四哥路过,其他闪道!
回复

使用道具 举报

0

主题

1

听众

1122

积分

助理设计师

Rank: 4

纳金币
1122
精华
0
板凳
发表于 2011-12-27 13:37:48 |只看该作者
回复

使用道具 举报

0

主题

1

听众

1106

积分

助理设计师

Rank: 4

纳金币
1106
精华
0
地板
发表于 2011-12-27 13:38:04 |只看该作者
回复

使用道具 举报

0

主题

1

听众

1106

积分

助理设计师

Rank: 4

纳金币
1106
精华
0
5#
发表于 2011-12-27 13:38:14 |只看该作者
回复

使用道具 举报

462

主题

1

听众

31万

积分

首席设计师

Rank: 8Rank: 8

纳金币
2
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

6#
发表于 2012-2-23 23:28:19 |只看该作者
不错啊 经典
回复

使用道具 举报

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

7#
发表于 2012-3-8 23:23:55 |只看该作者
我是老实人,我来也!
回复

使用道具 举报

330

主题

1

听众

1450

积分

助理设计师

Rank: 4

纳金币
1448
精华
0
8#
发表于 2012-3-9 22:05:19 |只看该作者
回复

使用道具 举报

5969

主题

1

听众

39万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

9#
发表于 2012-4-24 23:30:19 |只看该作者
“再次路过……”我造一个-----特别路过
回复

使用道具 举报

tc    

5089

主题

1

听众

33万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

10#
发表于 2012-5-8 23:23:06 |只看该作者
这么后现代
回复

使用道具 举报

12 第1页 | 共2 页下一页
返回列表 发新帖
您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-2-1 03:54 , Processed in 0.075970 second(s), 30 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部