




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
AutoCAD2000
ObjectARX二次开发技术AutoCAD二次开发技术综述ObjectARX开发的一般步骤菜单设计综合实例:参数化齿轮设计AutoCAD二次开发技术综述AutoCAD为目前在微机上应用最广泛的CAD软件,但它为通用软件,即支撑系统,只提供了一个初步设计和绘图的环境。利用它完成具体项目开发时还要查阅手册、标准等,较为繁琐。Autodesk采用了开放的软件设计风格,留有了包括C/C++在内的多种二次开发接口,允许用户定制、开发本软件,使之更适应某一设计领域,可大大减少设计人员的工作量。各种开发方法的比较第一代:利用AutoLisp语言开发:AutoLisp为解释型语言,可完成参数化程序设计及重复性工作、客户化开发、编制AutoCAD菜单及命令注册。当开发的程序被加载后,它作为一个单独的进程,通过进程间通讯与AutoCAD交互。它的特点就是简单但速度较慢,难以开发大型程序。第二代:以ADS、ARX、ADSRX为代表的C环境下的开发语言ADS(AutoCADDevelopmentSystem)应用C开发环境,与ADS库、标准C库连接即可生成可执行文件(EXE文件)。89年,在AutoCADR11中,提供了c语言的编程接口。它增加了专门用于对AutoCAD操作的函数。但它仍然用AutoLisp解释器加载,而且采用进程间通讯,当软件规模较大时,速度较慢。但因使用c编译器,所以在源程序安全性、内存操作的效率、文件大小及运行速度上要好于AutoLisp。第二代:以ADS、ARX、ADSRX为代表的C环境下的开发语言ARX:在95年的AutoCADR13中,autodesk向开发用户提供了一种能够直接存取的面向对象的内核,即ARX(AutoCADRuntimeeXtension)。ARX为一用C++开发的动态连接库,用其开发的应用程序能在AutoCAD运行时存取其内核及内存地址,从而共享AutoCAD的地址空间。因此,其应用程序就不需要再通过进程间通讯与AutoCAD通讯了,这样速度就加快了。第二代:以ADS、ARX、ADSRX为代表的C环境下的开发语言ADSRX:在出现ObjectARX后,原ADS库就变成为ADSRX,它像ObjectARX一样,要VC++编译器生成动态连接库文件(DLL)。在执行等方面都与ObjectARX兼容。第三代:VisualLISP、ObjectARX、VBA等新型开发方法VisualLISP是一种新型LISP编程工具,它提供了完整的集成开发环境,是AutoLISP的扩展和延伸,与AutoLISP完全兼容,是一种编译型的应用程序接口。基于ActiveXAutomation技术的VBA是在96年产生ActiveXAutomation技术后,Autodesk公司增加了ActiveXAutomation服务器的功能,使许多语言和应用程序可通过ActiveX与AutoCAD通讯,操纵AutoCAD功能。AutoCAD将其各功能封装在AutoCADActiveX对象中,供编程时各语言或应用程序调用。各应用程序通过Automation对象的属性、方法和事件来实现对AutoCAD的操作,其过程如下页图所示:ObjectARX开发发::为为面面向向对对象象的的AutoCAD运行行时时扩扩展展,,在在vc++环境境下下开开发发,,是是在在ADS基础础上上发发展展起起来来的的,,它它包包含含一一组组动动态态连连接接库库,,可可直直接接访访问问AutoCAD核心心数数据据结结构构、、图图形形系系统统、、CAD几何何造造型型,,在在运运行行时时可可扩扩展展新新命命令令。。在在编编译译时时,,它它不不生生成成EXE文件,而而是生成成DLL(动态连连接库))文件。。各种开发发方法的的比较综综述:速度方面面:直接与AutoCAD通讯比进进程间通通讯快,,编译型型比解释释型快。。因此,,ObjectARX程序运行行速度比比AutoLisp快。稳定性::当因严重重错误而而导致应应用程序序进程崩崩溃时,,Autolisp因进程的的独立性性强,不不会影响响AutoCAD的进程。。但因ObjectARX的应用程程序与AutoCAD本身的核核心进程程共享内内存空间间,所以以当应用用程序崩崩溃时,,容易影影响到AutoCAD自身的进进程,但但若应用用程序经经过严格格测试,,则不会会发生问问题。性能:ObjectARX实时扩展展AutoCAD,共享其其内存地地址,可可随意调调用其核核心数据据库,功功能强大大。而其其他方法法仅限于于使用AutoCAD命令或或系统统定义义的函函数,,功能能有限限。技术难难度::VBA、AutoLisp等方法法较容容易,,学习习周期期短;;而ObjectARX依赖于于C++,需经经严格格的编编译、、连接接,学学习的的周期期长。。2.ObjectARX开发的的一般般步骤骤与应应用程程序加加载ObjectARX开发概概述开发的的基本本过程程及应应用程程序加加载开发Win32Dynamic-LinkLibrary型工程程开发MFCAppwizard(dll)型工程程ObjectARX开发概概述应用ObjectARX所开发发的应应用程程序称称为ObjectARX应用程程序,,为WindowsDLL程序。。而AutoCAD本身为为Windows程序。。Windows程序与与DLL之间采采用Windows消息传传递机机制通通讯,,如下下图所所示::ObjectARX开发概概述在ObjectARX应用程程序加加载时时,AutoCAD传递消消息AcRx::kInitAppMsg给应用用程序序,这这时通通过acedRegCmds宏的addCommand命令注注册一一个命命令,,同时时指定定命令令所要要调用用的函函数,,然后后定义义此函函数。。卸载载时,,传递递AcRx::kUnloadAppMsg,同样样调用用acedRegCmd宏的removeGroup函数,,完成成应用用程序序的卸卸载。。开发的的基本本过程程及应应用程程序加加载定制开开发环环境编辑应应用程程序编译、、连接接、生生成arx文件及及应用用程序序加载载定制开开发环环境分两部部分::每个个工程程都需需要的的部分分和单单独为为某一一工程程单独独定制制的。。每个工工程都都需要要的部部分::进行行ObjectARX开发时时,需需要使使用ObjectARX开发工工具包包资源源,并并且每每个工工程项项目中中都要要使用用,因因此可可将其其资源源的目目录设设置于于开发发环境境配置置中。。方法:单击Tools|Options菜单,在弹弹出的对话话框中单击击Directories(目录)属属性页,点点击showdirectoriesfor下拉列表框框的分别选选择和添加加OBJECTARX2000目录下的INC和LIB两个路径,,这样便包包含了以后后所要使用用的头文件件和库文件件。定制开发环环境为某一工程程单独定制制的部分::每个项目目在建立后后,还应设设置ARX程序的编译译开关,使使程序能够够按预定的的编译方案案进行编译译。步骤:单击菜单project|settings,在弹出的的对话框projectsettings中1.选择c/c++属性页,选选择category为CodeGeneration,使Userun-timelibrary为DebugMutilthreadedDLL。定制开发环环境2.选择Link属性页,选选择Category为General。在Outputfilename文本框中,,将文件扩扩展名改为为arx,在Object/Librarymodules列表中添加加输入库,,需要加入入哪些库由由项目中用用到的函数数来确定。。然后选择择Category为Input,在Ignorelibraries文本框中输输入msvcrtd.lib。最后,选选择Category为Output,在Baseaddress文本框中输输入0x1c000000。这样,便便完成了应应用程序的的设置。编辑应用程程序一般的ObjectARX应用程序包包含头文件件、源文件件和模块定定义文件,,这也是动动态连接库库文件所包包含的文件件。模块定义文文件:指定定了库文件件名和输出出函数名。。LIBRARY节输出的文文件名,必必须和工程程最后生成成的动态库库(即ARX应用程序))同名;所所有的ObjectARX程序必须输输出两个函函数:acrxEntryPoint和acrsGetApiVersion。编辑应用程程序一般的ObjectARX应用程序源源文件及头头文件应包包含以下函函数:入口点函数数:acrxEntryPoint()。为接收AutoCAD消息的函数数,在函数数体中有一一switch语句,可分分别处理从从AutoCAD程序接收到到的消息,,执行相应应的操作。。添加命令函函数:应用用acedRegCmds宏的addCommand函数可给应应用程序添添加一条外外部命令,,并指定此此命令所要要调用的函函数。上步中外部部命令所要要调用的函函数:此函函数中操作作的为我们们所要完成成的任务。。编辑应用程程序所要包含的的头文件::在程序中中引用了许许多函数,,其说明在在头文件中中,而其定定义在库文文件中。在在工程的设设置中已经经包含了库库文件,需需要在头文文件或源文文件开头将将其头文件件包含进去去。如函数数acedCommand用于在应用用程序中执执行一条或或多条AutoCAD命令,它在在头文件acedads.h中说明。所所以,当程程序中用到到它时,必必须包含此此头文件。。编译、连接接、生成arx文件及应用用程序加载载将各文件编编辑好后,,编译、连连接便可生生成以arx为扩展名的的动态连接接库文件。。应用程序的的加载:菜单命令Tools|LoadApplication。命令:ARX。自动加载。。在启动目目录下建立立acad.rx文件,包含含要执行的的命令名,,系统在启启动时便可可自动加载载该程序。。开发Win32Dynamic-LinkLibrary型工程动态连接库库文件分为为两类:Win32Dynamic-LinkLibrary型和MFCApplication(dll)型。第一种种较简单,,而第二种种则有MFC的支持。Win32Dynamic-LinkLibrary型工程项目目的创建过过程:单击File|New,选择Projects属性页,在在对话框中中选中Win32Dynamic-LinkLibrary。确定适当当的路径和和名称,确确认。在下下一页中,,选择AnemptyDLLproject。按照前面所所述,设定定程序的编编译开关,,在link属性页的库库模块列表表中,添加加acad.lib,rxapi.lib,acrx15.lib,acutil15.lib及acedapi.lib一般可满足足需要。开发Win32Dynamic-LinkLibrary型工程添加文件::至少应添添加一个源源文件和一一个模块定定义文件。。在源文件件中,至少少应包含一一个入口点点函数,用用它来接收收从AutoCAD发送来的消消息。一般般还应包含含一个命令令注册函数数和注册函函数所要调调用的函数数。模块文文件中,指指定库名并并添加输出出函数名。。编译、连接及及运行程序::如“开发的的基本过程及及应用程序加加载”所述。。开发MFCAppwizard(dll)型工程MFCApplication(dll)型工程项目的的特点:ObjectARX提供了一组类类,使得开发发者能够创建建基于MFC的界面。而这这组类是继承承于vc的CDialog类,所以要使使用这些类,,必须使工程程基于MFC,然后再对里里面的文件作作适当的设置置。MFCApplication(dll)型工程项目的的创建过程::建立项目文件件:单击File|New,选择Projects属性页,在对对话框中选中中MFCApplication(dll)。确定适当的的路径和名称称(假设为Mymfc),确认。在下下一页中,选选择MFCExtensionDLL(UsingsharedMFCDLL)。这时,程序序自动建立Mymfc.cpp,Mymfc.def,StdAfx.h,Resource.h,StdAfx.cpp等六个文件。。按照前面所述述,设定项目目:在link属性页的库模模块列表中,,添加acge15.lib,acad.lib,acedapi.lib,acrx15.lib,acdb15.lib,acutil15.lib,rxapi.lib,acui15.lib,adui15.lib一般可满足需需要。创建对话框::应用基于MFC的工程的主要要目的是处理理对话框,所所以要创建对对话框。其创创建方法与一一般的VC程序相似。创建类和控件件:创建操作作此对话框的的类和控件,,以完成对对对话框的操作作,此步骤与与一般的VC程序相似。编辑对话框头头文件:将对对话框的父类类由CDialog改为由ObjectARX定义的类,以以继承由ObjectARX定义的特征。。创建处理程序序并向其添加加代码:添加加处理对话框框及其中控件件的函数,并并添加操纵代代码。修改基本文件件:在创建工工程时自动生生成的基本文文件StdAfx.h,StdAfx.cpp,Mymfc.cpp,Mymfc.def,并不能完全满满足程序需要要,还要作进进一步修改,,以增加与ObjectARX的接口。编译、连接及及运行程序::如“开发基基本过程及应应用程程序加载载”所述。3.菜单设计为方便外部命命令的调用,,AutoCAD提供了菜单定定制的途径,,用户可通过过菜单来调用用自定义的外外部命令。AutoCAD中所有的菜单单均可自定义义,如下拉菜菜单、工具按按钮、图像菜菜单、屏幕菜菜单等。菜单文件的编编辑、加载菜单样板文件件可以在文本本编辑状态下下编辑,其扩扩展名为mnu,在经过加载载后,系统会会生成编译后后的文件(扩扩展名为mnc)、菜单资源源文件(扩展展名为mnr)等等文件。。加载的方法法:在命令状态下下执行命令::menu,选择文件类类型为样板文文件即可加载载mnu文件。执行菜单命令令:工具|自定义菜单,,选择要加载载的文件即可可。修改系统文件件:acad.mnu。将要添加的的部分写入此此文件,程序序启动加载菜菜单时便可自自动加载自定定义的部分。。通过菜单对外外部命令的调调用菜单文件的定定义分为菜单单组、菜单节节和菜单项。。每个菜单文文件为一组。。而菜单的每每一部分为一一项,如一条条下拉菜单。。而菜单的每每一项为一菜菜单项。而菜菜单项由标示示符,标签文文本和宏命令令,其中标签签文本为显示示在菜单上的的文字,而宏宏命令就是将将要执行的内内部或外部命命令。因此执执行此菜单命命令就如同在在命令行执行行一样。图像菜单的制制作与调用如右图所示,,为绘制三维维曲面的图像像菜单。利用用对图像菜单单的调用,可可以更形象的的表达出所要要绘制的图形形。图像菜单的制制作与调用幻灯片文件的的制作:要制制作图像菜单单要先制作幻幻灯片然后利利用AutoCAD提供的工具制制作幻灯片库库文件。图像菜单的制制作:图像菜菜单以***IMAGE开头,此为一一节。在节内内还有子菜单单名,以**开头。如右右边代码所示示:***image**image_3DObjects[三维对象][acad(Box3d,长方体)]^C^C_ai_box[acad(Pyramid,棱锥体)]^C^C_ai_pyramid[acad(Wedge,楔体)]^C^C_ai_wedge[acad(Dome,上半球)]^C^C_ai_dome[acad(Sphere,球体)]^C^C_ai_sphere[acad(Cone,圆锥体)]^C^C_ai_cone[acad(Torus,圆环)]^C^C_ai_torus图像菜单的制制作与调用图像菜单的加加载与调用::图像菜单必必须经过加载载与调用才能能显示。它一一般通过下拉拉菜单来调用用,在下拉菜菜单的宏命令令中调用图像像菜单的子菜菜单名,即可可调用整个图图像菜单。如如以下程序段段:ID_3dsurface[三维曲面(&3)...]$I=ACAD.image_3dobjects$I=ACAD.*后面以$开头的话即为为对图像菜单单的调用。4.综合实例:参参数化齿轮设设计利用ObjectARX技术可进行设设计环境的定定制、功能的的扩充以及菜菜单的定制。。本例利用了ObjectARX的图形数据库库功能、基于于MFC的用户界面功功能和ADS的部分函数来来实现了直齿齿轮的参数化化设计。它根根据输入的齿齿数、模数、、齿型、材料料及内孔直径径等参数来自自动计算齿轮轮的各参数并并根据机械设设计的要求来来得出齿轮的的结构,并按按国标绘出齿齿轮的图形。。分析软件需需求概要设计详细设计编写代码调试、测试试并完成菜菜单制作和和程序加载载分析软件需需求本软件要求求按照输入入的参数计计算齿轮各各变量并为为齿轮的结结构提供设设计方案。。其中,对对每种齿轮轮必须提供供的基本参参数为:齿数模数压力角齿宽齿型材料内孔直径((或轴的直直径)销孔高度((对于齿轮轮轴式可不不提供)分析软件需需求对于齿轮轴轴式和轮辐辐式,因还还牵扯其他他参数,此此程序略。。对于实心式式。若为带带有台阶的的,还需以以下参数::台阶高度台阶的圆周周直径分析软件需需求对于腹板式式,还应提提供如图所所标示的各各参数和孔孔的个数。。其中输入入的参数的的值在机械械设计中有有一定的范范围要求,,所以要求求系统能检检验输入值值的可接受受性,也可可由系统根根据机械设设计的要求求直接给出出各参数的的值。分析软件需需求根据输入的的参数计算算齿轮各参参数,并将将设计手册册中轴孔与与销钉宽度度的离散关关系转化为为程序代码码,并求出出销钉宽度度。根据齿顶圆圆,确定齿齿轮的结构构形式或者者让用户自自己确定结结构形式。。根据以上数数据和结构构形式,来来计算各点点的坐标。。根据坐标,,利用ObjectARX的图形功能能和ADS的部分函数数来画出完完整的图形形。概要设计概要设计要要求对该程程序的大体体思路有一一个初步的的规划,基基本上形成成该程序的的控制流程程。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 完美清爽防痘课件
- 小学防溺水假期安全课件
- 19《父爱之舟》第一课时教学设计-2024-2025学年五年级上册语文统编版
- 第八章 实数 单元整体教案-2024-2025学年人教版七年级数学下册
- 《第六单元 五十六朵花 欣赏 月光下的凤尾竹》(教学设计)-2023-2024学年人教版(2012)音乐三年级下册
- 2023八年级物理下册 第十一章 机械与功第5节 改变世界的机械教学实录 (新版)教科版
- 养老护理机器人
- 2025咨询服务合同书(示范合同)
- 七年级历史上册 第二单元 夏商周时期:早期国家的产生与社会变革 第4课 早期国家的产生和发展教学实录 新人教版
- 《丰富的节日文化》教学设计 2023-2024学年鲁科版初中劳动技术七年级上册
- 河南省豫西北教研联盟(洛平许济)2024-2025学年高三第二次质量检测数学试题
- 车间规则制度培训
- 2025年郑州职业技术学院单招职业技能考试题库必考题
- 2025年中央纪委全会试题及答案
- 2024-2025学年人教版数学八年级下册期中检测卷(含答案)
- 传感器技术-武汉大学
- 气体抑爆系统设计
- 风电场变电站所夜间熄灯巡视表
- 绿色环保施工方案
- 污水处理厂工艺设计(AB法)毕业设计
- 企业会计准则中日文对照
评论
0/150
提交评论