您现在的位置是:首页通信论文

核心通信期刊发表论文格式范文

发布时间:2014-01-10 16:28:17更新时间:2014-01-10 16:28:58 1

  Quest3D与VB的通信,主要是通过Quest3D中的“ActiveXData”通道和“ActiveXEvent”通道以及VB中的“Quest3DCtrl4”控件来实现的。

  摘要:VB是一种功能丰富、语法灵活的程序语言,已经在建模仿真领域得到了十分广泛的应用。但随着计算机仿真技术的发展,VB仅仅能做二维仿真的这一缺点已经不能适应市场的需求。Quest3D是一种功能强大的虚拟仿真软件,它融合了当今先进的数字图像处理、计算机图形学、自动控制及各类传感器技术等多个分支领域的信息技术来模拟一个虚拟的三维空间,可以使用户无限制地感受三维空间内的事物。这篇文章通过制作一个简单的例子,详细地介绍了一种通过ActiveX控件把Quest3D4.3与VB6.0这两个软件之间建立起通信的方法,以便于我们充分利用这两个软件的长处,制作出更加令人满意的效果。

  关键词:Quest3D4.3,VB6.0,ActiveX控件,数据通信

  1相关通道和控件介绍

  “ActiveXData”通道:如果要实现Quest3D项目文件与其他程序(例如InternetExplorer,VisualBasic或者其他能够加载ActiveX控件的程序)的通信,就需要用“ActiveXData”通道为Quest3D项目文件预留出一个接口。也就是说当我们要在VB中调用某个已经发布出来的Quest3D项目文件并要对其进行某一操作时,在制作Quest3D项目文件时候,就需要把要被操作的通道(一般为表示数值或文本的通道)连接到“ActiveXData”通道上去。

  “ActiveXEvent”通道:“ActiveXEvent”通道是一个事件触发通道,通过此通道,可以在调用Quest3D项目文件的其他程序中触发一个事件,这样Quest3D项目文件与其他程序的通信才能够开始执行下去。

  “Quest3DCtrl4”控件:VB6.0中本身并不含有“Quest3DCtrl4”控件,我们需要进行一些操作来为VB添加“Quest3DCtrl4”控件。通过此控件我们可以在VB中调用Ques3D项目文件,“Quest3DCtrl4”控件包含了一些可以调用的方法用来对Quest3D项目执行相应的操作,包括:

  “SetChannelValue”:用来设置Quest3D项目文件中某一特定通道的数值;

  “SetChannelText”:用来设置Quest3D项目文件中某一特定通道的文本内容;

  “ChannelValue”:用来获取Quest3D项目文件中某一特定通道的数值大小;

  “ChannelText”:用来获取Quest3D项目文件中某一特定通道的文本内容。

  2添加VB6.0“Quest3DCtrl4”控件

  添加VB6.0“Quest3DCtrl4”控件的方法如下:

  2.1安装“Quest3DWebViewers”插件

  1)在桌面或者开始菜单中找到Quest3D4.3程序的图标并右击,在弹出的快捷列表中选择“属性”,打开其属性对话框,点击“查找目标”,打开Quest3D4.3软件的安装文件夹;

  2)在Quest3D4.3软件的安装文件夹中找到名字为“WebInstallerExe”的文件夹并打开,里面包含了一个文本文件和一个exe格式的文件,此exe格式的文件即为“Quest3DWebViewers”插件的安装文件;

  3)双击exe格式的文件,即可进行“Quest3DWebViewers”插件的安装。

  2.2对Quest3DactiveX控件进行注册

  1)打开Quest3D4.3软件的安装文件夹(方法同上),找到一个名字为“Quest3DActiveX4.dll”的应用程序扩展文件;

  2)在“开始”菜单中选择“运行”,输入“regsvr32”,用鼠标点击“Quest3DActiveX4.dll”文件并将其拖动到“运行”窗口的输入框内,如图1所示,点击确定,系统就会出现已成功注册了Quest3DactiveX控件的提示。

  通过以上两个步骤,我们就成功地为VB6.0软件添加了一个名为“Quest3DCtrl4”控件,下面我们就可以制作Quest3D项目文件,然后在VB中利用“Quest3DCtrl4”控件来调用Quest3D项目文件并进行编辑。

  3制作Quest3D场景文件

  1)打开Quest3D4.3,在Templates>Scene列表中拖动一个“SimpleScene”模板到通道编辑界面中,并把“Start3Dscene”通道作为程序开始执行的首通道。运行程序,切换到项目摄像机视图,可以发现场景中包含了一个简单的平面物体和一个三维的文本物体,此文本物体的字样为“3DText!”。当此项目在运行过程中,文本物体的位置是没有办法改变的,我们通过下面的操作,最终可以实现在VB中任意改变文本物体在X轴方向上的位置。

  打开Quest3D4.3,在切换到通道编辑界面中,从Templates>System>Viewers>ActiveX列表中拖动一个“ActiveXData”通道到通道编辑界面中,把其连接到“Start3Dscene”通道的下面。从Templates>Variables>Value列表中拖动一个“Value”通道,替换掉表示文本物体X轴坐标值的通道,更改其通道名称为“Xvalue”,对其创建一个快捷方式,并连接到“ActiveXData”通道的下面。2)从Templates>System>Viewers>ActiveX列表中拖动一个“ActiveXEvent”通道到通道编辑界面中,并把其连接到Start3Dscene通道的下面(如图2所示)。

  3)更改项目通道组的名称为“test”,把项目文件命名为“test”后保存为一份.cgr格式的文件,最后再把项目发布为Quest3Dviewer格式(也就是q3d格式)的文件,此文件的名称也命名为“test”。

  4VB与Quest3D的通信

  4.1给VB工具箱添加“Quest3DCtrl4”控件

  VB中一共有3类控件,即标准控件、ActiveX控件和可插入对象。其中标准控件是在启动VB后就会显示在工具箱中可以直接使用的。ActiveX控件在使用之前是需要添加到工具箱中去的,否则不能在窗体中使用,“Quest3DCtrl4”控件就属于这类控件。

  打开VB6.0,弹出其工作界面,在工具箱窗口的空白处右击,然后在弹出的快捷列表中选择“部件”选项,弹出“部件”对话框,选择“部件”对话框中的“控件”选项,则会出现一个包含了各种ActiveX控件的列表,在此处,勾选“Quest3DactiveX41.5TypeLibrary”选项,单击确定按钮,就为VB的工具箱添加一个可用于调用q3d文件的“Quest3DCtrl4”控件。

  4.2创建VB工程文件

  1)打开VB6.0,建立一个标准的EXE工程文件,此工程包含一个默认的窗体Form1。给窗体Form1添加一个标签控件、一个文本框控件、一个命令按钮以及一个“Quest3DCtrl4”控件。

  2)设置各个控件的属性值如下:

  “Quest3DCtrl4”控件属性中的名称项设为:“Quest3D”。

  标签控件属性中的Caption项设为:“文本物体的X轴坐标值为:”。

  文本框控件属性中的名称项设为:“Text”,属性中的Text项为空白。

  命令按钮控件属性中的Caption项设为“确定”。

  合理调整各控件的大小及位置。最后新建一个文件夹,把创建好的VB工程文件保存到此文件夹中,并把之前做好的Quest3D场景文件(即cgr格式文件和q3d格式文件)也放置到此文件夹中。

  4.3代码编辑

  接下来我们需要编写代码,使得“Quest3DCtrl4”控件能够调用已经做好的Quest3D场景文件并为“确定”按钮添加一个事件过程,这样Quest3D场景文件就可以通过“Quest3DCtrl4”控件在VB中显示出来并且场景文件中文本物体的X轴坐标值与文本框控件中所输入的数值相关联起来。

  双击窗体Form1,弹出其代码窗口,在Form_Load()函数内输入代码:

  此代码的意义为使得“Quest3DCtrl4”控件能够获取Quest3D场景文件的地址并进行调用。

  双击“确定”按钮,弹出命令按钮的代码窗口,对命令按钮添加事件响应的程序代码为:

  上述代码中Quest3D是所创建的Quest3DCtrl4控件的名称;SetChannelValue是为Quest3DCtrl4控件所添加的一个方法,通过这个方法可以对Quest3D程序里面的特定通道改变数值大小;“test”是之前所创建的Quest3D场景程序的通道组名称;“Xvalue”即是表示三维文本物体X轴坐标值的通道的名称,也就是Quest3D项目文件中需要被操作通道的名称;Val()是VB中的函数,作用是把输入到Text文本框控件内的字符串类型变量转换为数值类型变量;Text.Text中前一个“Text”是我们创建的文本框控件的名称,后面一个“Text”表示的是文本框控件的属性,使用Text.Text可以来获取文本框控件内所输入的字符串信息。

  至此,这个简单的场景程序就制作好了。下面运行程序,就会出现如图3所示的效果。在文本框内输入一个数值,点击确定,就会发现三维文本物体的位置在X轴上做出了相应的改变。

  当然,物体位置的改变只限于我们所设置的X轴方向上,要使物体在其他两个轴向上做出改变,只需在Quest3D中添加两个ActiveXData通道,并把表示物体Y轴和Z轴坐标值的通道创建快捷方式,连接在上述的两个ActiveXData通道中,最后在VB编程中添加相应的控件和事件过程即可。

  参考文献

  [1]路朝龙.Quest3D从入门到精通[M].北京:中国铁道出版社,2012.

  [2]尼春雨,舒雄.VisualBasic基础与案例开发详解[M].北京:清华大学出版社,2009.

  [3]杨忠宝,康顺哲.VB语言程序设计教程[M].北京:人民邮电出版社,2009.


转载请注明来自:http://www.yueqikan.com/tongxinlw/28942.html