前言 CATIA是法国达索系统公司的CAD/CAE/CAM一体化软件,在世界CAD/CAE/ CAM领域中处于领先地位。CATIA被广泛应用于航空航天、汽车制造、造船、机械制 造、电子、电器、消费品行业。它的集成解决方案覆盖所有的产品设计与制造领域,满足 了工业领域各类大、中、小型企业的需要。世界前20名的汽车企业有18家采用CATI A作为其核心设计软件。世界上已有超过13000个用户选择了CATIA,其中包括波 音、克莱斯勒、宝马、奔驰、本田、丰田等著名企业。波音公司用CATIA完成了整个波 音776零件设计和电子装配,创造了业界的一个奇迹,从而也确定了CATIA在 CAD/CAE/CAM行业的领先地位。 二次开发是对软件的用户化和专业化的有效手段,它可以使软件更好地为用户服 务,这对提高工作效率和工作质量有着不可低估的作用。任何优秀的软件,其功能也不 可能满足于所有领域、所有用户的应用习惯和应用需求。为此,CATIA为用户提供了 二次开发接口和开放式的内部命令集合,给用户的二次开发带来了方便。在熟练掌握 CATIA软件功能的情况下,通过对其深入研究,任何人都可以开发出适用于本单位和 个人习惯的工具,为提高工作效率和产品质量服务。 CATIA提供了多种二次开发的接口,其中包括自动化对象编程(V5Automation) 和开放的基于构件的应用编程接口(CAA)。本书主要介绍用Visualbasic进行自动化 对象编程,深入浅出地讲述了CATIA产品设计与外形设计中几个主要模块的编程实 例。精心设计的应用实例可以使用户很快地上手,并应用于实际生产之中。 本书读者可通过51CAX培训网进行答疑,方法如下: 1·在www.51cax.cmn网站注册并登录。 2.在网站中点击“图书中心”或者“我要买书”,进入图书中心页面。 3.在图书中心页面中点击“图书答疑密码”,在文本框中输入本书所附光盘表面标 签上的号码,并确定。 4.在图书中心页面下方“我购买的图书”栏目中该图书的右侧点击“答疑”,即可进 入BBS的相关区域提出您的问题。 限于作者的知识水平和经验,书中难免有欠妥和错误之处,恳请广大读者批评指正 作者 2006年3月 Ⅲ 序 随着CAD软件在制造业的普及,其应用水平越来越高。为了适用于各种产品的设 计需求,多数CAD软件的功能都有很高的通用性,但因此也存在着针对性不强,设计效 率不高的问题。例如,在汽车车灯设计中,需要建构数以百计的灯花,利用现有的CAD 软件的功能往往需要数天才能完成,效率十分低下。如果以现有CAD软件为平台,开 发出专用的建构模块,则可在几十分钟甚至几分钟内完成」 另外,CAD软件的通用性也使其难以很好地应对不同用户在技术标准方面的差 异,在使用这些软件进行标准化设计时并不方便,而二次开发能较好地解决这个问题。 一些大规模的二次开发甚至能够产生出全新的应用软件。 因此,二次开发在提高CAD软件的应用效率、专业性,充分发挥CAD软件的使用 效益方面有十分重要的作用。 与普通的CAD技术相比,二次开发对工程师的综合能力要求更高,一般要求具有 大专或本科以上学历的资深CAD工程师。 与CAD软件操作类书籍相比,二次开发方面的教程十分稀少,并且存在着实用性 不强、体系不完整的问题。造成这一现状的原因是具备CAD应用经验的工程师往往不 具备软件开发的经验,而具备软件开发能力的人员往往又不具备CAD工程经验。 沙数教程外,某些相关刊物发表了一些二次开发的学术论文,同时CAD软件中 自带了帮助文档。学术论文主要是针对某个问题进行论述,因此缺乏系统性。虽然 CAD软件中自带的帮助文件具有系统性,但要真正理解与灵活应用仍绝非易事,究其 原理,一是帮助文件大多是英文,这对于一般的工程技术人员来讲,理解起来比较困难; 二是帮助文件的内容非常多,要从中找到合适的切入点就比较困难;三是二次开发时需 要利用一些开发语言与开发工具,而帮助文件中一般很少有开发语言与开发工具的介 绍;四是虽然帮助文件中也具有大量的实例,但这些实例往往只针对于具体函数的程序 语言片段,而不是完整的程序实例,因此并不适用于初学者。 为帮助工程技术人员扎实、高效率地学习和掌握CAD软件二次开发技术,我们组 织编写了这套《CAD软件二次开发丛书》。丛书期望达到的学习目标是: Ⅳ (1)使初学者快速坚实地掌握CAD软件二次开发技术,为更深入的研究打下基础; (2)使具有一定CAD软件二次开发技术基础和工作经验的读者能更系统地掌握二 次开发的方法与思路,掌握更专业的高级技术,达到较高的应用水平。 本套从书可供具有大专以上学历的资深CAD工程师、从事CAD软件开发或技术 服务人员使用,或作为大专院校相关专业的参考教材。 限于编写时间和作者的水平,丛书中必然会存在需要进一步改进和提高的地方。 期望读者及专业人士提出宝贵意见与建议,以便我们今后不断加以完善。请通过网站 htp:/ww.1cax.com或电子邮件bok@51CAX.cm与我们交流。 本套丛书是《CAD软件二次开发丛书》编委会全体成员共同努力的结果,在此深表 谢意。浙大旭日科技开发有限公司的工程师们为本丛书提供了大量的技术资料和技术 支持,在此也表示衷心的感谢。 浙大旭日科技图书 CAD软件二次开发丛书编委会 2006年4月 《CAD软件二次开发丛书》编委会 主编:吴立军(浙江科技学院) 编委:单岩(浙江大学)胡挺(浙大旭日科技) 夏天(浙江大学)周超明(浙大旭日科技) 周瑜(浙大旭日科技)陈波(浙江大学) Ⅵ 本书约定表示方式 本书中有很多代码和关键字,文字中嵌入的关键字一般都以粗体表示。完整的代码一 般如下所示 SheetAsDrawingS SetsHeet=MyDrawingDoc,Sheets.ActiveSheet DimoViewAsDrawingView SetoView=oSheetViewsAdd("FrontView") 下面这样的图标在本书中随处可见,其目的是从视觉上衬托出某些重要的信息类型。 ⑩Q这个图标用于章节摘要。 世于平 ----------““ 这个图标通常给出一些附加的信息,提醒用户或澄清一些内容。 以“如“”” 这个图标给出了一些有用的技巧和方法,它们可能不太明显,但能让读者更容 易地完成任务。 ……→--·“““““ 这个图标给出了一些并不像宣称的那样有效的内容,或者是容易误解或误用的 内容,或者极易出错,让程序员陷入困境的内容。 “““““” 这个图标给出了一些与本书相关但超出本书范围的内容,如果读者本来就对此 不感兴趣,忽略不看也没有什么问题。 Ⅶ 目 录 第1章快速入门 第3章零件设计 +t“2… 28 1.1宏录制、修改及回放 13.1AP介绍…… …………………28 1.1.1录制宏………13.1.1操纵零件文档的殷步骤 ”“””““””””””““ 28 1.1.2理解录制的宏… 3.1.2Part…………………………. 28 1.1.3修改录制的宏… 3.1.3OriginAl lements……………………………………29 1.1.4运行修改过的宏…………………………………6 3.1.4Sketches 30 1.1.5把宏加入工具条 ,非非1非非4非非非1非非·非非重非重 3.1.5Factory2D……………………31 1.2以不同方式来编写脚本……………… 7 3.1.6Constraints……… 1.2.1概念… 3.1,7ShapeFactory…… 35 1.2.2进程内的脚本 3.1.8完整的实例代码…………………36 1.2.3进程外的脚本 ………113.2凸轮轴实冽…… ………………37 1.3实例……………………… 143.2.1本实例所买现的功能 37 1.3.1预备工作… 3.2.2总体思路… ……38 1.3.2界面设计…………………………………………14 3.2.3程序结构设计 1.3.3编写代码………5 3.2.4全局变量定义 38 1.3.4编译运行………………………163.2.5初始化 …………39 1.3.5使用模板 2.6创建凸轮…………………………………… 40 第2章基本操作 3.2.7创建轴 2.1AP介绍……… 18 3.2.8创建凸轮组………4 3.2.9创建驱动轮 44 2.1.1CATIA文档结构… 18 3.2.10界面调用……………………… 45 2.1,2对CATIA进行编程的基本流程 2.1.3Application对象……………………………19 本章小结 2.1.4Documents和Document对象… 20 第4章曲面设计 47 4.1AP介绍 ….…………………47 2.1.5Cameras和Camera对象… 21 2.1.6Windows和Window对象………… 4.1.1创建混合元素的一般步骤…… 47 2.1.7Viewers和Viewer对象… 22 4.1.2HybridBodies…………47 48 2.2文件及视图操作实例……… 23 4.1.3Reference……………………………""" 49 2.2.1本实例实现的功能 、, 4.1.4HybridShapeFactory………""" …………62 2.2.2启动时的动作 23 4.2旋转楼梯实例 2.2.3打开文档 ……………………………2 4.2.1本实例所实现的功能 2.2.4视图操作 25 4.2.2程序结构设计 2.2.5保存文档 26 4.2.3变量定义 本章小结…… 27 4.2.4初始化全局变量… 4.2.5创建主控元素 4.2.6创建台阶参考平面 67 68 1.5运行交互命令 4.2.7创建构造点… ……70 7.1.6交互选择……… +····,·,···,,,,tts 4.2.8创建构造线………… 717.2多重元素拉伸实例………………… ……"""………1 4.2.9创建台阶曲面… 73 7.2.1本实例所实现的功能 4.2.10组合 ·………,……· 4:2.11界面调用…………………………74 7.2.2总体思路… 7.2.3程序结构… ……………… 145 本章小结 ……………………………74 7.2.4界面调用 …………………145 第5章装配设计 75 7.2.5功能模块…¨1 5.1AP介绍 5.1.1操纵产品文档的一般方法 75第8章综合实例 152 758.1直条灯花程序 ……………………………… 5.1.2组件管理 8.1.1本实例所实现的功能… ““ 152 5.1.3组件位置信息… 8.1.2总体思路 154 5.1.4约束管理 5.1.5完整的示例代码… 8.1.3程序结构 5.2螺栓装配实例 8.1,4界面调用 ++ 96 5.2.1本实例所实现的功能 96 8.1.5功能模块 9682鱼眼灯花程序… 172 5.2.2总体思路………… 5.2.3程序结构 …97 8.2.1本实例所实现的功能… 5.2.4界面调用 8.2.2总体思路 5.2.5功能模块 8.2.3程序结构……………………" 第6章工程制图 8.2.4界面调用…………………………174 6.1API介绍………………… 103 8.2.5功能模块……………………… 6.1.1操纵工程图文档的一般步骤… 103附录A对象文档结构 207 6.1.2页面管理 103附录B使用本书所附模板………21 6.1.3管理… ……106 B1如何使用模板工作 6.1.4几何图形创建和编辑 ………112 B2标准模块代码 .12 6.1.5文字创建和编辑………… 113 附录CVB编码约定 4、- 18 6.1,6关于图框………………………………………113 C1为什么要进行编码约定 ,4 218 6.2图框编辑实例…………………………………………114 C2常量和变量命名约定… 218 6.2.1本实例所实现的功能 114 1.变量 218 6.2.2总体思路 115 2.描述变量和过程名 218 6.2.3程序结构 116 C3结构化编码约定 219 6.2.4界面调用 116 219 6.2.5功能模块…………………117 1.代码注释约定……… 第7章人机交互… 2.格式化代码… …………………21 127 附录D版本兼容性及代码转换 221 7.1A介绍…………………………127 7.1.1人机交互的方式……………………………………127 D1不同CATIA版本转换 "…………22 7.1.2Selection象……………………………127 D2不同脚本类型转换 7.1.3选择集管理 127 1.从宏脚本转换到VB程序 22 7.1.4编辑菜单命令…………………………128 2.从VB程序转换到宏脚本 第1章快速入门 本章引导用户快速入门。 1.1宏录制、修改及回放 +--+-- 本节介绍了如何录制、修改和运行宏脚本,并说明了如何把宏命令加入工具 条以便快速启动。 1.1.1录制宏 1.首先关闭所有打开的CATIA文档 2.从菜单中选择“工具→宏→开始录制(Tools→Macro->StartRecording…)” 命令,以显示录制宏的对话框。 Recordmacro Currentmacrolibraryordocument: C:\DOCUME1\ADMINI\LOCALS1\Temp Macrolibraries Languageused MSVBScript Macroname: Macy Macro.catybs Start ●Cancel 图 如果之前没有使用过宏的功能,CATIA会提供一个默认的宏库。单击“开始 (Start)”按钮开始录制。“停止录制(StopRecording)”的工具条会出现在屏幕中,如图 1-1所示。 3.从文件菜单中选择“新建(New..)”命令或从工具条上单击口图标,从对 话框中选择“Part”,新建一个零件文档,如图1-2所示。 4.在模型树中选择xY平面,单击工具条中的区图标进入草图绘制。 第1章快速入门