您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 利用ObjectARX开发工程图系统
开发工程图系统晁彩霞,魏永乐辽宁工程技术大学机械工程学院,辽宁阜新(123000)E-mail:chaocaixia@163.com摘要:介绍了在AutoCAD系统中由三维实体模型向二维工程图转化的方法,并详细叙述了采用MView命令创建实体模型的三视图的步骤。针对AutoCAD系统在工程图转化功能方面的不足,利用ObjectARX二次开发工具,在AutoCAD系统现有的创建三视图功能的基础上开发了工程图系统,实现了由三维实体模型向二维工程图的快速转化。该系统具有界面友好、操作简单、使用方便等特点,减少了用户的重复操作,提高了设计效率,而且工程图直接生成模型空间,使用户操作起来更加方便。该工程图系统的实现证明采用ObjectARX工具开发应用程序,是增强AutoCAD系统功能、提高用户设计效率、降低用户劳动强度的有效途径。关键词:工程图;AutoCAD;ObjectARX中图分类号:TP391.721.引言随着计算机技术的迅速发展,计算机辅助设计(ComputerAidedDesign,简称CAD)已经在机械、建筑、电子等行业得到了广泛的应用。CAD技术的应用,可以加快产品开发进程、提高生产效率和产品质量、降低生产成本。而且当前许多产品的设计都是从三维实体建模开始的,这符合工程实际和人的思维习惯,形象直观、真实感强,并且可以在实体模型上进行有限元分析等各种计算,有利于产品的优化设计,而二维工程图在当前产品的设计和加工过程中,作为重要的技术文档仍是不可缺少的[1]。Autodesk公司的主导产品AutoCAD作为通用的CAD软件以其功能强大、使用灵活、二次开发方便等优点在机械、电子、建筑、航空、船舶、室内、模具、服装等领域得到了极为广泛的应用。在AutoCAD系统中,即可以进行三维实体造型,也可以由实体模型生成二维三视图,但三视图的生成步骤繁琐,设计效率低。为了能在充分发挥三维建模的基础上,方便、快捷地创建二维工程图,进一步提高用户的设计效率,减轻劳动负担,本文在AutoCAD系统现有的创建三视图功能的基础上,利用功能强大的ObjectARX二次开发工具开发了工程图系统,实现了由三维实体模型向二维工程图的快速转化。2.AutoCAD中创建三视图在AutoCAD系统中,可以由三维实体模型创建实体模型的三视图,主要方法有三种:一是用MView命令生成;二是用正交法则生成;三是用AutoLISP程序生成。这三种方法中有些步骤是类似的,尤其是第一种和第二种有很多步骤都是一样的。由于篇幅原因,仅介绍采用MView命令生成三视图的主要步骤[2,3]:(另外两种方法详见文献[3])第一步:采用实体造型方法建立三维实体模型;第二步:切换到图纸空间(Layout1或Layout2),并设置图纸和打印机选项;第三步:删除已有的视图(系统自动生成的一个视图);第四步:输入MView命令,输入4,即生成4个视图,然后用鼠标指定各个视图的大小和位置;第五步:激活左上角的视图,从菜单View/3DView中选择Front选项,将其设置为前视图;第六步:输入Zoom命令,选择Scale项,输入比例系数1XP,按1:1显示模型;第七步:输入Solprof命令,选择实体模型,其它的提示直接回车即可,提取前视图的轮廓线;重复步骤第五~七步,获得实体模型的其它视图的轮廓线;第八步:打开图层管理对话框,会发现系统自动创建了几个图层,其中以PH为前缀的图层记录不可见轮廓线,以PV为前缀的图层记录可见轮廓线,将以PH为前缀的图层的线型设置为Hidden类型;第九步:将0层关闭,由于三维实体模型及生成的几个视图原稿都在0层,所以能看到的只有新生成的可见和不可见轮廓线。至此,实体模型的三视图在图纸空间创建完成。由以上步骤可以看出,采用AutoCAD系统的命令来创建工程图的三视图步骤繁琐、重复操作多、效率低,因此有必要对AutoCAD系统进行二次开发,开发一个操作简单、使用方便、界面友好的工程图系统,以便能够快速由实体模型得到二维工程图。3.工程图系统的开发本文将讨论如何在AutoCAD2004系统现有的创建实体模型三视图功能的基础上,利用ObjectARX二次开发工具开发工程图系统。根据工程图所表达的内容,该工程图系统主要包括了设置图纸幅面,填写标题栏和创建三视图等模块。与AutoCAD系统中采用命令方式创建的三视图最主要的不同点在于:采用AutoCAD系统的命令创建的三视图是在图纸空间,而该工程图系统创建的三视图在模型空间。这样用户操作都是在模型空间进行的,如同直接在AutoCAD系统中绘制二维工程图一样,操作起来更加熟悉、更加方便。AutoCAD系统允许用户方便地定制系统菜单和工具栏,并且ObjectARX二次开发工具为用户提供了基于MFC类库的对话框设计功能[4]。因此,该工程图系统定制了用于创建工程图的菜单和工具栏,而且用户操作界面均采用了流行的Windows风格对话框的形式,界面友好,操作方便。3.1工程图系统结构设计该工程图系统主要包括:设置图纸幅面模块、填写标题栏模块和创建三视图模块。由于设置图纸幅面模块和填写标题栏模块的实现相对比较简单,故此,仅介绍这两个模块的功能及其用户界面。图1设置图纸幅面Fig.1Settingdrawingsize设置图纸幅面模块主要功能是设置图纸幅面大小和方向,如图1所示,提供了国家标准的零件图纸幅面,如A0、A1、A2、A3、A4等,也可以自定义图纸幅面大小。在设置图纸幅面的同时,还插入了图纸边框及标题栏,并在图形文件中添加了名称分别为DrawLayer、SolidLayer、HiddenLayer的三个图层,其中DrawLayer用于放置图纸边框和标题栏信息、SolidLayer用于放置模型的可见轮廓线、HiddenLayer用于放置模型的不可见轮廓线。填写标题栏模块主要功能是填写图纸标题栏的内容,主要包括单位名称、图纸名称和编号、设计者、设计日期、工件材料、绘图比例等信息,如图2所示。创建三视图模块是该工程图系统的核心部分,主要功能是实现由三维实体模型创建三视图,并设置在图纸中的布局,如图3所示。其开发思路是:首先,应用AutoCAD系统现有的创建实体模型三视图的命令,如Layout,-View,Solprof等命令,设置三维实体模型各个视图,并提取出各个视图的轮廓线;然后,调用ObjectARX中提供的坐标变换函数和实体操作函数,将提取出的轮廓线在模型空间进行坐标变换,转换到XOY面内,并将模型的可见轮廓线添加到SolidLayer层,将模型的不可见轮廓线添加到HiddenLayer层,从而实现由三维实体模型向二维三视图的快速转化。根据该模块的开发思路确定其实现流程,如图4所示。图3创建三视图Fig.3Creatingthree-view图2填写标题栏Fig.2Inputingtitleblock删除View视图将可见轮廓线添加到SolidLayer层不可见轮廓线添加到HiddenLayer层进入模型空间,将轮廓线变换到XOY面适当位置i=0;设置主视图,并提取轮廓线i=1;设置府视图,并提取轮廓线i=2;设置左视图,并提取轮廓线i3?创建View布局进入View布局,并激活已有视图YesNo图4创建三视图模块流程Fig.4Flowofcreatingthree-viewmodule工程图系统程序实现创建三视图模块是该工程图系统实现由三维实体模型向二维三视图转化的核心部分,其实现的关键代码如下[5,6]:acedCommand(RTSTR,layout,RTSTR,_n,RTSTR,View,0);//创建View布局acedCommand(RTSTR,layout,RTSTR,,RTSTR,View,0);//进入View布局acedCommand(RTSTR,mspace,0);//激活已有的视图……acedSSGet(NULL,NULL,NULL,NULL,ss);//构造选择集,选中三维实体模型acedSSName(ss,0,m_SolName);//获得实体名for(inti=0;i3;i++){acedCommand(RTSTR,-view,RTSTR,s[i],0);//设置front、top或left视图acedCommand(RTSTR,solprof,RTENAME,m_SolName,RTSTR,,RTSTR,Y,RTSTR,Y,RTSTR,Y,0);//提取视图的轮廓线}acedCommand(RTSTR,Model,RTSTR,,0);//进入模型空间……for(inti=0;i6;i++){……//构造选择集,选中该可见或不可见轮廓线acedSSGet(X,NULL,NULL,&eb,ss);ident_init(mat);//初始化坐标变换矩阵mat[0][3]=m_LviewX;//X轴平移量……acedXfromSS(ss,mat);//进行坐标变换if(strcmp(LayerPrefix[i],PV)//若为可见轮廓线{……//将选择集中的实体放入SolidLayer层pEnt-setLayer(SolidLayerId);}if(strcmp(LayerPrefix[i],PH)//若为不可见轮廓线{……//将选择集中的实体放入HiddenLayer层pEnt-setLayer(HiddenLayerId);}}acedCommand(RTSTR,layout,RTSTR,_d,RTSTR,View,0);//删除View布局.工程图系统应用本文以支架零件为例来验证工程图系统的正确性和实用性。首先,利用AutoCAD系统的三维实体造型功能建立支架零件的三维模型,然后利用该工程图系统设置图纸幅、填写标题栏、创建三视图,形成支架零件的二维工程图,如图5所示。5.结论该工程图系统是针对AutoCAD系统由三维模型向二维工程图转化方面的不足,在其现有的创建三视图功能的基础上,采用ObjectARX工具进行二次开发而实现的,该系统具有界面友好,操作方便等特点,可以大大减少用户反复输入命令的操作,降低用户的劳动强度,而且将实体模型的三视图创建在模型空间,使熟悉二维绘图的用户操作起来更加得心应手。该工程图系统的实现同时也证明利用AutoCAD系统良好的开放性,借助ObjectARX工具进行专项二次开发,可以大大提高设计效率。参考文献[1]刘树春,申屠留芳.AutoCAD中三维造型与二维投影图的创建[J].机械设计与研究,2002,(4):31-32.[2]吴长德.AutoCAD中由三维图形生成工程图的三种方法[J].机床与液压,2002,(4):149-150.[3]颜国忠,韦文斌,曾波.AutoCAD三维设计与实例[M].北京:电子工业出版社,2000.[4]李世国.AutoCAD高级开发技术ARX编程及应用[M].北京:机械工业出版社,1999.[5]薛长健,黄靖.AutoCAD2000高级使用及开发[M].北京:人民邮电出版社,2000.[6]杨晓鹏,宗明.VisualC++7.0实用编程技术[M].北京:中国水利水电出版社.2002.图5零件工程图Fig.5Engineeringdrawingofpart(123000)AbstractThemethod
本文标题:利用ObjectARX开发工程图系统
链接地址:https://www.777doc.com/doc-172189 .html