资源描述
2024/5/222024/5/22周三周三CAD软件的二次开发浅谈主讲:庞兴华主讲:庞兴华淯阳大讲堂1 1主要内容uu软件概述软件概述uu应用软件的二次开发应用软件的二次开发uu应用软件的二次开发过程应用软件的二次开发过程uu应用软件二次应用软件二次开发实例开发实例2 2软件概述uu计算机时代计算机无处不在计算机无处不在计算机无孔不入计算机无孔不入计算机无所不能计算机无所不能以人为本以人为本人机交互人机交互软件软件计算机的灵魂计算机的灵魂1946年2月14日,世界上第一台计算机在美国宾夕法尼亚大学诞生,开创了计算机时代进入CAX时代3 3软件概述uu软件定义软件定义 与与计算机计算机系统操作有关的系统操作有关的计算机计算机程序程序、规程规程、规则规则,以及,以及可能有的可能有的文件文件、文档文档及数据。及数据。其它定义其它定义uu运行时,能够提供所要求功能和性能的运行时,能够提供所要求功能和性能的指令指令或或计算机程序计算机程序集合。集合。uu程序程序能够满意地处理信息的能够满意地处理信息的数据结构数据结构。uu描述描述程序功能程序功能需求需求以及以及程序程序如何操作和使用所要求的文档。如何操作和使用所要求的文档。以开发以开发语言语言作为描述语言,可以认为:作为描述语言,可以认为:uu软件软件=程序程序+数据数据+文档文档4 4软件概述uu软件的特点软件的特点 软件软件不同于不同于硬件硬件,它是,它是计算机计算机系统中的系统中的逻辑逻辑实体而不是实体而不是物理物理实体,实体,具有抽象性。具有抽象性。软件的生产不同与软件的生产不同与硬件硬件,它没有明显的制作,它没有明显的制作过程过程,一旦,一旦开发开发成功,成功,可以大量可以大量拷贝拷贝。软件软件在运行过程中不会因为使用时间过长而出现在运行过程中不会因为使用时间过长而出现磨损磨损、老化老化以及以及用坏问题。用坏问题。软件的开发、运行在很大程度上依赖于计算机软件的开发、运行在很大程度上依赖于计算机系统系统,受计算机系,受计算机系统的统的限制限制,在客观上出现了软件,在客观上出现了软件移植移植问题。问题。软件软件开发开发复杂性高,开发复杂性高,开发周期周期长,成本较大。长,成本较大。软件开发还涉及诸多的软件开发还涉及诸多的社会因素社会因素(版权、责任、运行方式、管理制度、人员素质、(版权、责任、运行方式、管理制度、人员素质、操作方式等操作方式等)。5 5软件概述uu软件分类(依照其作用)系统软件系统软件应用软件应用软件数据库数据库中间件中间件(介于系统和应用)(介于系统和应用)6 6软件概述uu系统软件系统软件 可分为可分为操作系统操作系统和支撑和支撑系统系统软件软件 操作系统操作系统是一管理是一管理计算机硬件计算机硬件与软件资源的程序,同时也是计算机系与软件资源的程序,同时也是计算机系统的内核与基石。操作系统身负诸如管理与配置内存、决定统的内核与基石。操作系统身负诸如管理与配置内存、决定系统资源系统资源供需的优先次序、控制供需的优先次序、控制输入输入与与输出设备输出设备、操作网络与管理、操作网络与管理文件系统文件系统等等基本事务。操作系统也提供一个让使用者与系统交互的操作接口。基本事务。操作系统也提供一个让使用者与系统交互的操作接口。支撑软件支撑软件是支撑各种软件的是支撑各种软件的开发开发与与维护维护的软件,又称为的软件,又称为软件开发环境软件开发环境(SDESDE)。它主要包括)。它主要包括环境数据库环境数据库、各种接口软件和工具组。著名的、各种接口软件和工具组。著名的软件开发环境有软件开发环境有IBMIBM公司的公司的WebSphere,WebSphere,微软公司微软公司的等。的等。支撑软件支撑软件包括一系列基本的工具(比如包括一系列基本的工具(比如编译器编译器、数据库数据库管理、管理、存储器存储器格式化、文件格式化、文件系统管理系统管理、用户身份验证、驱动管理、网络连接等方面、用户身份验证、驱动管理、网络连接等方面的工具)。的工具)。7 7软件概述uu软件分类:应用软件应用软件uu应用软件应用软件是为了某种特定的用途而被开发的软件。它可是为了某种特定的用途而被开发的软件。它可以是一个特定的程序,如一个图像以是一个特定的程序,如一个图像浏览器浏览器。也可以是一组。也可以是一组功能联系紧密,可以互相协作的程序的集合,如功能联系紧密,可以互相协作的程序的集合,如OfficeOffice。也可以是一个由众多独立程序组成的庞大的也可以是一个由众多独立程序组成的庞大的软件系统软件系统,如,如数据库管理系统数据库管理系统、CADCAD系统等。系统等。uu不同的应用软件根据用户和所服务的领域提供不同的功不同的应用软件根据用户和所服务的领域提供不同的功能。能。8 8软件概述uu软件分类(依据许可方式的不同)软件分类(依据许可方式的不同)专属软件:此类授权通常不允许用户随意的复制、研究、修改或散布该专属软件:此类授权通常不允许用户随意的复制、研究、修改或散布该软件。违反此类授权通常会有严重的法律责任。传统的商业软件公司会软件。违反此类授权通常会有严重的法律责任。传统的商业软件公司会采用此类授权,例如微软的采用此类授权,例如微软的WindowsWindows和和办公软件办公软件。专属软件的源码通常。专属软件的源码通常被公司视为私有财产而予以严密的保护。被公司视为私有财产而予以严密的保护。自由软件自由软件:此类授权正好与专属软件相反,赋予用户复制、研究、修改:此类授权正好与专属软件相反,赋予用户复制、研究、修改和散布该软件的权利,并提供源码供用户自由使用,仅给予些许的其它和散布该软件的权利,并提供源码供用户自由使用,仅给予些许的其它限制。以限制。以 LinuxLinux、FirefoxFirefox和和OpenOfficeOpenOffice可做为此类软件的代表。可做为此类软件的代表。共享软件共享软件:通常可免费的取得并使用其试用版,但在功能或使用期间上:通常可免费的取得并使用其试用版,但在功能或使用期间上受到限制。开发者会鼓励用户付费以取得功能完整的商业版本。根据共受到限制。开发者会鼓励用户付费以取得功能完整的商业版本。根据共享软件作者的授权,用户可以从各种渠道免费得到它的拷贝,也可以自享软件作者的授权,用户可以从各种渠道免费得到它的拷贝,也可以自由传播它。由传播它。免费软件免费软件:可免费取得和转载,但并不提供源码,也无法修改。:可免费取得和转载,但并不提供源码,也无法修改。公共软件公共软件:原作者已放弃权利,著作权过期,或作者已经不可考究的软:原作者已放弃权利,著作权过期,或作者已经不可考究的软件。使用上无任何限制。件。使用上无任何限制。CAX软件9 9应用软件的二次开发uu应用软件的分类(应用软件的分类(CAXCAX)CADCAD(ComputerAidedDesign)ComputerAidedDesign)指利用计算机及其图形设备帮助设计指利用计算机及其图形设备帮助设计人员进行设计工作。人员进行设计工作。CAMCAM(computerAidedManufacturing(computerAidedManufacturing,计算机辅助制造计算机辅助制造)的核心是的核心是计计算机数值控制算机数值控制 CAE(ComputerAidedEngineering)CAE(ComputerAidedEngineering),指用计算机辅助求解分析复杂,指用计算机辅助求解分析复杂工程和产品的结构工程和产品的结构力学性能力学性能,以及优化结构性能等。,以及优化结构性能等。CAI(ComputerAidedInstruction)CAI(ComputerAidedInstruction)是在计算机辅助下进行的各种教学是在计算机辅助下进行的各种教学活动。活动。CAPPCAPP(ComputerAidedProcessPlanningComputerAidedProcessPlanning)是指借助于计算机软硬)是指借助于计算机软硬件技术和支撑环境,利用计算机进行数值计算、逻辑判断和推理等的功能件技术和支撑环境,利用计算机进行数值计算、逻辑判断和推理等的功能来制定零件来制定零件机械加工工艺机械加工工艺过程。过程。1010应用软件的二次开发uu应用软件的分类(应用软件的分类(CAXCAX)CADCAD软件:软件:AutoCADAutoCAD、SolidWorksSolidWorks CAMCAM软件:软件:CAECAE软件:软件:CAICAI软件:软件:综合软件:综合软件:(产品生命周期管理软件)法国达索公司,拥有六大品牌软件:1SolidWorks、2CATIA、3SIMULIA、4DELMIA、5ENOVIA、63DVIASolidWorks(美国参数技术公司)1111软件的二次开发 软件危机软件危机uu庞大的软件设计团队(人、物)庞大的软件设计团队(人、物)uu设计难(升级难,供不应求)设计难(升级难,供不应求)uu保护难(复制快,危机四伏)保护难(复制快,危机四伏)软件开发软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过是根据用户要求建造出软件系统或者系统中的软件部分的过程。是一项包括需求捕捉,需求分析,设计,实现和测试的系统工程。程。是一项包括需求捕捉,需求分析,设计,实现和测试的系统工程。软件的二次开发软件的二次开发对已有的软件产品的功能进行扩充或对已有的软件产品的功能进行扩充或根据特殊需要组根据特殊需要组合扩展功能等。合扩展功能等。在已有软件的基础上,根据不同的客户的需要,一些其它在已有软件的基础上,根据不同的客户的需要,一些其它的中小公司为客户根据需求在该平台上进行的中小公司为客户根据需求在该平台上进行第二次有针对性的开发第二次有针对性的开发。软件开发分类软件开发分类uu应用软件开发应用软件开发:为解决实际应用问题而进行的一些软件开发工作属于应用软件:为解决实际应用问题而进行的一些软件开发工作属于应用软件开发。开发。uu系统软件开发系统软件开发:为维护、控制和管理计算机和外部设备,为计算机提供用户为维护、控制和管理计算机和外部设备,为计算机提供用户界面等软件而进行的软件开发。界面等软件而进行的软件开发。应用软件开发应用软件开发1212软件的二次开发前进uu应用软件二次开发的必要性应用软件二次开发的必要性 专业设计对软件的要求(设计为专业设计对软件的要求(设计为主题主题)uu通用性与专用性通用性与专用性 软件设计软件设计底层难做底层难做 上市软件各领风骚上市软件各领风骚 软件功能与设计需求的交集软件功能与设计需求的交集 它山之石为我所用它山之石为我所用 二次开发事半功倍二次开发事半功倍软件功能软件功能设计需求设计需求设计软件1313图形处理举例剖面线算法:剖面线算法:直线算法:直线算法:直线与直线的交线直线与直线的交线直线上点(像素)的坐标直线上点(像素)的坐标返回1 1交点交点交点交点2 2交点交点交点交点3 3交点交点交点交点多交点多交点多交点多交点难1414应用软件的二次开发uu应用软件二次开发的可能性应用软件二次开发的可能性 软件的软件的开放性开放性是软件性能的重要指标是软件性能的重要指标 专业知识是二次开发的原动力专业知识是二次开发的原动力 专业知识与计算机语言有机结合前景广阔专业知识与计算机语言有机结合前景广阔 一般支持软件二次开发的原一般支持软件二次开发的原软件系统软件系统都提供相应的都提供相应的SDK(Softwaredevelopkit)SDK(Softwaredevelopkit)。二次开发人员可以根据。二次开发人员可以根据SDKSDK中提供的公开的中提供的公开的API(API(应用程序接口应用程序接口)来访问软件原有的来访问软件原有的一些基本功能,并要据这些基本功能组合,扩展进而形成更一些基本功能,并要据这些基本功能组合,扩展进而形成更加专业或新的功能以完成用户特殊的需求。加专业或新的功能以完成用户特殊的需求。1515软件的二次开发uu应用软件二次开发实现的途径应用软件二次开发实现的途径 专业知识的学习与积累专业知识的学习与积累 计算机语言与开发环境计算机语言与开发环境 用户需求放在首位用户需求放在首位 在实践中学、在实践中干在实践中学、在实践中干知识准备知识准备实际应用实际应用1616应用软件的二次开发过程AutoCAD开发uuAutoCADAutoCAD软件的产生与发展软件的产生与发展 AutoCADAutoCAD是美国是美国AutoDeskAutoDesk公司推出的交互式图形软件包,自公司推出的交互式图形软件包,自19821982年年1.01.0版问世以来,形成版问世以来,形成2.02.0、.11.0.11.0、12.012.0、13.013.0、14.014.0、15.015.0、20002000等版。其中,等版。其中,2.62.6版以前,主要处理版以前,主要处理2 22.52.5维图形;维图形;9.09.0版之后,三维绘版之后,三维绘图功能逐渐加强。图功能逐渐加强。uuAutoCADAutoCAD软件的地位软件的地位 AutoCADAutoCAD是是PCPC机绘图软件的主流产品机绘图软件的主流产品uu在各行各业广为应用;在各行各业广为应用;uu在世界各地流行最为广泛在世界各地流行最为广泛返回1717AutoCAD概述uuAutoCADAutoCAD特点特点 (1 1)图形功能强大;一般图形元素、编辑操作功能)图形功能强大;一般图形元素、编辑操作功能(2 2)应用范围广泛;机、电、建筑、科学计算的图样等)应用范围广泛;机、电、建筑、科学计算的图样等(3 3)多种开发手段;)多种开发手段;uu主要有四种(主要有四种(AutoLisp/VisualLisp,VBA,AdsAutoLisp/VisualLisp,VBA,Ads、ObjectARXObjectARX)(4 4)可运行的设备多;工作站、微机)可运行的设备多;工作站、微机(5 5)易于操作。)易于操作。uuAutoCADAutoCAD软件新增特点:(软件新增特点:(AutoCAD2000AutoCAD2000绘图简介)绘图简介)(1 1)多文档环境)多文档环境更加更加WindowsWindows化化(2 2)3D3D实时旋转实时旋转(3 3)快捷菜单)快捷菜单(4 4)开发功能强大()开发功能强大(AutoLISPAutoLISP、VBAVBA、ObjectARXObjectARX等开发语言等开发语言)1818uu开放的体系结构开放的体系结构 允许用户和开发者采用高级编程语言对其进行扩充和修允许用户和开发者采用高级编程语言对其进行扩充和修改,即二次开发改,即二次开发;通过二次开发能最大限度地满足用户的特殊要求;通过二次开发能最大限度地满足用户的特殊要求;其二次开发语言及工具也在不断地涌现其二次开发语言及工具也在不断地涌现 荣登全球绘图软件的龙头宝座1919几种开发工具比较ObjectARX独领风骚ADSOBJECTARXAutoLispVBAVC.net2020uuObjectARX开发 为面向对象的为面向对象的AutoCADAutoCAD运行时扩展,在运行时扩展,在vc+vc+环境下环境下开发,是在开发,是在ADSADS基础上发展起来的,它包含一组动基础上发展起来的,它包含一组动态连接库,可直接访问态连接库,可直接访问AutoCADAutoCAD核心数据结构、图核心数据结构、图形系统、形系统、CADCAD几何造型,在运行时可扩展新命令。几何造型,在运行时可扩展新命令。在编译时,它不生成在编译时,它不生成EXEEXE文件,而是生成文件,而是生成DLLDLL(动态(动态连接库)文件(连接库)文件(ArxArx)。)。2121AutoCAD开发意义uu专业设计的主要特点专业设计的主要特点(1 1)计算)计算(2 2)绘图)绘图(3 3)数据处理)数据处理(4 4)大量重复工作(条件改变、算法不变)大量重复工作(条件改变、算法不变)uu软件绘图的局限性软件绘图的局限性 通用绘图软件,常规图形处理十分成熟,但不能包罗万象;通用绘图软件,常规图形处理十分成熟,但不能包罗万象;uu(齿轮齿廓曲线(齿轮齿廓曲线渐开线等)渐开线等)专业计算功能较差,难以满足专业设计需要专业计算功能较差,难以满足专业设计需要uu开发图形功能、扩大应用范围开发图形功能、扩大应用范围(1 1)图形程序编制的困难性)图形程序编制的困难性软件危机软件危机(2 2)将图形功能溶于计算程序中,实现设计计算机绘图的自动化,收到)将图形功能溶于计算程序中,实现设计计算机绘图的自动化,收到事半功倍事半功倍的效果;的效果;返回2222AutoCAD开发环境uu1 1、硬件环境、硬件环境(1 1)PIIPII以上处理器以上处理器(2 2)64MB(64MB(至少至少32MB32MB)RAMRAM(3 3)130MB130MB以上硬盘空间以上硬盘空间+64MB+64MB交换空间交换空间(4 4)Windows95Windows95、Windows98Windows98以上操作系统以上操作系统返回uu2 2、软件环境、软件环境(1 1)AutoCADAutoCAD绘图软件绘图软件(2 2)VC+6.0VC+6.0(3 3)ObjectARXObjectARX SDKSDK开发工具开发工具uu3 3、开发环境、开发环境(1 1)安装)安装ObjectARXSDKObjectARXSDK(2 2)配置)配置VC+6.0IncludeVC+6.0Include及及LibLib 将将ObjectARX2000incObjectARX2000inc和和 ObjectARX2000libObjectARX2000lib与与VCVC联接联接2323AutoCAD开发过程uu1 1、设计用户菜单设计用户菜单(1 1)VC+VC+环境下修改菜单环境下修改菜单My.mnuMy.mnu(2 2)AutoCADAutoCAD环境下装入用户菜单环境下装入用户菜单 返回MENUMENU命令命令命令命令24242024/5/22 2024/5/22 周三周三2525AutoCAD开发过程uu 2 2、VCVC下建立工程,编制开发程序,形成下建立工程,编制开发程序,形成*.ARX*.ARX文件文件 返回2626AutoCAD开发过程uu 3 3、在、在AutoCADAutoCAD环境下装入环境下装入My.ARXMy.ARX文件文件;返回uu 4 4、运行开发程序、运行开发程序(开发实例开发实例)2727开发程序实例1减速器设计CADuu1 1、装入程序装入程序uu2 2、点中菜单点中菜单uu3 3、输入设计参数输入设计参数uu4 4、显示计算结果显示计算结果uu5 5、自动绘制图样自动绘制图样返回2828编程编译连接返回2929装载应用程序返回3030点中菜单返回3131输入设计参数返回3232显示计算结果返回3333运行结果(平面图)3434运行结果(三维图)应用程序运行环境3535齿轮生产现状设计任务量大(小批量多品种)设计难度大(针对性专业性)设计方法落后(依赖于手工)CAD效果提高速度提高质量提高档次填补空白开发实例2齿轮刀具设计CAD用户订单齿轮数据刀具设计刀具加工齿轮加工交货刀具设计齿轮生产参数化设计计算绘图集成刀具加工刀具设计3636程序设计3737专用数据库返回3838专用数据库返回3939专用菜单返回4040软件主界面uu齿轮刀具设计系统齿轮刀具设计系统返回4141输入数据(1)uu被加工齿轮原始参数返回从数据库读入齿轮数据4242输入数据(2)返回4343自动绘制齿轮滚刀工作图返回44444545u设计轻轻松松u效率大大提高绘图命令集成计算和绘图集成设计过程集成设计集成4646几点启示uu二次开发适应面广uu二次开发事半功倍uu二次开发并非高不可攀uu条件条件 专业基础专业基础 专业软件知识专业软件知识 编程语言编程语言专业问题的抽象47474848谢谢大家!49492024/5/22 2024/5/22 周三周三5050
展开阅读全文