基于ACIS几何平台的CAD软件开发的研究

2010-08-23 08:33田建立何留杰
制造业自动化 2010年7期
关键词:曲面总线工具

田建立,何留杰

TIAN Jian-li, HE Liu-jie

(黄河科技学院,郑州 450006)

1 CAD几何平台概述

CAD技术从诞生至今己有三十多年的历史,其建模技术经历了二维绘图、线框模型、自由曲面模型、实体造型、特征造型等重要发展阶段,其间还伴随着参数化、变量化、尺寸驱动等技术的融入。CAD系统的开发正伴随着计算机软硬件技术的高速发展向着更高、更深层次方向发展。当今比较流行的CAD几何平台很多,主要有ACIS,PARASOLID, CAS.CADE,Pelorus,DESIGNBASE等。

CAD几何平台正在向着更深、更高层次发展,同时不断融入计算机软件新技术,并呈现出开放化、多元化发展趋势。支持多种主流的计算机操作系统平台,包括Windows 98&NT,Apple Power Macintosh,UNIX工作站(如Sun,SGI,DEC Alpha,HP 9000,IBM RS/6000等)。面向对象技术具有封装性、多态性、继承性,使对象模块化、即插化,从而提高应用开发和软件维护效率,增强了代码的可重用性和互操作能力,最终达到改善应用整体质量的目标[1]。

2 ACIS概述

2.1 ACIS的发展历程

ACIS是美国Spatial Technology公司推出的面向对象的三维几何造型平台,它集曲面、线框和实体造型于一体,并允许这三种表示共存于统一的数据结构中。ACIS是面向对象的由35个DLL组成的C++库,为各种3D造型应用开发者提供了丰富的复杂模型构造与操作功能,如过渡、扫掠、蒙皮、放样、覆盖、等距、分割、缝合等等。Spatial Technology公司成立于1986年,到目前为止,ACIS 3D Toolkit在世界上已有380多个基于它的开发商,并有220多个基于它的商业应用,最终用户已达一百八十万家左右。许多著名的大型系统都是以ACIS作为造型内核,如AutoCAD,CADKEY,Mechanical Desktop,Bravo,TriSpectives,TurboCAD,Solid Modeler,Vellum Solid等[2]。

2.2 ACIS的几何总线

图1 ACIS几何总线

ACIS几何总线由其开放体系结构和它的SAT构成,其核心提供了一个几何总线(ACIS geometry bus),以连接其它的外壳(Husk)与应用程序(如图1所示)。它使线框、曲面、实体的几何与拓扑模型数据能够自由交换,当SAT模型在总线上流动时,不需任何翻译与解释。产品模型从概念设计到制造过程,可能使用多个商家提供的应用,通过几何总线摆脱了数据翻译的负担,无须为模型的互操作做任何工作。

3 ACIS的应用接口

3.1 ACIS的C++接口

如图2所示,基于ACIS的C++接口有3个:DI函数、API函数和C++类。开发者可以通过创建自己的API和类来扩展ACIS的功能[3~5]。

3.1.1 DI函数((Direct Interface)

DI函数提供了不依赖于API而对ACIS造型功能可直接访问的接口,与API不同的是,这些函数在各版本中可能有变化。DI函数并不能访问ACIS中的所有功能,它们通常用于那些并不改变模型的操作,如查询等功能。另外,DI函数提供了底层样条库的接口。

图2 C++应用与ACIS的C++接口

3.1.2 API函数(Application Procedural Interface)

API函数提供了应用与ACIS间的主要接口。应用通过调用API函数创建、修改或恢复数据,API函数将造型功能与应用支持特性集成起来,应用支持特性如变量错误检查和回溯。当在API例程中发生错误时,ACIS可立即自动回溯到调用此API例程前的状态,从而保证模型不会崩溃。无论ACIS底层的数据结构或函数如何修改,这些API函数在每一版本中均保持不变。

3.1.3 类(Class)

类是ACIS以C++类的形式提供的开发接口,可定义模型的几何、拓扑以及实现其他功能。在应用中,可直接通过类的公共(public)数据成员和保护(protected)数据成员以及成员函数(member function)与ACIS相互作用。开发者也可以根据自己系统的需要从ACIS类派生出自己的应用类,类接口在各版本中可能有变化。

3.2 ACIS的MFC接口

MFC由将近200个C++类组成。MFC提供了许多Windows程序所共有的任务,为代码重用提供了便利。应用从MFC继承所需的功能。基本类库所提供的界面在很大程度上将实现细节隐藏起来,因此使用MFC的应用都非常精练,并且更易于将基于MFC的应用升级到新的Windows版本。在近200个MFC类中,有4个类对ACISMFC是极其重要的,即Cdocument,Cwnd,CwinApp和ColeServerItem。ACIS AppWizard从这4个类派生自己的类。这些新类的不同之处在于它们有指向ACIS MFC类的指针,从而这些指针指向ACIS的类。在图3中ACIS AppWizard创建了“My”工程。从MFC类派生的4个新类是CmyDoc,CmyView,CmyApp和可选的CmyServer。

图4中AMFC(ACIS Microsoft Foundation Class Component)是专门为Microsoft Windows平台提供的与MFC的接口,其中大部分的类是从MFC派生出的。此外,ACIS给出了一些工具类来提供多数应用所需的操作,如camera movement(模型观察),mouse movement(鼠标消息响应),dragging operations(拖曳操作),Boolean operations(布尔操作),drawing lines,circles(画线、圆),and fillets(倒角)等等。

ACIS MFC的类和函数有双重作用,一是为基于MFC的ACIS应用程序提供初始的框架结构,二是提供ACIS与MFC的接口。由ACIS MFC提供的工具类都是从MouseTool派生而来的,而MouseTool又是从input_event_handler派生的。input_event_handler类处理鼠标按下,抬起或双击事件。大多数的工具同时还与rubberband_driver类集成来处理鼠标移动事件。

图3 ACIS MFC与Microsoft Foundation Class的关系

ACIS MFC中提供的工具用来创建几何模型(画线、圆等)及管理视窗。工具栈用来指定激活的工具,同时可以将工具操作中断和悬挂起来以执行其它操作。所悬挂的操作在某个时刻可以恢复。工具栈的管理通过ACIS MFC的工具功用函数实现。

图4 工具类的派生谱及功用函数

3.3 ACIS的Scheme接口

Scheme是一种解释性的语言,由LISP派生而来。它提供快速、易于实现的原型实现功能,其运行效率非常高,许多基于ACIS的开发人员使用Scheme后感到许多情况下无需再把其Scheme代码翻译成C++或其他编译语言代码。

由于Scheme是解释性的,所以其过程没有编译和调试阶段,并且可以用来培训。Scheme尤其适合于控制像用户界面指令处理这样的任务。Scheme接口是一个允许基于Scheme的应用和ACIS功能交互的函数集,通过ACIS Scheme解释器处理Scheme命令。图5表示了Scheme应用构建于ACIS之上,通过ACIS Scheme解释器与造型平台交互的情况。与ACIS其他部分的交互用C++调用。

图5 Scheme与ACIS的应用接口

4 ACIS的主要功能

ACIS产品由两部分构成:核心模块(ACIS 3D Toolkit)和多种可选模块(Optional Husks)。在核心模块中提供了基本、通用功能,而在可选模块中提供了一些更为高级的和更专用的功能,其主要功能如下[6]:

4.1 曲面构造技术

可通过一个线框或一组边生成曲面,其方法包括覆盖(covering)、蒙皮(skinning)、放样(lofting)、网格曲面(net surfaces)、可变形曲面(deformable surfaces)。可变形曲面是ACIS可选模块DS(Deformable Surface component)中提供的功能;变形造型是一种交互定义自由曲线曲面的方法,而不是一种曲线曲面的表示方法,它是一种基于能量优化策略的方法,用户可通过施加负载和约束来修改曲线或曲面的形状。

4.2 求交、布尔运算和缝合

求交器(intersector)用于判断曲线和曲面是否相交并可求出交点。求交是通过底层的C++类实现的,用于对模型的几何进行操作,可进行曲线和曲线、曲线和曲面、曲面和曲面的求交运算;布尔运算(Booleanoperations)包括并、交、差运算;缝合(stitching)是指通过共边或共顶点缝合两个体。

4.3 过渡

ACIS具有强大而丰富的过渡功能,标准的过渡功能内置在ACIS核心模块中,而更高级的过渡功能在可选模块Advanced Blending Husk(ABH)中提供。

4.4 模型分析

ACIS的模型分析功能主要包括:对象关系(object relationship)、物理特性(physical properties)、单元拓扑(cellular topology)、几何分析(geometric analysis)和光线测试(ray testing)等。

4.5 显示与交互

ACIS的显示方式包括线框图、多面体图、多面体消隐图、光照图。在交互方面提供了拾取和过滤(picking and filtering)、橡皮线(rubberbanding)、网格管理(grid management)等功能。

5 结论

本文介绍了CAD几何平台ACIS的概况及发展趋势。ACIS几何平台的体系结构包括ACIS几何总线,ACIS的开发接口一一C++接口、MFC接口、Scheme接口,分析了ACIS的主要功能。为在ACIS上开发超人2000CAD系统提供了基础。

[1]Faux I D,Pratt M J.Computational Geometry for Design and Manufacture[M].Ellis Horwood,1979.

[2]Duncan J P,Mair S G.Sculptured Surfaces in Engineering and Medicine[M].Cambridge University Press,1983.

[3]Duncan J P,Law K K,Computer-Aided Sculpture[M].Cambridge University Press,1989.

[4]周儒荣.关于软件国产化的认识与实践[J].航空制造工程,1991,2:6-7.

[5]周儒荣.CAD/CAM软件开发的回顾与思考[J].航空制造工程,1992,10:25-26.

[6]成基华,范玉青,袁国平,等.CAD/CAM开发平台及其发展趋势[J].计算机辅助设计与图形学学报,2000,12(2):154-159.

猜你喜欢
曲面总线工具
简单拓扑图及几乎交错链环补中的闭曲面
波比的工具
波比的工具
准备工具:步骤:
一种基于CAN总线的误码测试方法
第二型曲面积分的中值定理
关于第二类曲面积分的几个阐述
“巧用”工具
基于曲面展开的自由曲面网格划分
CAN总线并发通信时下位机应用软件设计