1引言近几年来,具有巨大开发潜力的Web技术因飞速的发展而日益受到各行业的重视。Web提 供全球的网络覆盖,是远程技术培训的重要发展方向。基于Web的远程技术培训通过互联网向远 程终端上的用户提供不受时间、地点限制的教育,充分利用了Web在超文本导航、多媒体性能、 培训范围等方面的优势。本文研究的基于Web环境下的数控铣削仿真系统,将JavaAppl et用于可视化界面开发、动画制作、作图等方面,提高了人机交互能力,有助于用户形象理解数 控程序G代码和刀具补偿等基本概念,激发用户的学习兴趣,解决目前远程数控技术培训中缺乏实 验环境的难题,必将促进培训质量的提高。2系统设计2.1系统的网络拓扑结构以校园网为基础 ,数控铣削仿真软件安装在校园网内的服务器上。服务器的地址对校外是开放的。各网络用户均可 登陆服务器网站要求网上服务而不受地点的限制。系统的网络拓扑结构见图1。2.2系统的结构 模式系统采用了目前流行的浏览器/服务器(B/S)的模式。浏览器/服务器是一种基于超链接 (Hyperlink)、超文标记语言(HTML)、Java的三级或多级客户机/服务器, 是一种全新的体系结构。系统利用现有的Internet/Web技术,将用于仿真的Java 程序放在Web服务器上,Java程序做成Web页的形式。数控铣削仿真系统分为客户端和服 务器端。服务器端负责管理和协调与用户之间的协作,是系统的核心,主要功能是监听客户端所提 出的要求,根据客户端的请求,进行应答,并把应答的信息通过网络发到客户端。客户端收到回答 信息后,再将结果显示给用户。客户端使用Web浏览器来访问Web服务器并运行其程序,不需 要客户端软件,维护、升级方便。B/S模式开发效率高,周期短;任何一台能够上网的机器,只 要装有浏览器,均可作为客户端访问系统,可跨平台操作;系统采用公开的标准和协议,具有良好 的开放性和可扩充性。2.3系统的运行环境及开发平台图1系统的网络拓扑结构图2数控铣削仿 真系统程序输入界面客户端:各种操作系统均可且具备上网条件。服务器端:操作系统采用Win dows2000Server作为网络服务器。开发工具:Java,Dreamweaver Mx等。本系统以网站形式置于服务器端。整个网络用Marom-dia公司的网页编辑软件D reamweaverMx开发。仿真程序用Sun公司的网络编程语言Java编写。Java 语言具有跨平台、跨操作系统等特点,具有丰富的动画表现能力,安全性和稳定性也很高,特别适 合于网上仿真软件的开发。Java语言的最大优点是“一次编译、随处运行”,这使Java语 言编写的程序能在不同软件、硬件平台上运行,无须考虑机型的不同。因此可以直接用Java语 言开发计算机远程技术培训系统;只要运行支持Java的WWW浏览器,就可广泛共享基于网络 的培训系统,形成一种分布式培训环境,使远程培训成为现实。应用Java语言编写网络应用程 序时,不必编写大量底层通信代码,可以集中力量开发上层程序,大大提高了开发效率。Java 、Web和Internet有共同的网络通令协议TCP/IP,故基于Java和Web的本 仿真系统既能在局域网上运行,又能在广域网和Internet上运行。3系统实现的关键技术 为达到使用户真正参与的效果,系统必须实现人机的动态交互和铣削仿真的动态演示。3.1人机 动态交互的实现系统采用Java的小应用程序(
JavaApplet)技术和事件驱动(ev ent-driven)机制,实现了人机动态交互。JavaApplet由特定的HTML标 记嵌入到Web页面中。当用户请求浏览某个页面时,相应的web页面以及JavaApple t一起下载到客户端,在浏览器中被解释运行并显示执行结果,而不是在服务器端执行后将结果返 回。在JavaApplet中,通过图形用户接口(GUI)为媒介,用action()方法 、handleevent()方法捕捉用户事件,对用户事件进行响应使其执行相应的代码。这 种事件驱动(event-driven)的功能使程序和用户之间进行动态交互,使仿真系统成 为一种真正的交互系统,为远程技术培训提供更灵活的服务。图2是利用JavaApplet开 发的数控铣削仿真系统程序输入界面,具有较强的人机交互特点。(1)界面分为提示区域、交互 区域、代码输入区几个部分。整个界面具有可视化特点和事件驱动功能。(2)按下清空按钮,就 可清除输入的数控程序,方便用户使用。(3)按下代码区下方六个按钮中的任何一个,可使系统 自动载入预置的正确的数控程序G代码。(4)在代码输入区改变某些参数,或刀具半径的值,按 下录入按钮,就重新计算刀具运动轨迹,具有很强的灵活性和交互性。(5)用户按下仿真按钮, 弹出仿真演示区(见图3)。按下该区的铣削仿真按钮,就可动态演示刀具运动轨迹和铣削过程。 3.2刀具运动的实现为了实现铣削过程,必须模拟铣刀运动变化。铣刀的运动是基于动画原理实 现的。在Java语言中有两种方法可用于动画的生成。第一种方法是创建或是获得一系列的画像 ———这些是物体在固定时间间隔的不同位置的瞬态图,然后顺序显示图像。第二种方法是创建或 获得要使其移动的物体的图像,以固定的时间间隔在不同的位置上显示它,在显示任何指定位置上 的移动物体之前,必须擦除原来位置上的图像。第一种方法由于需要重新绘画整个显示区域,会产 生严重的闪烁效果,所以采用第二种方法。具体实现借助于Java中的SetXORMode( )绘画模式。SetXOR-Mode()允许绘制和擦掉现有图形而不干扰其下面的图形,即X OR模式允许图形操作可以在现有图形之上执行而不干扰受影响区域。XOR模式还有一个重要特 点:如果在XOR模式连续两次执行复制图像操作,其下面的图像是完全不受影响的。利用XOR 模式这一特点,在显示指定位置上的刀具图像之前,在原来位置上再复制一次刀具图像,就可擦除 原来位置上的刀具图像,实现刀具运动的动画效果。3.3过程仿真性的实现为了实现过程仿真, 必须根据用户输入的加工信息来图3数控铣削仿真系统仿真演示界面图4数控铣削过程仿真流程图 了解刀具运动情况。综合利用链表和字符串两种数据结构来编制程序可以很方便的分析加工信息。 链表能够按所需元素数量扩展容量,插入与删除对象很方便,采用链表便于解决数控G代码长度未 知时加工信息的存储问题。分析数控程序时将G代码整体视为一个大字符串。两个相邻行标识符“ NXXX”(“NXXX”中XXX为数控程序行顺序号)之间的数控G代码视为一个小字符串, 即子串。经过分解将庞大的G代码分为一个个子串。数控G代码的每个子串,都提供了轮廓轨迹控 制点坐标、插补类型、刀补类型、进给速度等信息,它们是一一对应的。即轮廓轨迹上的一个点, 有唯一的坐标、唯一的进给速度、唯一的刀补类型、唯一的插补类型。这些相关信息,分别存储在 链表当中,链表长度相等。根据链表中的信息,计算刀具运动轨迹控制点坐标,并传给相应线程, 实现铣削过程的动态仿真演示。其流程如图4。3.4擦除效果的实现为了产生加工余量被切除的 仿真效果,需要利用Java语言中α合成(AlphaCompositing)规则。在标准 RGB颜色模型中,每种颜色都由红、绿和蓝色组成。当一个图像覆盖在一个现有图像上时,透明 像素不会使下面的像素变模糊,而半透明像素则会与下面像素混合。在Java2DAPI中,透 明度由一个α通道(AlphaChannel)α描述。在具有α通道(AlphaChann el)的RGB图像中,每一个图像由4个分量定义,三个颜色分量,红、绿和蓝,还有α分量。 α分量用来说明透明度,它介于0(完全透明)和1(完全模糊)之间。在一个目的图像上绘制一 个源图像时,源图像的每一像素及目的图像中相应像素的颜色分量将与它们的分量相乘,然后结果 图像根据相应的α合成规则着色。Java中使用的α合成规则由Java.awt包中定义的A l-phaComposite类定义。Graphics2D定义SetComposite( )方法,该方法用AlphaComposite自变量来设置在绘图状态下使用的合成规则。本 仿真软件采用了其中的SRC_OVER规则。在该规则中,源色的分量为as,as为源像素的 α分量。目标颜色分量为(1-as)*ad,ad为目标像素α分量。这样的视觉效果是源色与 目标色的混合,偏重于源色。尤其当as为1时,目标色根本不被考虑。如果as=0时,源像素 完全透明,而目标色没有改变。利用上述思想,可以产生加工余量被切除的仿真效果。程序代码如 下:Privategraphics2dg2d;intrule=AlphaComposi te.SRC_OVER;doublealpha=0.5;g2d.setComposit e(AlphaComrposite.getInstancerule,(float)al pha).仿真软件利用Java中的XOR模式连续两次复制刀具图像,使刀具走过的地方仍为 背景色,产生了刀具移动的效果,同时利用SRC_OVER组合规则,设置刀具图像的alph a值为0.5,使用背景色再复制一次,覆盖掉毛坯颜色,就产生加工余量被切除的仿真效果。4 结束语经实践论证,基于Web环境下的远程技术培训系统运行可靠、稳定。借助于网络,实现了 资源共享,改善了获取知识的环境,同时解决了目前远程数控技术培训中缺乏实验环境的难题。系统通过动态交互、可视化的形象手段,激发了学习兴趣,获得了良好的培训效果,是远程数控技术培训的有效辅助手段。基于Java和Web技术的数控铣削仿真系统设计及实现@张建$哈尔滨工业大学机械制造及其自动化系!哈尔滨150001
@富宏亚$哈尔滨工业大学机械制造及其自动化系!哈尔滨150001
@朱晓明$哈尔滨工业大学机械制造及其
More abstracts about the 基于Java和Web技术的数控铣削仿真系统设计及实现