d.网络服务软件
通过局域网(LAN)连接微机和工作站的CAD系统已经成为90年代CAD软硬件配置的首选方案。网络服务软件为这种系统在网络上传递和共享数据创造了条件。早期最常用的网络服务软件是Novell公司的NETWARE,它包括网络操作系统、文件服务系统、通信软件等。在Windows2000环境下可以直接支持绝大多数网络互连服务。通过TCP/IP及Internet,可以实现异地信息交换和网站浏览。
但是,真正实现异地设计和异地制造还需要进一步的软件支持。异地设计和异地制造最好的支撑环境是Internet,目前有关的技术还不够成熟,但其发展的趋势已经相当明显,相关的技术有C/S计算模式、Web技术、对象组件技术、通用对象代理技术等,建立在这些技术上的新一代CAD/CAM系统将支持跨企业的信息集成。
(3)应用软件
应用软件是在系统软件、支撑软件的基础上,针对某一专门应用领域的需要而研制的软件。这类软件通常由用户结合当前的设计工作自行开发,例如模具设计软件、电器设计软件、机械零件设计软件、飞机气流分析软件等。能否充分发挥CAD系统的效应,应用软件的开发是一个关键,也是CAD技术人员的主要任务。
开发应用软件是在已有的CAD系统环境的基础上进行的,不是从头做起。因此,在开发应用软件之前,了解CAD系统环境是重要的工作。当应用软件完成后,如果它具有典型性和推广价值,也可以把它转化为支撑软件。
专家系统是介于应用软件和支撑软件之间的一种软件。在设计过程中有相当一部分工作不是计算和绘图,而是依靠领域专家丰富的实践经验和专门知识,经过专家们的思考、推理和判断才能解决。为计算机模拟专家解决问题的工作过程而编制的智能型计算机软件称为专家系统。在人工智能技术发展的基础上,专家系统技术有了迅速发展。80年代末,出现了一些用于产品方案设计的专家系统,例如工业汽轮机方案设计专家系统、圆柱齿轮减速器设计专家系统,以及面向对象和面向实例的专家系统开发工具DEST等。CAD系统将运用专家系统的概念和方法,进一步向智能化、自动化方向发展,所以近年来知识化的CAD系统得到研究人员的关注,但是,还必须克服一系列困难才能形成具有实用价值的产品。
4.3.2.3交互技术和用户接口
计算机图形表示的几何模型设计和分析是CAD系统的主要特征。CAD系统中的坐标输入、图形拾取、坐标变换都要用到交互技术,而图形输出、输入的处理又是交互的基础。良好的用户接口可以大大缩短人与计算机之间的距离,统一不同计算机平台的交互风格,缩短CAD应用系统的开发周期。
(1)用户接口的常用形式
面向应用的用户接口通常有以下3种形式:
a.子程序库
子程序库是扩展的过程和函数集合,可以被1种或者多种高级程序设计语言所调用。这类子程序库有国际标准化组织(ISO)公布的图形核心系统GKS、GKS-3D、程序员层次交互图形系统PHIGS,MIT发布的Xlib,美国SGI公司的GL和OpenGL库等。子程序库的功能主要是:基本图形输出,例如点、直线、圆弧、多边形、自由曲线、自由曲面、汉字生成等;坐标变换,例如平移、旋转、比例、对称、窗口视图变换、投影变换、二维和三维剪裁等;图形设置,例如颜色、线型、填充方式、字体、光标、位图等;输入输出事件管理;真实感图形的生成;用户界面,例如菜单、命令行输入、对话框、提示、出错信息处理等。子程序库提供了不同计算机和操作系统下基本统一的接口方案。接口形式具有使用方便、易于扩充、可充分利用高级程序设计语言的特点,能支持用户绘制所需要的图形和各种交互处理。
b.专用语言
最典型的专用语言是Post Script(PS语言),这是解释执行的语言,其语句由关键字(命令)及其参数组成。解释程序将输入的一行语句放在行缓存中。当接收到行结束符时,该语言的编译器就对行缓存的内容进行解释。首先拼出关键字,例如color、line等,并检查关键字的正确性;再转移到相应的关键字语句去拼接参数,检查参数的正确性;若参数正确,即可调用相应的处理程序生成数据或图形。PS语言在出版系统、照排系统中有广泛的应用。
c.交互命令
交互命令用于在人与计算机之间传递信息。程序包中每个子程序的功能及专用语言中有关的语句均可按命令的方式提供给用户使用。交互式用户接口就是基于某种接口模型,实现用户所需要的输入、选择、拾取、增、删、改的操作,是用户接口中应用最普遍、效率最高的形式。随着交互设备和交互技术的发展,人们对计算机提出的“所见即所得”的要求已基本实现。
(2)交互技术
交互技术是完成交互任务的手段,其实现在很大程度上依赖于交互设备。从逻辑上说,交互设备有定位、键盘、选择、取值和拾取5种。最基本的交互任务有定位、字串、选择和取数。对给定的交互任务,往往可以用不同的交互技术实现,例如,一个选择任务可以用鼠标点菜单,也可以用键盘输入选项的名字,还可以用功能键来实现。针对不同的交互任务,主要有以下5种交互技术:
a.定位技术
定位技术用于指定一个坐标,有一维、二维、三维坐标。定位方法有3种:图形输入板或鼠标控制光标定位,键盘输入坐标值,键盘控制光标定位。应用定位技术时需要考虑的问题是使用用户坐标系还是设备坐标系、光标的形状、定位速度和精度等。为了使定位更加方便,还可以使用网格点、辅助线、导航技术等。
b.定量技术
用户经常需要输入一个数值或指定一个数量,在图形系统中,它常表示一个大小、比例、长度、面积、体积等。定量最基本的办法是用键盘输入一个数值,也可以用定位器作两次定位,通过两个定位点之间的距离或方位关系来描述所需要的量,例如长度、比例、角度等。
c.文本技术
文本技术需要确定字符串的长度及内容。实现文本的技术有:键盘输入字符,菜单选择字符,语音识别或笔画识别等。在窗口系统中,常用专门的单行和多行文本编辑窗口来支持文本输入。
d.橡皮筋技术及拖动技术
橡皮筋技术主要针对变形类的要求,动态、连续地将变形过程表现出来,直到产生用户满意的结果为止。在图形输入过程中,使用橡皮筋技术可将待输入的图形跟随定位器的移动动态地显示出来,例如画直线时的橡皮筋线、画圆时的橡皮筋圆等。拖动技术是将形体在空间的移动过程动态地、连续地表现出来,直到满足用户的要求为止。该技术常用于部件的装配、动态轨迹的模拟等。实现橡皮筋及拖动技术常用两种方法。一种方法是根据定位器的当前位置与前一位置之间的偏移,计算所需画出的形状并给出绘制该图形的过程。定位器移动时,系统自动调用有关程序,画出或者删除所选择的图形。另一种方法是用双缓冲区的方法,即根据定位器的位置在后台画出所需的图形,再交换到前台。
e.选择和拾取技术
选择主要指对命令和选项的确定。命令或选项一般用菜单或者图形区域来表示。选择技术有:定位器移动光标,键入命令名称或缩写符,功能键或热键选择,语音识别。拾取通常针对图形对象。图形拾取是交互式用户接口中的重要任务之一。在交互图形系统中,对图形增、删、改的操作都是以拾取图形或者拾取图形的某一位置点为基础的。从屏幕上拾取图形,表面现象是将该图形变色或增加亮度,实际意义是从存储用户图形的数据中找到该图形的地址。这项表面上简单的操作实际上需要进行大量的拾取计算。拾取的图形包括线条、多边形区域、字符等。对线条的拾取常常简化为:直线段穿过正方形选择靶区的计算;曲线离散成直线段进行计算;多边形区域的拾取需要计算拾取点是否在区域内部;字符串的拾取可按照字符串显示所占用的区域计算,当字符串用矢量显示时,也可以对构成字符的每个笔画进行直线拾取计算。为了加速拾取计算,可采取以下措施:用过滤方法排除不可拾取或者无关的图形;用最小包围盒作区域判别以减少求交计算;将基本图形拾取方法固化由硬件提供支持。
(3)用户接口管理系统(UIMS)
基于图形的窗口系统例如微机版Windows、工作站的Open Windows、Motif和ISIR等,以其丰富的交互功能而被CAD软件广为采用。但是,这些系统都有自己的函数库,而且一般都比较复杂,熟悉任何一个系统都需要很长的时间,更不用说在不同的系统之间移植应用程序了。这对于CAD的推广应用很不利。用户接口管理系统(UIMS)集中了不同窗口系统的共性,把窗口管理、图形输出、输入交互、对话框、菜单、命令等流行的基于图形的应用软件特性集于一体,并能够在多平台上做到源程序级兼容,特别适合于绘图系统、CAD/CAM系统的研究和应用软件开发的需求。
a.UIMS的地位和作用
各种窗口系统的应用程序接口都很复杂,而且互不兼容。例如在Motif环境下开发软件,需要熟悉Xlib、Xtoolkit、Xm等函数库和工具库;而在Windows环境下开发,则需要全面掌握应用程序接口(API)或模块化特性结构(MFC)体系及一些开发工具。除非专业从事软件用户接口开发,否则,掌握这些知识是吃力不讨好。不断更新的应用软件开发平台及编译系统为开发高质量应用程序提供了便利,但也增加了在不同平台间移植应用程序的难度。
解决以上问题的一个有效办法是设计一个在多个软硬件平台上都能够支持用户接口的软件(中间件),让应用程序的开发人员编制与设备无关的程序。这样做还有如下好处:统一软件界面风格和规范,便于测试和编制技术文档;便于系统集成和源程序共享;便于对学生的基本功训练;大幅度提高编程效率。UIMS可以作为CAD/CAM系统的界面框架,它综合不同平台的界面风格并加以简化,以实现统一的调用方式。
b.UIMS的主要功能
UIMS对应用程序与操作系统之间的接口进行统一管理。它提供了一个统一的窗口框架,用户只需要设计应用程序自身的命令并实现它,无须关心消息(事件)的处理过程、菜单的实现等问题,大大提高了开发速度。UIMS的结构简单,易学易用,函数较少,一般只需二三天就可掌握。UIMS表现为一个程序库和几个用于处理图标和字符串的工具。程序库可以支持如下工作:管理菜单和命令,键盘及鼠标输入,绘图区和窗口管理,对话框交互,图形文字输出和颜色设置,管理提示及出错信息。UIMS支持以下平台:微机Windows NT或Windows 98,工作站Open-Window环境下xview接口风格,工作站Motif或IRIS系统的接口。
c.UIMS的编程规范
为了保证应用程序能够在不同的平台上编译,并从程序质量、可靠性等方面考虑,开发人员应该遵循以下编程规范:严格遵守AnsiC的编程规范;强调函数的原型说明,以确保函数参数在编译时的正确匹配;内存申请应使用UIMS提供的函数,以便于对内存使用中的错误进行调试;函数、常量、变量的命名风格要一致,并且不要与UIMS的方式混淆,以便于阅读;注意数据类型的使用;注意二进制文件的存取方式,保证在UNIX和DOS环境下的兼容性;程序应有足够的注释。在开始编程前,应该按照UIMS建议的步骤和格式编制程序设计说明书、使用说明书和测试计划。
窗口标题和菜单一般要求用户在系统初始化时设置,UIMS提供了十分方便的接口。信息输出窗口用于输出执行过程中的各种信息,当需要编辑文本或建立专门的信息输出窗口时,还可以创建文本窗口,UIMS提供了一组函数对其进行操作。
当鼠标停留在主窗口内部的绘图区及命令行时,可以通过键盘输入命令和数据。
命令也可以通过菜单或点取图表来输入,UIMS将菜单和图标命令转换为命令行的命令。应用程序在执行中永远处在等待命令和解释命令的循环中。
绘图区用于输出图形和图形交互。系统首先提供一个主绘图区,它包含4个分区,代号为0~3,用户根据需要可用Xu Set Layout函数将窗口设置成单独显示1个分区或者同时显示4个分区。另外,还可以用Xu Create Window函数创建新的绘图窗口并进行管理。对应用程序开发者而言,只需完成以下工作即可生成一个应用程序框架:
第1步:设计应用程序的命令集以及相应的菜单体系,同时编写使用说明书的初稿。
第2步:按cmd.h文件的格式要求定义各命令与相应子程序的对应关系。
第3步:按照菜单文件的格式编制菜单文件。
第4步:编写Desk TopInit函数,完成应用程序的基本初始化工作,包括主窗口标题、菜单文件调入、绘图窗口设置、应用程序全局变量初始化等,该函数在主窗口初始化时被UIMS调用。
第5步:完成所有命令的函数编制工作。