电气产品实体造型及虚拟装配技术的研究.pdf

上传人:赵** 文档编号:46682008 上传时间:2022-09-27 格式:PDF 页数:52 大小:2.17MB
返回 下载 相关 举报
电气产品实体造型及虚拟装配技术的研究.pdf_第1页
第1页 / 共52页
电气产品实体造型及虚拟装配技术的研究.pdf_第2页
第2页 / 共52页
点击查看更多>>
资源描述

《电气产品实体造型及虚拟装配技术的研究.pdf》由会员分享,可在线阅读,更多相关《电气产品实体造型及虚拟装配技术的研究.pdf(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、河北工业大学硕士学位论文电气产品实体造型及虚拟装配技术的研究姓名:张立杰申请学位级别:硕士专业:电气工程指导教师:陈堂功2010-11河北工业大学硕士学位论文 i 电气产品实体造型及虚拟装配技术的研究电气产品实体造型及虚拟装配技术的研究 摘摘 要要 图纸是工程师的语言。进入 20 世纪 60 年代人们开始借助 CAD 软件来绘制图形。早期的 CAD 软件是用二维的简单图块代替实际复杂电气零件从而提高制图的速度。但是二维设计不能够直观的表现产品的结构,更不能对设备进行装配、优化设计、干涉检查、温度场的数值模拟、运动分析等高级计算机辅助设计工作,这就需要创建零部件的三维实体模型并进行虚拟装配。装配

2、的实施对象及操作过程要与生产实际情况高度吻合,达到生动直观地反映产品装配的真实过程,使仿真结果具有高可信度。本课题以 AutoCAD 作为开发平台,利用 ObjectARX 2002 作为二次开发工具,采用Visual C+6.0 面向对象高级开发语言,利用自定义实体类建立电气产品的三维零件模型,并开发了虚拟装配系统。三维实体造型绘制出来的零件相当于 AutoCAD 内部的实体,可以将产品零件的属性数据与几何表达深度结合,形成一个完全统一、简洁、性能优异的有机体。通过参数化方法可以输入任意参数来设计不同尺寸及属性的零件。这对于电气工程设计中大量的重复劳动来说,大大的节省了设计师的时间。而且三维

3、实体可以从不同的视觉角度观察零件,比较全面地反映实体的几何及物理特性。虚拟装配是利用三维实体造型仿真真实的零件装配过程,是 CAD 技术在工程设计中的典型应用。在零件虚拟装配过程中,装配类型分为两大类:共线约束和共面约束。用户需要选择配合的关系信息,通过获取参考零部件的向量等信息将目标零件进行旋转平移等操作,实现零件的自动装配。在装配的过程中要考虑由于三角型面片模型、零件的加工精度、材质等因素产生的公差问题,其中零件的公差等级以及材料属性都是从数据库中获得的。在装配过程中还要检测待装配零件是否与其它零件发生碰撞,若不发生干涉完成装配,否则停止运行。本文以直流电磁铁三维图的绘制及装配为例,利用自

4、定义实体类获得零件参数并创建三维图形,展示了自动装配的步骤和方法,并达到了对装配零件进行干涉检测的目的。关键词:关键词:三维实体造型,ObjectARX,自定义实体,虚拟装配,干涉检测 电气产品实体造型及虚拟装配技术的研究 ii RESEARCH OF SOLID MODELING AND VIRTUAL ASSEMBLY TECHNOLOGY FOR ELECTRICAL PRODUCTS ABSTRACT Drawing is the language of engineers.In the nineteen sixties,people began to use CAD software

5、 to design graphics.Early CAD software used simple two-dimensional block instead of the actual complexity of electrical parts to improve the speed of drawing.But the two-dimensional design cant show the structure of product intuitively,it cant assemble the device,optimization,interfere,numerical sim

6、ulation of temperature field,motion analysis and other advanced computer-aided design work also,Those facts require us to create three-dimensional solid model parts and then assembly.Implementation and operation of the objects are highly consistent with the actual production situation,you can reflec

7、t the true product assembly process directly so that the simulation results with high confidence.With AutoCAD platform,Object ARX 2000 SDK for re-development tool,Visual C+6.0 Object-oriented high-level development language,using custom entity class to establish three-dimensional part model of elect

8、rical products the virtual assembly system is developed.The part which draw out by this method of three-dimensional solid modeling is equivalent to AutoCAD entity inside.This entity can make the property of production and geometric expression combined to form a fully integrated,simple,excellent perf

9、ormance.through the parametric method,the users can input any parameters to design the parts of different sizes and properties.it greatly saves the designers time for a large number of duplication of effort in electrical engineering design.And three-dimensional solid can be observed from different p

10、arts of visual angle,reflecting the geometric and physical properties of entities total.Virtual assembly use three-dimensional solid modeling to emulate real parts assembly process is the typical application in the engineering design of CAD technology.In the process the virtual assembly,two types ar

11、e divided:the occurrence of collinear restraint and coplanar restraint.Users need to select the relationship information,through geting the vector and other informance of reference components,the target parts can be rotated、shifted to achieve automatic assembly。In the assembly process,the problem of

12、 tolerance cause by the triangular patch model,precision Machining accuracy and material shoud be considered.The tolerance levels and the materials are obtained from the database.We should test whether the assembled 河北工业大学硕士学位论文 iii parts will collide with other parts,If interference doesnt occur,co

13、mplete assembly,or stop running。In this paper,the author make the drawing and assembly of three-dimensional map of DC electromagnet as an example,using custom entity class to set parameters and create three-dimensional graphics,showing the steps of automatic assembly and methods,achieves the purpose

14、 of interference detection of assemble parts.Key words:Three-dimensional solid modeling,ObjectARX,Customentity,Virtual assembly,Interference detection 河北工业大学硕士学位论文 1 第一章第一章 绪绪 论论 1-1 选题背景选题背景 1-1-1 三维实体造型三维实体造型 产品设计过程是一个对信息进行采集、传递、加工处理的过程,它包含两种重要的活动:设计和仿真活动1。其中设计活动推动信息流程向前演进,而仿真活动则是验证设计结果的重要手段。在电气产品

15、设计行业中,将一个产品从设计结构及进行仿真到生产是一个相当复杂而漫长的过程,如何能够缩短这一过程,节约原材料,降低费用是每个企业开发新产品首要考虑的问题。在计算机未摄入实体造型之前,图纸设计是设计师设计的语言工具,一个复杂的零件,常常需要许多不同的视角才能表达,而要读懂这些图并准确想象出其空间效果,将花费很多时间和精力,一旦读图有误,将会给生产、制造带来巨大损失2。进入 20 世纪 60 年代,CAD 技术的出现为问题的解决提供了可能。作为支持产品创新设计最为重要的技术和工具,人们借助 CAD 的二维绘图技术采用三视图的方法摆脱了精度低、繁琐、费时的传统手工设计图纸。该技术对加速产品开发、降低

16、成本、提高质量、增强企业市场创新能力、缩短设计制造周期和竞争力起着很重要的作用。然而二维的 CAD 技术仅限于基本绘图功能的初级应用,而在电气设计过程中会有大量的重复性劳动,而其不能够直观的表现产品的结构。而且不能够在设计的同时对诸如接线盒、操纵面板、电气控制柜等电气产品来说在设计的同时还要对设备进行装配、优化设计、干涉检查、流场及温度场的数值模拟、有限元分析、运动分析等高级计算机辅助设计工作,这就需要创建零部件的三维实体模型。实体造型技术是实现三维几何物体完整信息表示的理论、技术和系统的整体概括。以一些基本体素为单元体,通过集合运算生成所需的几何形体,技术能够精确表达零件的全部属性,是目前为

17、止描述三维几何形体最理想的模型。这些都会导致设计方面的盲目性和不确定性。而三维的实体造型可以建立与实物完全相同的样体,可以进行参数化的设计,可以自动生成工程图,提高设计效率和制造效率,减少制造差错,实现系列化通用化、自动化设计,可以便于与用户进行交流。现代的工程分析软件的模型和数控加工的模型,均要求提供三维图形。随着计算机软件和硬件的不断发展更新,三维图形在工程设计中应用日趋广泛。目前在各个领域都有很多专门的三维软件如:ansys,是一种电磁场有限元分析,能实现多场及多场耦合分析;是实现前后处理、求解及多场分析统一数据库的一体化大型 FEA 软件,可分析电磁场多方面的问题,如电感、电容、磁通量

18、密度、涡流、电场分布、磁力线分布、力、运动效应、电路和能量损失等,准确地进行大规模的有限元计算3。大大降低了工作人员的劳动量。Pro/Engineer 具有先进的参数化设计、基于特征设计的实体造型和便于移植设计思想的特点,主要应用在机械领域价格比较昂贵4。UG 是一个集 CAD/CAM/CAE 于一体的机械工程辅助系统,适用于航空、航天、汽车、通用机械以及模具等的设计、分析及制造工程5。SolidWorks 是世界各地用户广泛使用,富有技术创新的软件系统,电气产品实体造型及虚拟装配技术的研究 2 已经成为三维机械设计软件的标准。它可以十分方便地实现复杂的三维零件实体造型、复杂装配和生成工程图。

19、但是这些软件都很具有专一性,很多三维软件都是针对机械专业的制图,而 ansys 可以用于电气工程方面,但是主要针对电磁场的有限元分析。在很多企业中,引进某个软件后会发现,软件的巨额投资并不能达到它们满意的效果,主要有以下问题:(1)用 CAD 软件设计经验没有得到积累和再应用。(2)工程师的水平不同,绘图的整体效率不高。(3)很多企业没有建立专用的 CAD 平台,每次都在通用的环境中开始设计,这样大量的时间浪费在环境的修改和设置等重复的工作上。1-1-2 虚拟装配技术虚拟装配技术 对于产品的结构、功能、生产工艺、操作性能、装配性能及维护性能等许多问题都要在开发过程的前期得到解决6。用实体样品零

20、件在装配过程中可能会出现两种问题:(1)某些产品结构设计不合理,往往在售出后才会发现,那么不得不返回到设计阶段,对产品结构修改变更,这样既费时又费力,产品延长了时间。(2)装配的过程不合理。在一般情况下,产品在大批量生产之前都要制造样机来检验产品的装配性能,因此,反复的实验样机不但增加了制造成本,而且也延长了时间减少了市场竞争力。因此随着 CAD 及虚拟现实技术的发展,产品的装配规划出现了新的方法即基于三维模型的虚拟装配技术。虚拟装配技术是在产品设计过程中,为了更好地帮助进行与装配有关的设计决策,利用计算机工具,通过分析、预测产品模型,对产品进行数据描述和可视化,做出与装配有关的工程决策而不需

21、要实物产品模型作支持7。该技术从设计原理方案出发在各种因素制约下寻求装配结构的最优解,由此拟定装配草图它以产品可装配性的全面改善为目的,通过模拟试装和定量分析,找出零部件结构设计中不适合装配或装配性能不好的结构特征,进行设计修改 最终保证所设计的产品从技术角度来讲装配是合理可行的,从经济角度来讲应尽可能降低产品总成本,同时还必须兼顾人因工程和环保等社会因素。虚拟装配则是虚拟制造的核心技术之一8,虚拟装配技术实施对象、操作过程均与生产实际情况高度吻合,因而可以生动直观地反映产品装配的真实过程,使仿真结果具有高可信度。而在虚拟现实系统的基本要素就是干涉检测,也是进行虚拟装配的前提。在虚拟装配环境中

22、,当两个零件发生接触时,它们应该能够按设计的关系进行装配,而不应发生一个零件穿入另一零件的现象。要做到这一点,必须能够实时、精确地判断虚拟物体间是否发生碰撞。同时虚拟装配中的碰撞检测算法除了要具有实时性以外,还需考虑模型表达对碰撞检测的影响。干涉又分为动态干涉和静态干涉检测。静态干涉检测是指在虚拟装配环境下,检测装配的各个零部件之间是否存在干涉,装配公差设计是否合理。动态干涉检测是在装配运动过程中(包括拆卸过程),检测装配的零部件之间是否存在运动干涉。动态干涉检测包括运动干涉检测,分析运动仿真结构,保证产品的运动构件工作时不与周围零部件发生碰撞干涉,即产品的运动构件能够可靠地工作。河北工业大学

23、硕士学位论文 3 虚拟装配技术的发展趋势9:(1)拟实化程度将提高。随着工业界应用要求的提高以及基于物理属性建模技术、虚拟现实技术和多模式人机交互技术的发展,虚拟装配拟实化程度必将越来越高,在可预见的将来完全有可能取代物理实物的试装配过程。(2)集成化。国内的虚拟装配系统大都是通过接口从商用 CAD 系统中获得产品的模拟及设计意图。而中间的数字化转换比较繁琐;再设计的意见也不能很好的反馈到 CAD 系统中,因此实现 CAD系统中集成虚拟装配功能是一种很好的办法。(3)智能化。虚拟装配要实现的目标之一是设计验证,即为工程师进行设计验证提供工具化的环境。随着人工智能技术的发展,工具化与智能化相并重

24、的装配设计环境既能够充分利用人的创造性,又能够充分利用形式化的专家知识以及计算机能力,实现人机协同工作。因此,工具化与智能化并重在相当长的一个时期内将是虚拟装配的发展方向。(4)自动化。当前大多数虚拟装配系统研究停留在手工装配过程,由手工装配转换到自动装配式虚拟装配的发展方向之一。虚拟装配技术在我国刚刚起步,但是在很多领域如:飞机制造、机械、船舶等都有应用,具有广阔的前景。近年来,虚拟装配技术受到了学术界的重视,很多大学、企业甚至政府部门都开始对该技术进行研究,世界各国尤其是发达国家都对虚拟装配技术给予了高度的重视,并投入了大量的人力物力进行研究10-14。1-2 研究的主要内容目的和意义研究

25、的主要内容目的和意义 在本文中在 C+软件中利用 ObjectARX2002 程序包来对电气产品的零部件进行参数化设计,通过对话框对零部件添加参数和需要的电气特性直接在 AutoCAD 中进行绘制。而且在绘制三维的实体可以建立与实物完全相同的样体,这样既可以让零件看起来直观易懂,又能够精确表达零件的全部属性。可以对每个零件添加所需要的电气方面的参数如:材质、电流、电压等等,并且能够通过零部件的输入参数经 C+程序的计算获得想要的输出结果如:电磁吸力、功率、磁通等等信息。这样只需要输入几个零部件的结构和物理参数就解决了绘制复杂零部件和繁琐计算的麻烦。提高了设计者的绘制效率,同时也在公差的输入等方

26、面方便设计者利用所得到的经验来完成。设计者可以变换不同的视图来观察零部件,也可以转换成二维平面的三视图,充分利用 AutoCAD 的强大二维绘图功能来进行标注、图层设置、修改等来完成设计。总之三维实体造型是目前为止描述三维几何形体最理想的模型。在虚拟装配方面实现的是自动装配,可以检查产品零部件之间的装配关系15,通过选择目标装配零部件的约束类型搜索参考装配零部件与之相匹配的装配元素,并且待装配的目标零部件可以通过识别参考零部件的角度和位置等信息进行自动的旋转平移等操作。在装配的过程中可以检测零部件是否与其它零件发生干涉,一旦发生干涉现象,说明零件的结构设计或装配顺序出现差错需要进行检查和改动。

27、在国内 CAD 针对电气产品的设计和装配领域的应用并不普遍,尤其是三维的实体造型及装配仿真电气产品实体造型及虚拟装配技术的研究 4 方面。如果能够将这一技术更加成熟和完善,对产品进行可装配性评价,会使整个设计周期、质量和响应市场变化能力方面有很大的帮助16。尤其是利用 AutoCAD 强大的二次开发功能使成本降低,能够得到普遍的应用。河北工业大学硕士学位论文 5 第二章第二章 AutoCAD简介及其二次开发环境简介及其二次开发环境 2-1 AutoCAD的发展概况的发展概况 2-1-1 AutoCAD发展简史发展简史 AutoCAD 是于二十世纪八十年代由美国 Autodesk 公司开发的绘图

28、软件,其目的就是能够在微机上应用 CAD 技术。通过不断的努力和完善,如今已经成为世界上绘图工具的龙头,尤其是在二维绘图方面更是广为流行17。AutoCAD 具有用户界面设计好,通过菜单或命令行来和用户交互从而进行各种操作,容易学习、使用起来方便。有了 AutoCAD 软件,工程师们绘图的速度比传统的手工绘图速度要快得多,而且精确度更高了。它还有非常广泛的适应性,不仅能够在各种操作系统支持的微型计算机和工作站上运行,还支持各种图形显示设备 40 多种,绘图仪和打印机数十种,以及数字仪和鼠标器 30 多种,这些为 AutoCAD 的普及创造了条件。为航空航天、造船业、建筑、化工美工等各个领域都创

29、造了很大的利益。AutoCAD 的发展过程可分为初级阶段、发展阶段、高级发展阶段、完善阶段和进一步完善阶段五个阶段,每个阶段都增加了一些新的功能18-19。初级阶段:(1)其执行方式类似 DOS 命令。(2)具备尺寸标注功能。(3)具备文字对齐、颜色定义功能及图形输出功能。(4)图形的编辑功能加强。(5)图形绘制及编辑功能增加。发展阶段:(6)出现了 Screen Menu,命令不需要背,Autolisp 初具雏形。(7)有了系统化语法,使用者可改进和推广。(8)新增 3D 功能,AutoCAD 已成为美国高校的 inquired course。(9)出现了状态行及下拉式菜单。高级发展阶段:(

30、10)进一步完善 R9.0,Autodesk 公司已成为千人企业。(11)增加了 AME(Advanced Modeling Extension),不过与 AutoCAD 分开销售。(12)采用 DOS 与 WINDOWS 两种操作环境,出现工具条。(13)AME 纳入 AutoCAD 之中。完善阶段:电气产品实体造型及虚拟装配技术的研究 6(14)适应 Pentium 机型及 Windows95/NT 操作环境,实现与 Internet 网络连接,操作更方便,运行更快捷,实现中文操作。(15).提供了更开放的二次开发环境,出现了 Vlisp 独立编程环境,而且 3D 绘图及编辑更方便。进一步

31、完善阶段:(16)提供了更为有效的方式来创建和管理包含在最终文档当中的项目信息。显著地节省时间,得到更为协调一致的文档并降低了风险。(17)推出最新功能:创建图形、动态图块的操作、选择多种图形的可见性、使用多个不同的插入点、贴齐到图中的图形、编辑图块几何图形、数据输入和对象选择(18)拥有强大直观的界面,可轻松而快速的进行外观图形的创作和修改,07 版致力于提高 3D设计效率。(19)提供了创建、展示、记录和共享构想所需的所有功能。将惯用的 AutoCAD 命令和熟悉的用户界面与更新的设计环境结合起来。最新版本是 AutoCAD 2010,该版本引入了新的功能,包括自由形式的设计工具,参数化绘

32、图,并加强 PDF 格式的支持。2-1-2 AutoCAD的发展趋势的发展趋势 CAD 技术作为成熟的普及技术已在企业中广泛应用,并已成为企业的现实生产力。围绕企业创新设计能力的提高和网络计算环境的普及,CAD 技术的发展趋势主要围绕在标准化、开放式、集成化、智能化四方面20。(1)标准化。由于 CAD 软件一般都在一个异构的工作平台上集成,那么通过开放式的系统来支持异构跨平台环境,为了达到这个目的就要对其实行一系列的标准化的技术。目前标准有两大类:一是主要来自国家或国际标准制定单位的公用标准;另一是属私有性质的市场标准或行业标准。前者注重标准的开放性和其采用技术的先进性,后者以市场为导向注重

33、考虑有效性和经济利益。(2)开放性。CAD 系统目前广泛建立在开放式操作系统平台上,该系统为最终用户提供二次开发环境,这样用户可以针对某些特殊的需要,自主对 CAD 软件进行二次开发创建专业软件,AutoDesk 公司提供了二次开发语言 AutoLISP,并且随着软件技术的发展,不断加以更新,先后推出了 ADS、ObjectARX、VBA、VisualLISP、DotNet 等二次开发语言,适合于各种不同类型设计人员对 AutoCAD 进行二次开发。(3)智能化。CAD 的智能化无疑就是要通过该软件与现有的人工智能技术相结合来研究人类的思维和设计的模式,从而提高 CAD 的效率。智能 CAD

34、将成为 CAD 发展的必然。在以前的版本中用的是二维图纸,但是二维图形在视觉上不够直观,而且非专业的设计人员很难看懂。通过进一步的开发在高版本的 AutoCAD 中三维实体的创建功能已经有了加强,并且可以对创造的实体进行虚拟装配,让工作人员更直观的观察装配的效果。若智能 CAD 产生必将对人工智能方面产生很大的影响同时也将对科学河北工业大学硕士学位论文 7 的发展产生深刻的影响。2-2 AutoCAD的系统二次开发环境及工具介绍的系统二次开发环境及工具介绍 2-2-1 系统的开发环境系统的开发环境 在本文中需要的软件及开发工具为以下三种21:AutoCAD 2002 中文版或英文版。VC+6.

35、0 英文版。ObjectARX 2002 开发包。一般来说,ObjectARX 开发包的版本和 AutoCAD 的版本是对应的。在开发工具方面,AutoCAD R14、AutoCAD 2000 和 AutoCAD 2002 平台上使用的开发工具是 VC+6.0,AutoCAD 2004 和 AutoCAD 2005平台上使用的开发工具是 VC.NET 2002。2-2-2 AutoCAD的二次开发语言概述的二次开发语言概述 AutoCAD 之所以成为使用最为广泛的绘图软件,不但由于它的功能强大、用户界面好,还由于它具有开发的体系结构和完善的开发系统,可以允许用户和开发者采用高级的编程语言做各种

36、要求的二次开发,而其二次开发语言也在不断的涌现,以下为四种主要的开发工具:Auto LISP(Visual LISP)、ADS、Object ARX 及 VBA(VB)22。(1)(1)AutoLISP 语言 语言 AutoLISP 语言是 Autodesk 公司提供的第一代二次开发语言,它可以实现向 AutoCAD 中增加命令。广泛应用于人工智能的语言。它是完全嵌套在 AutoCAD 内部的属于解释性的语言,优点是:编程简单、不需要编译,可以运行于任何平台,而且该开发程序向下兼容性好。利用 ALISP 开发 AutoCAD 的一个典型例子就是实现参数化绘图的程序设计。它的缺点是:程序运行速度

37、慢、文件是 ASCII 码方式,与其它语言有较大的差异,无法编译、程序安全性差、与用户交互性能差、不适合开发大的项目等缺点,已经被 VLISP 替代。(2)ADS(AutoCAD Development System)开发系统)开发系统 ADS 是基于C 语言开发应用程序的系统。ADS可直接利用用户熟悉的C编译器来编译能够在Auto CAD 的环境下运行的可执行文件,包含了 C 语言的全部功能,可见其功能很强大。程序的源代码比AutoLISP 可读性好,克服了解释性语言所固有的许多缺点,具有速度快,安全性高的特点。但是 ADS作为一组 ALISP 外部函数,由 ALISP 解释器装入、解释并请

38、求 Auto CAD 运行,不能用 ALISP 命令函数或 ads_command()来激活,而且 C 语言比 LISP 语言难于掌握和熟练应用。(3)ObjectARX ARX 是一个动态链接库。它与 AutoCAD、Windows 之间均采用 Windows 消息传递机制直接通信,通过调用acrxEntryPoint()函数建立与AutoCAD消息传递的入口。利用在acrxEntryPoint()函数中的switch电气产品实体造型及虚拟装配技术的研究 8 语句处理来自 AutoCAD 的各种消息。执行 ARX 应用程序所需系统开销最小,速度最快,避免了使用过多的 IPC,消耗过多的计算机

39、内存空间,适合大型软件开发。但开发过程复杂,对程序员的要求也相对较高。ObjectARX 是采用先进的面向对象的编程原理,以 C+为编程语言,提供可与 AutoCAD 直接交互的开发环境,能够使用户方便快捷地开发出高效简洁的 AutoCAD 应用程序。ObjectARX 从本质上讲,是一种特定的 C+编程环境。它包含的一组动态链接(DLL)库与 AutoCAD 在同一地址空间运行并能够直接利用 AutoCAD 代码和核心数据结构。库中包含一组通用工具,使二次开发者可以充分利用AutoCAD 的开放结构,直接访问 CAD 的图形系统、数据库结构以及 CAD 几何造型核心,以便能在运行期间实时扩展

40、 CAD 的功能,创建能全面享受 AutoCAD 固有命令的新命令。ObjectARX 的核心是两组关键的 API,即 AcDb(Auto CAD 数据库)和 AcEd(Auto CAD 编译器),另外还有其它的一些重要库组件,如 AcRX(Auto CAD 实时扩展)、AcGi(Auto CAD 图形接口)、AcGe(Auto CAD 几何库)、ADSRX(Auto CAD 开发系统实时扩展)。ObjectARX 还可以按需要加载应用程序,使用 ObjectARX 进行应用开发还可以在同一水平上与 Windows 系统集成,并与其它 Windows 应用程序实现交互操作。在本文中对 CAD的

41、二次开发就用的 ObjectARX2002 工具。(4)VBA(Visual Basic for Applications)VBA 最早是内嵌在 Office97 中的一种编程语言,VBA 易学易用,功能强大。VBA 嵌入到了AutoCAD 中,使 AutoCAD 能容易地与其它 Windows 下的应用软件交互。VBA 具有比较明显的几个缺陷:(1)VBA 不能自如地使用 AutoCAD 命令,只能用脚本文件的模式,以字串方式向 AutoCAD 命令行发送一串响应,这个字串的内容也只能在自己的程序中生成和进行数据转换。这样,许多交互操作的技巧,在 VBA 中不能直接借用。(2)VBA 不能编

42、译,源程序始终暴漏在最终用户面前。VBA 很容易由于用户的误操作,使应用程序出错甚至崩溃,这也是 ALISP 的致命缺陷。5 Visual LISP VLISP 是通过 AutoLISP 进行改进和扩充,并且多了很多功能和函数是一种可视化的 LISP 编程开发环境,可以通过 ActiveX Automation 接口与对象交互。VLISP 提供了一个完整的集成开发环境(IDE),提高了二次开发的效率。VLISP 适于描述人机交互操作的过程,善于编写模拟设计师思路的专业设计程序。对于各种用户输入的接受、错误识别与恢复等操作具有相当优秀的功能,能充分发挥 CAD 功能的巨大作用和交互操作的功能,不

43、但对编程人员的专业知识要求低于 ARX,而且风险也大大低于 ARX。2-2-3 利用利用ObjectARX编写简单程序编写简单程序 为了能够从整体上利用 ObjectARX 开发工具实现对 AutoCAD 的二次开发,先举个简单的例子来描述一下程序的基本结构,展示一下文件中各函数的功能和运行效果。像很多程序书一样本文从河北工业大学硕士学位论文 9“Hello,World”程序开始。该程序很简单,但是却能够清楚的说明整个程序的组成结构。上文提过 ARX 程序是 Windows/DLL 程序,它没有 main()函数,而应用程序必须知道该服务程序的入口点。ARX 应用程序的入口点是 arcxEnt

44、ryPoint 函数。实现“Hello,World”程序代码如下:/在文件名为 Hello.cpp 中添加代码#include#include /声明初始化函数和卸载函数 void initApp();void unloadApp();/声明命令的执行函数 void HelloWorld();/加载应用程序时被调用的函数 void initApp()/使用 AutoCAD 命令机制注册一个新命令 acedRegCmds-addCommand(Hello1,Hello,/输入这两个命令名称均可以在 Hello,/AutoCAD 中运行该程序 ACRX_CMD_MODAL,HelloWorld);

45、/卸载应用程序时被调用的函数 void unloadApp()/删除命令组 acedRegCmds-removeGroup(Hello1);/实现 Hello 命令的函数 void HelloWorld()acutPrintf(nHello,World!);电气产品实体造型及虚拟装配技术的研究 10/入口点函数 extern C AcRx:AppRetCode acrxEntryPoint(AcRx:AppMsgCode msg,void*pkt)switch(msg)case AcRx:kInitAppMsg:acrxDynamicLinker-unlockApplication(pkt);

46、acrxRegisterAppMDIAware(pkt);initApp();break;case AcRx:kUnloadAppMsg unloadApp();break;default:break;return AcRx:kRetOK;在这里只对几个重要函数进行说明(1)initApp()和和 unloadApp()函数。函数。其中 initApp()函数在应用程序中被 AutoCAD 加载时调用,实际上这里它只做一件事情,就是使用 AutoCAD 的命令机制注册一个新命令。这个命令同 AutoCAD 的内部命令一样,可以直接在命令行中执行。unloadApp()函数则在程序被卸载时所调用

47、,该函数会从AutoCAD 中删除所定义的命令组“EX01”,此后就不能再调用所定义的命令了。前面在 initApp()函数中注册了外部函数,在卸载程序时要将其删除。这两个函数都是在 acrxEntryPoint 函数(相当于一般 C程序中的 main 函数)中被调用。(2)自定义函数。)自定义函数。该函数的作用是在 AutoCAD 的命令行中输出语句“Hello,World!”,通过 ARX的一个全局函数 acutPrintf()在 AutoCAD 命令行显示指定的字符串,acutPrintf()函数的使用类似于 C 语言中的 printf 函数,可以使用“n”来实现打印中的换行。(3)入口

48、函数。)入口函数。类似于 Windows 应用程序中的消息机制,入口点函数 acrxEntryPoint()用一个 switch结构来处理各种消息。最基本的消息就是 AcRx:kInitAppMsg 和 AcRx:kUnloadAppMsg,前者在应用程序加载时发生,后者则是应用程序卸载时发生。由于 ObjectARX 应用程序是一个 DLL,因此它没有主函数 main(),AutoCAD 调用 ObjectARX 模块的 acrxEntryPoint()函数来传送消息到应用程序中。河北工业大学硕士学位论文 编写完程序后,对程序进行编译、链接、运行,AutoCAD2002 自动启动。选择在指定

49、的输出路径中生成的 Hello.arx 文件并进行加载,成功加载后,可以在软件的命令行中输入命令:hello 命令,这时会在下面输出 Hello World!2-2-4 AutoCAD的数据库概述的数据库概述 AutoCAD 数据库储存构成 AutoCAD 图形的实体和对象。AutoCAD 图形是储存在一个数据库中的对象的集合,在该数据库中有许多表,表中含有记录或指向其它表的索引,和数据库一样,可以打开表进行读或写操作,可以把新的记录增加到表中,表中已有的记录可以修改。当操作完毕,必须关闭表。模型和图纸空间是拥有实体的块表记录。一些基本的数据库对像是实体、符号表和字典。在数据库中的每个对象均有

50、一个句柄,这个句柄对于特定的图形上下之间是唯一的识别标志。在一个 AutoCAD 的图形中,实体就是一种特殊的数据库对象,它具有图形表示。下面用图 2.1 来表示 AutoCAD 数据库的关键组件:层表 块表其它符号表命名对象字典 层表记录层表记录符号表记录符号表记录块表记录层表记录层表记录块表记录其它符号表对象对象 数据库图 2.1 AutoCAD 的数据库组成 Fig.2.1 The component of AutoCAD database 当通过 CAD 创建对象时,它们被添加到数据库中合适的容器对象中,实体就会添加到块表中的记录里。符号表记录被添加到合适的符号表中。所有其它对象被添加

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁