CAD二次开发技术 好辛苦啊!

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/iteye_3159/article/details/82248171
CAD二次开发技术 好辛苦啊!
2011年03月16日
  [b]摘[/b][b][/b][b]要[/b][b][/b]
  数据结构算法设计和演示(C++)-树和查找是在面向对象思想和技术的指导下,采用面向对象的编程语言(C++)和面向对象的编程工具(Borland C++ Builder 6.0)开发出来的小型应用程序。CAD技术发展至今已经日趋成熟,但诸多的CAD软件大多建立在通用应用平台之上,要使CAD软件能针对专业领域方便地解决问题,必须使用CAD二次开发技术。本文叙述了CAD的二次开发技术,介绍了其关键技术和发展现状,对AutoCAD、pro/e、solidedge、UC、CATIA等二维和三维CAD软件的二次开发技术和工具作了介绍。
  [b]关键词[/b]:CAD;二次开发;开发工具;二维设计软件;三维设计软件 [b][/b]
  [b][b]目[/b][b] [/b][b]录[/b]
  第1章 前言
  1.1CAD二次开发技术发展
  1.2CAD开发中的关键技术
  1.3CAD软件与我国CAD软件现状
  第2章 二维CAD软件的二次开发技术
  2.1 概述
  2.2 Autolisp技术
  2.3 ADS技术
  2.4 ARX(C++)技术
  2.5 VBA技术
  2.6其他开发工具
  第3章 三维CAD软件的二次开发技术
  3.1 开发原则与主要研究方向
  3.2 Pro/e的二次开发
  3.2.1开发工具简介
  3.2.2 Pro/toolkit技术简介
  3.3 Solidedge 的二次开发
  3.4 UG与CATIA的二次开发
  第4章 总结
  参考文献
  致谢
  附录1:附录一题目
  附录2:附录二题目
  [b] [/b]
  [b]
  1 前言1.1国际和国内知名的CAD/CAM软件都是商品化的通用平台,基本上覆盖了整个制造行业,但专业针对性差,因而不能满足各种各样具体产品的设计需要,在实际的工程设计中难以达到理想想过,几乎不能真正实现灵活高效的特点。因此CAD软件的二次开发问题就成为CAD技术推广应用过程中所必须面对和解决的课题之一。二次开发就是把商品化、通用化的CAD系统用户化本地化的过程,即以修修的CAD系统为基础平台,研制开发符合国家标准、适合企业实际应用的用户化、专业化、集成化软件。
  所谓CAD技术,顾名思义是研究用计算机用其外围设备帮助人们进行工程和产品设计的技术。但一个实用的CAD系统并不是具体的传统的设计流程和方法的简单映像,而是能反映当代先进的设计方法和进程,病充分利用和发挥计算机优势的计算机辅助设计系统。
  CAD软件的开发已由早起的DOS,UNIX下繁琐的程序设计变成了成熟软件、现有基础上进行的高起点的二次开发.CAD软件工程是一个复杂、高智能、高专业的投入过程,使用好的开发工具进行软件设计与开发已经成为人人们的共识。在CAD设计中常选择某种已有的尸体建模软件作为图形支撑:利用motif图形用户界面工具:实用一种宿主语言,开发独立的CAD系统。
  CAD软件一般都提供有供用户进行二次开发的接口,如AutoCAD Development System(ADS)、I-DEAS 的Open Arechiteetures(OA)等。它给用户提供一系列工具,可以完成用户界面定制,供程序执行,编写外部程序等来扩充系统功能。Pro/e的二次开发的接口Pro/Toolkit。
  1.2 CAD开发中的关键技术
  CAD开发中的关键技术主要涉及:软件工程技术、集成产品模型研究、分布式环境技术、集成环境中统一的工程数据库管理系统技术、人工智能技术、面向对象技术、多媒体技术。
  CAD软件的设计作为一种软件工程,有着其自身的特点。因为CAD技术是面向实际产品的设计,不只是在计算机图形学上实现其基本图形的显示,CAD技术要求能够实现对产品设计本身真正意义上的辅助。按照软件工程的要求,CAD软件的设计利用生存周期法,有利于将来的开发、维护与升级。
  由于CAD软件面向工程技术,因此所要处理的数据库系统也十分庞大。研究各数据之间的逻辑关系,也就是研究数据结构,是开发CAD软件的重要内容之一。从系统论、信息论和控制论的观点看,CAD系统是一个信息系统。CAD过程也就是对大量的数据进行处理和加工的过程,其中既有相对不变的静态数据,也有在设计过程中生成和变化的动态数据。采用先进、有效的数据管理技术是CAD的需要,也是集成化系统的关键。对于CAD开发中的具体的关键技术,请参阅相关的专业书籍,这里不再赘述。
  1.CAD软件与我国CAD软件现状
  CAD软件的发展已经进入第四代,正朝着NAD方向发展。CAD软件设计的两大主要理论基础为:参数化造型理论和变量化造型理论。我国的CAD技术在衣襟国外先进软件、技术的同时,大力开发有自主版权的CAD系统,
  2 二维CAD软件的二次开发技术2.1 概述二维CAD软件中应用最广泛的是AutoDesk公司的AutoCAD系列软件。AuroCAD是一种具有高度开放结构的CAD软件开发平台,它提供给编程者一个强有力的二次开发环境。在R10版本以前,可共使用的开发工具主要是AutoLisp;R11版本推出ADS,是其最显著的特点;随着R13版推出ARX,AutoCAD进入全新的面向对象的开发环境。自R14版以后,AutoCAD引入了为面向对象的ActiveX Automation Interface(即ActiveX自动化界面)技术,可方便地使用各种面向对象的高级开发语言,为开发人员提供了多种可选择的开发工具。
  2.2 Autolisp技术Autolisp一种嵌入AutoCAD内部的Lisp语言,它继承了Lisp语言的语法,传统约定和基本函数与数据类型,并扩充了将达的图形处理功能,语法简洁,表达能力强,函数种类多,程序控制结构灵活,技能完成常用的科学计算,和数据分析,又能调用几乎全部AutoCAD命令,具有强大的图形处理能力,是AutoCAD早期版本的主要开发工具。Autolisp的一般程序结构为:全局变量赋初值;子函数定义(局部变量赋初值,函数体);主函数定义(变量赋初值,函数体)。在加载函数后,可在任何需要的时候调用该函数。
  Autolisp是嵌入AutoCAD的解释型过程语言,尽管具有较强的开发能力,但其运行速度较慢,程序规模小,保密性不强,不宜用于高强度的数据处理,缺乏底层和系统支持,不宜用于高强度的数据处理。
  2.3 ADS技术ADS(AutoCAD Developmengt System )是AutoCAD R11开始支持的一种基于C语言的灵活的开发环境。ADS可直接利用用户熟悉的C编译器,将应用程序编译成可执行文件后在AutoCAD环境小运行,从而即利用了C语言的结构化编程,运行效率高的优势。
  与Autolisp相比,ADS优越之处在与:(1)具备错综复杂的大规模处理能力;(2)编译成机器代码后执行速度快;(3)编译时可以检查出长须设计语言的逻辑错误;(4)程序源代码的可读性好于Autolisp而其不足之处在于:(1)C语言比Lisp语言难于掌握和熟练应用;(2)ADS成语的隐藏错误往往导致AuotCAD,乃至操作系统的崩溃;(3)需要编译才能运行,不易见到代码的效果;(4)同样功能,ADS程序源代码比Autolisp代码长很多。
  2.4 ARX(C++)技术ARX是AutoCAD R13之后推出的一个以C++语言为基础的面向对象的开发环境向应用程序接口。ARX程序本质上为Windows动态链接库(DLL)程序。与AutouCAD共享地址空间,直接调用AutoCADDE 核心函数,可直接访问AutouCAD的核心函数,可直接访问AutoCAD数据库的核心数据结构和代码,以使能够在运行期间扩展AutoCAD固有的类及其功能,创建能后全面享受AutoCAD固有命令特权的新命令。ARX程序与AutoCAD、Windows之间均采用Windows消息传递机制直接通讯。
  ObjectARX应用程序以C++为基本开发语言,具有面向对象编程方式的数据可封装性、可继承性及多态性的特点,勇气开发的CAD软件具有模块想好、独立性强、连接简单、使用方便、没不功能高香实现以及代码可重用性强等特点,并且支持MFC基本类库,能简洁高效地实现许多复杂功能。
  [b]2.5 VBA[/b][b]技术[/b]
  VBA(Visual Basic for Application)最早是内嵌在Office 97 中的一种编程语言,由于易学易用,功能强大,AutoCAD R14版中内置了VBA开发工具,同时提供了实用的对象模型和开发环境,到AutoCAD2000,相应的功能得到了加强。
  从语言结构上将,VBA是VB(Visual Basic)的一个子集,他们的语法结构是相同的,VBA依附于主应用程序AutoCAD,它与主程序的通信简单而高翔,有序共享内存空间,使它具有更快的执行速度,且其语法结构简洁,便于用户快速有效的开发出使用的应用软件,近期获得了广泛应用。
  2.6 其他开发工具Delphi是Inprise公司推出的基于Object Pascal语言的可视化编程工具。作为编程语言,它是完整的面向对象的语言,具有严格意义上的对象、封装、继承和重载的概念,并具有异常处理的功能。
  JAVA是SUN Microsystems公司研制的一种崭新的程序设计语言,它是面向对象的语言之一。具有独立于体系结构的特性;JAVA特别适用于;开发基于Internet的应用程序,它开发的成粗能够在任何平台上运行。Visual J++是Microsoft研制的程序开发环境、是用于JAVA编程的Windows集成环境。
  这两种语言都是面向对象语言,二次开发人员可以很好地利用其与Windows系统紧密结合的特点,开发出高翔的AutoCAD程序。
  [b]3[/b][b]三维[/b][b]CAD[/b][b]软件的二次开发技术[/b][b][/b]
  [b]3.1[/b][b]开发原则与主要研究方向[/b]
  三维软件的二次开发 要遵循工程化、模块化、标准化和继承性等一系列的原则,一句工程化的思想对二次开发进行统筹规划,具体实现坚持模块化、标准化、和继承性原则。
  三维软件二次开发的主要研究方面包括:
  建立函数参数库:国外商品化CAD系统一般都未提供标准件库和通用件库。为适应产品快速发展的需要,建立参数化或变量化的三维实体模型库是进行产品设计所必须的环节。建立参数化图库的关键标准件和通用件特征参数值的存储和处理,有两种方法:一种是使用数据库文件的形式存放参数值;另一种是使用数据库管理系统建立新系统的数据库。使用第二种方法即安全可读,又具有很好的开放性,是用户建立参数值数据口的理想选择。
  二维工程图的自动生成技术:国外通用的CAD系统在常用符号、标注等方面都是依照国际标准,与国家标准有所不同,如尺寸标注、形位公差符号、表面粗糙度符号等,这就需要对其符号进行二次开发。处理程序可以通过软件自带的二次开发语言,也可利用其他高级语言编制。
  产品设计智能化开发技术:CAD智能化是把人工智能的思想、方法和技术一如传统的CAD系统中,分析归纳设计工艺方案,从而提高设计工艺水平,缩短周期,降低成本。现在的CAD系统是人机交互式工作,把需要由知识和经验决策的设计问题留给用户,使产品设计水平收到工程师学科知识和设计经验的制约。开发基于通用化CAD系统的智能CAD(Inetelligent CAD)可以克服这一点缺点,提高设计质量和效率。它的技术核心就是以专家只是和经验建立专家系统(Expert System,ES)模型,采用规则控制下的产生式系统和启发式推理来实现系统的智能化。
  特征映射器的开发技术:目前优秀的机械设计自动化软件都是基于参数化或变量化的特征建模技术,将CAD/CAM基于一身。特征在不同的应用领域有着不同的特征模型,设计特征不可能与制造特征完全一致,这就会导致特征信息的奇异与混乱,因此需要一种特征映射信息的歧义与混乱,因此需要一种特征映射(Feature Conversion)机制来完成特征信息由设计域向制造域的转化即特征映射器。特征映射器可制动将CAD系统的设计特则会给你转变为CAPP系统所需的制造特征,从而实现CAD/CAPP的有效集成,其中特征提取(Feature Recognition)和特征识别(Feature Recognition)是开发特征映射器的技术关键。
  [b]3.2 Pro/e[/b][b]的二次开发[/b]
  Pro/e是一种采用了特征建模技术,基于统一数据库的参数化的通用CAD系统。利用它提供的二次开发工具在Pro/e的基础上进行二次开发,可以比较方便地实现面向特定产品的成粗自动及自动建模功能。并且可以把较为丰富的飞机和特征如材料特征、精度特征加入所生产的模型中,所有信息存入统一的数据库,是实现CAD/CAE/CAM集成的关键技术之一。
  Pro/e提供了丰富的二次开发工具,常用的有:族表(Family Table)、用户定义特征(UDF)、Pro/program、J-link、Pro/toolkit等。
  [b]3.2.1[/b][b]开发工具简介[/b]
  族表(Family Table):通过族表可以方便的管理具有相同或近似结构的零件,特别适用于标准零件的管理。族表通过建立通用零件为父零件、然后在其基础上对各个参数加以控制生成派生零件。整个族表通过电子表格来管理,所以又被称为表格驱动。
  用户定义特征(EDF):用户定义特征是奖若干个系统特征融合为一个自定义特征,使用时作为一个整体出现。系统将UDF特征.gph文件保存。UDF使用特定产品中的特定结构、有利于设计者根据产品特征快速生成集合模型。
  Pro/program:Pro/e软件对于每个模型都有一个主要设计步骤和参数类表――Pro/program。它是由类似BASIC的高级语言构成的,用户可以根据设计需要来编辑该模型的program,使其作为一个程序来工作。通过运行该程序,系统通过人机交互的方法来控制系统参数、特征出现与否和特征的具体尺寸等。
  J-link:J-link是Pro/e中自带的基于JAVA语言的二次开发工具。用户通过JAVA编程实现在软件Pro/e中添加功能。
  Pro/toolkit: Pro/toolkit同J-link一样也是Pro/e自带的二次开发工具,不过它是基于C语言的。Pro/toolkit能实现与PRO/ENGINEER的无缝集成,是Pro/e自带的功能最强大的二次开发工具。它封装了许多针对对Pro/e底层资源调用的库函数与头文件,借助第三方编译环境进行调试。Pro/toolkit使用面向对象的风格,在PRO/ENGINEER与应用程序之间通过函数调用来实现数据信息的传输。
  [b]3.2.2 Pro/toolkit[/b][b]技术简介 [/b]
  Pro/toolkit 采用的是功能强大的面向对象的方式来编写的,因此,用来在Pro/E和应用程序之间传送信息的数据结构对应用程序来讲是不可见的,而只能通过Pro/toolkit中最基本的两个改建时对象(Object)利行为(Action).在Pro/toolkit中每个C函数完成一个特定类型对象的某个行为,每个函数的命名约定是:“Pro”前缀+对象(object)的名字+行为的名字。一个Pro/toolkit对象是一个定义完整、功能齐全的C结构,能够完成于该对象有关的行为。大多数对象对应的是Pro/e数据库中的一个元素,例如:特征,面等。然而,另外一些对象就比较抽象火是暂时的。Pro/toolkit中还有其他一些特点:统一的、广泛的函数出错报告;统一的函数火数据类型的命名约定等。
  使用Pro/toolkit开发应用程序包含三个步骤:编写源文件,生成可执行文件,可执行文件在Pro/e中注册并运行。
  源文件包含三种类型:菜单文件、窗口信息文件和C程序。其中:C程序文件包含了用户自定义的菜单内容与菜单动作。在定义动作函数是可以调用本身的Pro/toolkit函数,也可以调用用户自定义函数。为了将菜单文件载入,需要在C文件中完成菜单调入,菜单注册和菜单动作定义三个步骤。
  Pro/e为应用程序提供两种工作模式:同步模式和异步模式,由于后者使用复杂而很少使用。前者又分为Spawn(多进程模式)或(dll动态链接库模式)。根据工作模式不同,编译时的生成文件也不同。若采用Spawn模式工作,必须将源文件编译生成exe文件;若用dll模式工作,将把原文件生成动态链接库。
  [b]3.3 Solidedge [/b][b]的二次开发[/b]
  Solidedge软件是美国UG公司的四大产品之一,它基于Windows平台。艰巨二维和三维的功能且界面友好,目前在国内已经有很大的装机量。该软件特点是:具有的完全可编辑的、基于特征的参数化实体造型功能;支持自上而下和自下而上的大规模装配;具有二维工程图模块,可独立绘图和标注,同时也可以有三维实体直接生成个视图和剖面图等;具有争抢的镀金模块;具有三维装配件的爆炸、渲染和动画制作功能;具有一定的文件管理功能,如版本管理,查询等。
  Solidedge的开发接口采用OLE Automation技术。OLE Automation建立在COM基础之上,具有语言无关性和进程透明性。它不同于以往CAD系统采用的专用开发工具,如AutoCAD的Autolisp语言。自动化技术通过Windows里COM德IDispatch接口。是不同程序之间进行相互通讯。用户可以通过任何支持OLE Autoumation的语言对Solidedge进行二次开发,其中包括VC、BC、VB、和Delphi等,甚至可以使用Office里的宏命令(Macro)直接驱动Solidedge。
  Solidedge的开发接口主要是通过自动化对象的方法和属性来实现的。属性是自动化对象的数据特征,本质上是一个值,既可以被设置,也可以被获取。一般来说,属性以只读方式居多。方法要比属性灵活的多,它可以不带参数,也可以具有多个参数。利用方法可以实现多种操作,如设置和获取某些对象的数据,或完成某些动作等。
  Solidedge的二次开发主要就是考定义特征的属性,调用方法对象来实现的。其中以VB对Solidedge的开发最为简单,Solidedge内部的help文件中对各特征的属性和方法的说明就是用VB编写的,程序开发人员可方便的调用哥哥已经成熟的模块,利用参数哈造型的方法,开发出使用的Solidedge程序。当Solidedge被安装之后,其相关的模块会自动注册到OLE Automation中,VB可以很方便的进行调用。
  [b]3.4 UG[/b][b]与[/b][b]CATIA[/b][b]二次开发[/b][b][/b]
  Unigraphics(以下简称UG)是美国EDS(Electeonic Data System)公司推出的一个著名的CAD/DAM/CAE软件包。UG所提供的二次开发怨言模块UG/OPEN FRIP,UG/OPEN API和辅助开发模块UG/Open Manuscript 与UG/Open Uistyler及其良好的高级语言节后,使UG得图形功能和计算功能有机的结合起来,便于用户开发专用的CAD系统。
  UG/Open GRIP提供的二次开发语言模块,UG的内嵌语言,能够实现强大的图形绘制、装配、工程图的生成和一定的文件管理功能,主要进行UG的功能调用。GRIP差[/b][/b]
展开阅读全文

没有更多推荐了,返回首页