e-works数字化企业网  »  文章频道  »  产品创新数字化(PLM)  »  CAD

CAD软件二次开发方法的分析与探讨

2017/7/19    来源:互联网    作者:沈刚      
关键字:CAD  二次开发  AutoCAD  
本文较详细分析与探讨了CAD系统二次开发的相关概念和基芩原理,着重介绍了AutoCAD系统的三种二次开发工具。

    4.2 用户化界面技术

    用户化界面是指在通用化CAD系统中嵌入部分二次开发T作的接口和界面,这种二次开发界面将便于系统的操作和维护。对于系统的实用性和应用效果具有重要的作用。用户界面的好坏是评价一个软件性能的重要标志之一。

    对于从国外引进的CAD系统有时候还包括界面的汉化问题。从菜单、提示以及错误信息到标准的全方位汉化可使企业充分利用CAD系统,并将其转化为生产力.提高企业的设计开发能力。

    4.3 二维工程图的自动生成技术

    现有知名CAD系统在三维模型转换为施工图的功能方面,都具有很强的二维参数化功能,可以自动高效的生成所需要视图。但是对于一些复杂结构.存在着不能完整表达产品信息的问题;国内大多数生产厂家仍是按施工图样进行制造,这就需要对系统二维工程图的自动生成进行二次开发。国外通用的CAD系统在常用符号、标注等方面都是依照国际标准,与国家标准有所不同,如尺寸标注、形位公差符号、表面粗糙度符号等,这就需要对其符号进行二次开发,处理程序可以通过软件自带的二次开发语言,也可以利用其他高级语言编制。

    4.4 产品设计智能化开发技术

    CAD智能化是把人工智能的思想、方法和技术引入传统的CAD系统中,分析归纳设计/工艺知识,模拟人脑推理分析。提出设计/工艺方案,从而提高设计,工艺水平,缩短周期,降低成本。现在的CAD系统是人机交互丁作,把需要由知识和经验决策的设计问题留给用户,使产品设计水平受到工程师学科知识和设计经验的制约, 开发基于通用化CAD系统的智能CAD(Intelligen CAD)可以克服这一缺点,提高设计质量和效率。它的技术核心就是以专家知识和经验建立专家系统(Expe~System,ES)模型,采用规则控制下的产生式系统和启发式推理来实现系统的智能化。

    4.5 特征映射器的开发技术

    目前优秀的机械设计自动化软件都是基于参数或变量化的特征建模技术。将CAD/CAM集于一身,特征在不同的应用领域着不同的特征模型.设计特征不可能与制造特征完全一致,这就会导致特征信息的歧义与混乱。因此需要一种特征映射(FeatureConversion)机制来完成特征信息由设计域向制造域的转化,即特征映射器。特征映射器可自动将CAD系统的设计特征转变为CAPP系统的制造特征,从而实现CAD/CAPP的有效集成,其中特征提取(Feature Extraction)和特征识别(Feature Recognition)是特征映射器的技术关键。

    5 CAD软件提供的常见二次开发手段

    应用软件提供二次开发方法的好坏.主要是看这种二次开发方法是否合理公开应用软件内部的结构.以及这种开发方法的易用性和效率。常见的手段有:

    5.1 函数库形式(普通DLL和API)

    提供函数库和基于函数库的API接口是最直接的再开发手段,Microsofl windows API就是典型的例子。

    函数库的使用有两种方式.一种为应用程序在其内部使用函数库,可在无CAD系统的情况下运行,但欠缺灵活性,无法访问CAD系统和充分发挥CAD系统的性能。

    另一种为在CAD 系统内部加载函数库, 这种方式能扩充CAD系统的功能和进行界面定制.但有一定限制.只能在CAD系统内运行。

    传统的具有平面结构的API函数.为二次开发和应用程序中数据的有效管理带来了复杂性。现在,包括Microsoft在内的许多软件供应商普遍利用面向对象技术对传统的API进行封装.以降低开发的复杂性。

    5.2 ActiveX Automation

    ActiveX Automation是建立在COM 基础之上、由OLE Au.tomation(0bject Linking and Embedding Automation)发展来的.其的核心技术是允许一个应用程序操作另一个应用程序。ActiveX.Automation并不是直接获取及处理数据.而是间接地通过暴露对象的方法和属性,利用对象的方法和属性获取、设置及处理数据。

    ActiveX Automation包括两个方面:Automation客户和Au.tomation服务器。Automation服务器也可称为Automation组件.是一个实现了IDispatch接El的COM组件。一个Automation客户则是一个通过IDispatch接El同Automation服务器进行通信的COM客户。

    6 二次开发模型

    现在通用的CAD软件,都有其自身的特点。对外都提供了不同的二次开发手段和方法。通过分析现建立一个适用于多数CAD系统的二次开发模型,如图3所示。

    该开发模型主要包括两大部分:一部分是用户与CAD系统交互界面的开发,即定制用户界面,主要用到CAD系统提供的用户接El模块;另一部分是CAD系统与操作系统之间的开发.即定制应用程序的功能,包括对CAD系统的功能调用以及对操作系统的调用,通过采用面向对象技术或者是面向过程技术,将CAD对操作系统的调用对开发者屏蔽,直接提供功能调用,开发者无须详细了解CAD系统的最底层实现。

    3

    图3 CAD 二次开发模型

    7 AutoCAD的二次开发工具

    AutoCAD是全球第四大PC软件商暨世界第一大CAD厂商Autodesk公司的产品。占据了国内二维CAD绘图软件的90%的市场份额,在机械制造、建筑、纺织等行业都有相当广泛的用户群:AutoCAD系列设计绘图软件从AutoCAD 2000到AutoCAD2005。版本更新几乎每年一次,性能不断稳步提升。并且还陆续提供了多种开发T具供用户进行按需开发。如早期的ADS。DCL.ADSRX 和如今常用的三种开发l[具AutoLISP.VBA 和0bjec.tARX。

    7.1 ObjectARX

    0bjectARX是一种崭新的开发AutoCAD应用程序的工具,以C++为编程语言,采用先进的面向对象的编程原理.提供可与AutoCAD直接交互的开发环境,能使用户方便快捷地开发出高效简洁的AutoCAD应用程序。这种T具共享AutoCAD的地址空间.能直接利用AutoCAD核心数据结构和代码。直接访问AutoCAD数据库结构 图形系统以及CAD儿何造型核心。能在运行期间实时扩展AutoCAD的功能,创建能全面享受AutoCAD固有命令的新命令,拥有对AutoCAD最深入的控制能力,能够提供最多类型的窗体,能够对AutoCAD的所有事务进行完整的、先进的、面向对象的设计与开发,并且开发的应用程序速度更快、集成度更高、稳定性更强。

    使用ARX的开发者可以向AutoCAD注册自己的命令,用户运行二次开发的程序时无需了解关于AutoCAD更多的知识。ARX能够访问很多的AutoCAD底层工具(这些VBA和AutoLISP并不能访问).这是大多数开发者选择ARX的主要原因,ARX也是唯一一种能够确保代码安全(不被别人阅读或非法复制)的开发工具。使用ObiectARX进行应用开发还可以在同一水平上与Windows系统集成.并与其它Windows应用程序实现交互操作。

    使用ObiectRX2000主要可以完成如下任务:

    (1)访问AutoCAD的数据库;

    (2)与AutoCAD编辑器进行通信;

    (3)用Microsoft基础类库(MFC)创建用户界面;

    (4)创建支持多文档界面(MDI)的程序;

    (5)和其它程序设计环境进行通信。

    7.2 VBA

    这种工具最大的缺点就是不能向AutoCAD注册命令。必须先用各种加在应用程序的方法将其对应的dvb文件加载.然后通过“工具/宏/宏”菜单项执行,或者在菜单项和自定义的工具栏按钮中执行。但在所有的开发工具中,这是一种开发速度最快的工具,特别是在开发需要图形界面(对话框)的程序时。并且,使用这种T具能从Autodesk公司获得最好的技术支持。但是对于AutoCAD 2000 VBA还不能很好地在AutoCAD内部执行.并且留下很多开发者希望解决的问题。

    7.3 AutoLISP

    AutoLISP语言规则简洁.能够直接访问图形数据。对于简单的程序开发,如图形对象的交互操作、命令的组合、重复执行,非常适合:用其开发的程序向下兼容性好(在低版本AutoCAD平台开发的程序通常可以直接运行于更高版本的平台上)。

    AutoLISP不是一种面向对象的语言.仍然沿用自顶而下的设计思想,属于解释型语言,运算速度慢,不适用于密集型计算。相对于其它高级语言,AutoUSP语言的语法结构有较大的差异.令初学者难以适应。其对话框窗口控件单一,与用户交互功能太弱。

    AutoLISP兼备快速开发工具的特点和COBOL语言的灵活性,它比VBA难。却又比ObjectARX简单。是快速编写应用程序的最初的开发工具。

责任编辑:张纯子
本文来源于互联网,e-works本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供,并以尽力标明作者与出处,如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐