基于VRML和Java的虚拟装配复杂控制的实现概要.docx

上传人:b****4 文档编号:11590408 上传时间:2023-03-19 格式:DOCX 页数:7 大小:79.51KB
下载 相关 举报
基于VRML和Java的虚拟装配复杂控制的实现概要.docx_第1页
第1页 / 共7页
基于VRML和Java的虚拟装配复杂控制的实现概要.docx_第2页
第2页 / 共7页
基于VRML和Java的虚拟装配复杂控制的实现概要.docx_第3页
第3页 / 共7页
基于VRML和Java的虚拟装配复杂控制的实现概要.docx_第4页
第4页 / 共7页
基于VRML和Java的虚拟装配复杂控制的实现概要.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

基于VRML和Java的虚拟装配复杂控制的实现概要.docx

《基于VRML和Java的虚拟装配复杂控制的实现概要.docx》由会员分享,可在线阅读,更多相关《基于VRML和Java的虚拟装配复杂控制的实现概要.docx(7页珍藏版)》请在冰豆网上搜索。

基于VRML和Java的虚拟装配复杂控制的实现概要.docx

基于VRML和Java的虚拟装配复杂控制的实现概要

第1期(总第158期

2010年2月机械工程与自动化

MECHANICAL ENGINEERING & AUTOMATIONNo11

Feb1

文章编号:

167226413(20100120024203

基于VRML和Java的虚拟装配复杂控制的实现

张本生,刘海光,黄 波

(海军潜艇学院,山东 青岛 266071

摘要:

详细研究了Script节点工作机制及其在Java中的定义,以及实现复杂控制用到的JavaScript类、事件类及方法,并对VRML、Java间的通讯方式、编程实现进行了研究。

最后采用研究结果,实现了某典型部件的虚拟装配。

关键词:

VRML;Java;虚拟装配

中图分类号:

TP39119   文献标识码:

A

收稿日期:

2009205213;修回日期:

2009210213作者简介:

张本生(19722,男,山东平度人,讲师,博士。

0 引言

基于VRML的虚拟装配方法,是一种在计算机网络上实现异地跨平台协同直接预装配的方法,它能够恢复基础装配件和零部件的主要几何信息,使VRML在具有网络浏览功能的同时又具有可装配性。

它能够准确地实现装配的约束,完成对异构CAD系统生成的VRML模型完整装配操作,实现异地协同装配,且具有易于实现、计算效率高、计算误差小等优点。

但是VRML语言内插器节点计算功能薄弱,对于基于物理的动画缺乏描述能力,再加上其造型和动画都有一定的随意性,在动态仿真、科学计算可视化、虚拟装配等要求精确复杂控制的领域表现得不尽人意,限制了VRML在虚拟装配中的应用。

本文就VRML与Java程序结合实现虚拟装配中复杂控制的方法进行了研究,最后应用上面的研究成果实现了某部件的虚拟装配。

1 Script工作机制及定义111 Script节点工作机制研究

Script节点工作机制见图1。

它帮助Java程序从VRML场景中获取字段并对数据进行操作。

VRML代码和Java代码是两个不同的模块,Script节点可以将这两个模块有效地进行连接。

当事件到达Script节点的eventIn事件入口,浏览器对事件在程序之间进行事件分配,程序根据它获取的特定事件信息展开工作,并返回计算结果,被加工的信息由Script节点的eventOut事件出口送出去。

112 Script节点定义

Script节点定义如下:

Script{#exposedFieldMFStringurl[]

#fieldSFBoolDirectOutFALSE#fieldSFBoolmustEvaluateFALSE#eventIneventTypeNameeventName#fieldfieldTypeNamefieldnameinitialValue}

其中:

url域值用来指定多个按照优先级区分的url列表;DirectOut域用来通过设定真或假来说明程序脚本的输出是否受限制;mustEvaluate域用来通过设定真或假来制订脚本是如何进行求值的;field、eventIn等用来定义url域值显示的在Script节点和程序脚本之间的接口

图1 Script工作机制

2 JavaScript类、事件类及方法211 JavaScript类、Event类的定义

Java程序要想访问VRML场景中节点,首先要访问Script节点。

Java的VRML类包定义了一个Script类,要对VRML场景产生控制的Java程序都必须继承这一个类[1]。

Script类的定义如下:

publicabstractclassScriptextendsBaseNode

{publicvoidinitialize(;程序脚本初始化时调用

protectedfinalFieldgetField(StringfieldName;获得一个接口域的句柄

protectedfinalFieldgetEventOut(StringeventOutName;获得EventOut事件接口的句柄

publicvoidprocessEvent(Eventevent;程序脚本接收到一组事件,自动被调用

publicvoidshutdown(;程序被终止时被调用}

Initialize(方法用于程序脚本没有接收过任何事件,并且在其被第一次读入时初始化内部数据,getField(方法将initialize(中的字段同外部Script(中字段建立联系,processEvent(Eventevent用于与外部事件建立联系,shutdown(方法用于清除程序终止时残留的东西,如该脚本所创建的线程。

事件类定义:

classEvent

{publicstringgetName(;将Script节点的一个eventIn字段作为字符串类返回

publicConstSFFieldgetValue(;返回一个VRML字段的参考值,并将这个值赋给字段类的只读对象

publicdoublegetTimeStampp(;用于捕获时间}

212 Java字段类方法

Java字段和它的子类用以下方法取值和赋值:

getSize(返回每个多值字段的元素个数;getValue(将VRML类的值转化为Java类的值并返回;setValue(value将Java类型值转化为VRML类型值,并在VRML中设置;addValue(value将Java类型值转化为VRML类型值,并添加到最后一个元素后面;insetValue(intindex,value从Java类型值转换为VRML类型值,并插入到第Index个元素。

3 Script和Java间的通讯研究

Script和Java间的通讯包括从VRML场景到Java代码和Java程序对VRML场景控制[2,3]。

311 从VRML场景到Java

场景中任一事件经路由传到Script节点的

eventIn,浏览器会自动指向关于Script节点的url字段,这样Java代码就开始工作了。

Java通过以下方法访问Script节点的字段:

FieldgetField(stringfieldname:

调用这个方法返回一个名为fieldName的Script节点字段的参考值。

ConstSFBoolgetValue(:

调用这个方法从Script节点获取eventIn字段的布尔值。

FieldgeteventOut(Stringfieldname:

调用这个方法能将返回eventOutfield事件输出字段的参考值转化为相应的Java类。

FieldgeteventIn(stringfieldname:

调用这个方

法将返回eventInfield事件输出字段的值转换为相应的Java类。

通过这些方法就可以实现数据从VRML代码到达Java程序,下面代码实现了从VRML到Java的通讯:

#VRMLV2.0utf8

Tansform{

……

}

DEFAssemScriptScript{

url“TestScript.class”

eventInSFBoolclicked

fieldSFStringsceneEnt“Asseble”

fieldSFFloatf8

fieldSFNodeTheNodeUSETS}

ROUTETS.ctiveTOAssemScript.clicked

importvrml.3;

importvrml.field;

importvrml.node;

publicclassTestScriptextendsScript{

privaeSFStringc;

privateSFFloatf;

publicvoidprocessEvent(Evente

ConstSFBoolv=(ConstSFBoole.getValue(;

If(v.getValue({

C=(SFStringgetField("SceneEnt";

F=(SFFloatgetField("f";

……

}

312 Java程序对VRML场景控制

Java程序到VRML场景控制方法,就是将Java程序从Script节点处获取的事件经进一步的加工,再将在Java程序中实现了操作者逻辑的信息通过方法setValue(反馈到Script节点中,由Script节点的eventOut事件出口通过路由对场景进行控制,最终实现Java程序对VRML场景的复杂控制。

下面的代码实现了数据首先从VRML到达Java程序,Java程序通过代码实现操作者逻辑,最后由“c1setValue(putting”方法通过路由实现了对VRML场景的控制。

#VRMLV2.0

Transform{……

positionDEFvaryPosition{}

}

DEFtouchmeTouchSensor{}

……

DEFScriptingScript{

url“SetPosition.class”

eventInSFTimeget

eventOutSFPostionsetposition

fieldSFBoolonFALSE}

ROUTEtouchme.isActiveTostart.enabled

ROUTEstart.timeToscripting.get

ROUTEscripting.setpositionTOvary.postion

importvrml.3;

importvrml.field.3

importvrml.node.3;

publicclassSetPositionextendsScript{

publicvoidinitialize({

5

2

 2010年第1期          张本生,等:

基于VRML和Java的虚拟装配复杂控制的实现

PrivateSFFloatf;

PublicvoidprocessEvent(Evente

……

c.setValude

d(newposition;

4 典型应用

通过以上研究,实现了某部件的虚拟装配过程。

图2为典型部件虚拟装配实现过程

图2 典型部件虚拟装配实现过程

5 结论

本文研究了基于VRML和Java的虚拟装配复杂

控制,介绍了Script节点的工作机制及其在Java中的

定义;研究了复杂控制中用到的类事件及方法;研究

了VRML和Java的通讯及实现方法;最后实现了典型部件的虚拟装配。

从研究的结果看,实现异地虚拟装配复杂控制是可行的。

参考文献:

[1] BruceEckel.Java编程思想[M].陈昊鹏,饶若楠,译.北京:

机械工业出版社,2005.

[2] 萨日娜.基于VRML和Java的虚拟装配技术[J].计算机

辅助工程,2006,15(1:

12214.

[3] 杜培富,刘衍聪,朱晓娟.基于VRML和JavaApplet的虚拟装配平台的实现[J].机械工程与自动化,2008(3:

50251.

UsingJavaandVRMLtoAchieveComplicated

ActioninVirtualAssembly

ZHANGBen-sheng,LIUHai-guang,HUANGBo

(NavySubmarineAcademy,Qingdao266071,China

Abstract:

Inthispaper,basedonthedefinationandworkingmechanismofScriptnode,theJavaScriptclass,eventsandfunctions

werestudied,andthecommunicationbetweenVRMLandJavawasdiscussedindetail

.Atlast,usingthetheoryabove,thevirtualassemblyofatypicalpartwasachieved.

Keywords:

VRML;Java;virtualassembly

(上接第23页

图6 数据收发操作试验截图

5 结束语

RTL8019AS芯片具有性价比高、连接方便等特点,是进行嵌入式以太网设计时首选的控制芯片,本文利用单片机控制RTL8019AS来实现网络通信,主要解

决了硬件电路连接和以太网驱动程序设计的问题。

该方法在工业自动化系统、远程分散式设备控制、网络家电等方面具有广阔的应用前景。

参考文献:

[1] 黄金生.构建基于以太网及Internet技术的嵌入式WEB

服务器[D].天津:

天津工业大学,2004:

34237.

[2] 袁学文,庞辉肖.以太网控制器RTL8019AS工作原理及

应用[J].电子质量,2003,5(4:

34236.

ApplicationofRTL8019ASintheEthernetCommunication

MAYou-chun1,2,LEIMing1,LIJin-ming1

(1.KeyLabonDynamicMeasurementoftheMinistryofEducationofChina,NorthUniversityofChina,Taiyuan030051,China;2.Instrument

ScienceandPhotoelectricityEngineeringCollege,BeijingUniversityofAeronauticsandAstronautics,Beijing100191,China

Abstract:

ThispaperpresentedaconcreteimplementationschemeofthenetworkcommunicationbetweentheMCUandInternet.Firstly,itdesignedahardwarecircuitofthenetworkinterfacecard,thendescribedeachinterfacecircuit(includingtheinterfacecircuitbetweentheMCUandtheexternaldatamemory,theinterfacecircuitbetweentheMCUandethernetcontrollerindetail,andthendesignedthecorrespondingethernetdriveraccordingtotheinternalstructureoftheRTL8019AS.Finally,thecorrectnessofthedesignwasverifiedbyasimpletransceiverexperiment.Keywords:

Internet;RTL8019AS;ethernetdriver

62・ 机械工程与自动化               2010年第1期 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 英语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1