AutoCAD-油浸式变压器的参数化绘图设计_第1页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEII题目AutoCAD—油浸式变压器的参数化绘图设计PAGEI摘要随着社会的进步和市场经济的激烈竞争,对工程设计提出了更高、更新的要求,CAD正是适应这一要求的产物。目前,我国CAD技术的应用取得了较好的成绩,但由于CAD技术涉及面广,影响因数多,在实际应用方面还不可能完全满足要求。二次开发是CAD技术应用取得实效的关键环节,因此,结合具体的专业CAD二次开发更具有实际意义。由于变压器绘图在变压器设计绘图中占的比例大,变压器设计中频繁的重复计算和绘图。本次毕业设计开发了实用的变压器参数化绘图程序,从而提高了产品的设计效率和质量,降低了产品成本,能为企业获得较好的社会效益和经济效益。变压器参数化绘图系统使用AutoLISP和DCL编写,程序采用模块化的设计理念设计,提高了程序的生命力,本系统大大的缩短了产品设计周期,使企业提高了产品开发效率和设计质量。关键词:Autolisp,参数化绘图,变压器,计算机辅助设计ABSTRACTABSTRACTAsthedevelopmentofsociety,thecompetitivenessofeconomyandmarketgetincreasinglyfierce,andthenhighandnewrequirementhasbeenputforward.CAD(Computer-AidedDesign)techniqueistheveryoutcomeofthisrequirement.Recently,inCADtechniqueapplication,wehavegottenagreatsuccess.However,involvinginalargescaleandwithtoomanyfactors,it’simpossibletomeetalltherequirementsintheactualapplicationoftheCADtechnique.There-developisthekeyringforCADtechniquetomakearealeffect;therefore,theRe-developTechnologyCADinacertainfieldwillbemoreeffective.BecausetheTransformerMappingaccountsforalargeproportioninTransformerDesignMapping,calculationandmappingrepeatagainandagainintheTransformerDesign.InthisGraduationDesign,apracticalparameterizedmappingprogramdesignoftransformerhasbeendeveloped,andthereforeimprovedthedesigningefficiencyandthequalityofproducts,reducedthecostandishelpfulforenterprisestogainabettersocialandeconomicalbenefit.ThetransformerparameterizedmappingsystemiscomposedinAutoLISPandDCL;indesigningtheprogram,ModularIdeaisappliedtoimprovethevitalityoftheprogram.ThissystemgreatlyshortensthedesigncircleofproductsandimprovestheR&Defficiencyandqualityofproducts.Keywords:AutoLISP,theparameterizedmapping,transformer,computer-aideddesigPAGE72PAGE3目录摘要 IABSTRACT II第一章AutoCAD二次开发概述 11.1AutoCAD简介 11.2AutoCAD二次开发语言及工具简介 21.2.1AutoLISP 21.2.2ADS 21.2.3ObjectARX 21.2.4VisualLISP 31.2.5VBA 31.2.6VisualJava 41.3AutoLISP语言与DCL简介 41.3.1AutoLISP简介 41.3.2DCL简介 51.4参数化绘图系统简介 81.4.1概述 81.4.2理解参数化设计 81.4.3设计参数化系统的基本要素 91.4.4参数化设计的一般步骤 9第二章实用绘图工具的开发设计 102.1概述 102.2设置绘图环境设计 102.2.1设计思想及流程 102.2.2设计实施与程序设计 112.3.图框的绘制 142.3.1图纸的基本幅面 142.3.2图框格式 152.3.3图框程序 162.4设计日期的输入 172.5标题栏的绘制与填写方法 172.5.1零件名称 182.5.2零件材料 182.5.3图样代号 182.5.4比例 182.5.5设计者 182.2.6设计时期 192.5.7选取点 192.5.8程序操作界面 192.6明细表 192.6.1绘制明细表 192.6.2绘制明细表程序 192.6.3填写明细表 212.6.4技术要求 232.7序号标注 23第三章变压器绝缘部分参数化绘图设计 243.1变压器各部件零件图的参数化绘图概述 243.2绝缘部件的参数化绘图 253.3总体设计思路 263.4铁轭垫块参数化绘图 263.4.1参数确定 263.4.2对话框界面设计 273.4.3总体绘图设计思路 283.4.4布局的点位图 283.4.5主视图的绘制 283.4.6左视图的绘制 293.4.7 俯视图的绘制 303.5下铁轭绝缘的参数话设计 313.5.1参数的确定 313.5.2对话框界面设计 313.5.3总体绘图设计思路 323.5.4布局的点位图 323.5.5主视图的绘制 333.5.6俯视图的绘制 333.5.7平面图的绘制 343.5.8平面右图的绘制 353.6上铁轭绝缘的参数化设计 353.6.1参数的确定 353.6.2对话框界面设计 363.6.3总体绘图设计思路 363.6.4布局的点位图 373.6.5主视图的绘制 383.6.6俯视图的绘制 383.6.7平面图的绘制 393.6.8平面右图的绘制 393.7绝缘装配的参数化设计 403.7.1对话框界面设计 403.7.2总体绘图设计思路 413.7.3布局的点位图 413.7.4块的绘制 41第四章结论 43参考文献 44致谢辞 45附录A:铁轭垫块的主程序清单 46附录B:上铁轭垫块的主程序清单 53PAGE43第一章AutoCAD二次开发概述AutoCAD是一个通用CAD平台,它不仅具有强大的绘图、编辑功能,而且具有开放的体系结构,允许用户对其进行二次开发,以满足绘图过程中的特殊要求。AutoCAD荣登全球绘图软件的龙头宝座,主要是因为它具有开放的体系结构。它允许用户和开发者采用高级编程语言对其进行扩充和修改,即二次开发,能最大限度地满足用户的特殊要求。AutoCAD第一版于1982年11月由AutoDESK公司推出,目前最新版本是AutoCAD2005。1.1AutoCAD简介AutoCAD是美国AUTODESK公司1982年在微机上开发的绘图软件包,AutoCAD的版本不断更新,更新的版本功能逐步增加,现已成为强有力绘图工具,在国际上广为流传。AutoCAD广泛应用于建筑、机械、电子、艺术造型及工程管理等领域,是微机上最为流行的绘图软件之一。使用AutoCAD对用户的计算机和英语不作要求,现在已有了中文版的AutoCAD软件,可应用中文直接与软件对话,使用相当方便,掌握好AutoCAD的关键就是实践,通过实践掌握各种命令的应用,技巧绘图以提高绘图的速度。其主要功能有:一、绘图功能AutoCAD提供了丰富的基本绘图实体,具有完善的图形绘功能,绘制的图形是由预先定义好的图形元素即实体(Entity)所组成,实体通过命令调用和光标定位即可输入所绘制的图形。如:点、直线、多边形、圆弧、椭圆、文本、剖面线、尺寸等等。二、编辑功能AutoCAD提供了各种修改手段,具有强大的图形编辑功能,AutoCAD可以对图形进行擦除、修改、拷贝、移动、镜像、断开、修剪、旋转等多种编辑操作。三、绘图工具AutoCAD为用户提供了大量的绘图工具,如捕捉、删格、正交、动态坐标、目标捕捉、缩放、点过滤、用户坐标等等辅助绘图工具。四、三维功能AutoCAD可直接绘制三维图形,它提供了一个实体造型模块(AME),可生成典型三维实心体、拉伸体、回转体,对这些实心体进行并差交等布尔运算可以构成组合体,进而可获得剖切图轮廓图着色图等。五、开发环境AutoCAD内含AutoLISP语言和ADS开发系统,便于用户进行二次开发。用户可以利用AutoLISP编制各种程序,从而为AutoCAD增加新的命令,也可以为各专业编制图形数据库。ADS是以C语言为基础的开发系统,它具有AutoLISP的大部分功能,并可使用标准C函数,是开发AutoCAD的另一有效工具。另外AutoCAD还有制作幻灯、文件管理等其它功能。1.2AutoCAD二次开发语言及工具简介1.2.1AutoLISPAutoLISP的全名是LISTProcessingLanguage,是一种表处理语言,有很强的符号处理能力。是被解释执行的,任何一个语句键入后就能马上执行,它对于交互式的程序开发非常方便。其缺点是继承了LISP语言的编程规则而导致繁多的括号。她出现于20世纪50年代为研究人工智能而开发起来,也称人工智能语言。是一种嵌入在AutoCAD内部的编程语言,是LISP原版的一个子集,她一直是低版本AutoCAD的首选编程语言。AutoLISP具有如下特点:eq\o\ac(○,1)AutoLISP语言是在普通LISP语言基础上,扩充了许多适用于CAD应用的特殊功能而形成的,是一种仅能以解释方式运行于AutoCAD内部的解释型程序设计语言。eq\o\ac(○,2)AutoLISP语言中的一切成分都是以函数的形式给出的,它没有语句概念和其他语法结构,执行AutoLISP程序就是执行一些函数,再调用其他函数。eq\o\ac(○,3)AutoLISP把数据和程序统一表达为表结构,即S-表达式,故可把程序当成数来处理,也可以把数据当成程序来执行。eq\o\ac(○,4)AutoLISP语言中的程序运行过程就是函数求值的过程,是在对函数求值的过程中实现函数的功能。eq\o\ac(○,5)AutoLISP语言主要控制结构采用递归方式。递归方式的使用,似的程序设计简单易懂。1.2.2ADSADS的全名是AutoCADDevelopmentSystem,它是AutoCAD的C语言开发系统,ADS本质上是一组可以用C语言编写AutoCAD应用程序的头文件和目标库,它直接利用用户熟悉的各种流行的C语言编译器,将应用程序编译成可执行的文件在AutoCAD环境下运行,这种可以在AutoCAD环境中直接运行的可执行文件叫做ADS应用程序。ADS由于其速度快,又采用结构化的编程体系,因而很适合于高强度的数据处理,如二次开发的机械设计CAD、工程分析CAD、建筑结构CAD、土木工程CAD、化学工程CAD、电气工程CAD等。1.2.3ObjectARXObjectARX是一种崭新的开发AutoCAD应用程序的工具,她以C++为编程语言,采用先进的面向对象的编程原理,提供可与AutoCAD直接交互的开发环境,能使用户方便快捷地开发出高效简洁的AutoCAD应用程序。ObjectARX并没有包含在AutoCAD中,可在AutoDESK公司网站中去下载,其最新版本是ObjectARXforAutoCAD2000,它能够对AutoCAD的所有事务进行完整的、先进的、面向对象的设计与开发,并且开发的应用程序速度更快、集成度更高、稳定性更强。ObjectARX从本质上讲,是一种特定的C++编程环境,它包括一组动态链接库(DLL),这些库与AutoCAD在同一地址空间运行并能直接利用AutoCAD核心数据结构和代码,库中包含一组通用工具,使得二次开发者可以充分利用AutoCAD的开放结构,直接访问AutoCAD数据库结构、图形系统以及CAD几何造型核心,以便能在运行期间实时扩展AutoCAD的功能,创建能全面享受AutoCAD固有命令的新命令。ObjectARX的核心是两组关键的API,即AcDb(AutoCAD数据库)和AcEd(AutoCAD编译器),另外还有其它的一些重要库组件,如AcRX(AutoCAD实时扩展)、AcGi(AutoCAD图形接口)、AcGe(AutoCAD几何库)、ADSRX(AutoCAD开发系统实时扩展)。ObjectARX还可以按需要加载应用程序;使用ObjectARX进行应用开发还可以在同一水平上与Windows系统集成,并与其它Windows应用程序实现交互操作。1.2.4VisualLISP

VisualLISP已经被完整地集成到AutoCAD2000中,她为开发者提供了崭新的、增强的集成开发环境,一改过去在AutoCAD中内嵌AtuoLISP运行引擎的机制,这样开发者可以直接使用AutoCAD中的对象和反应器,进行更底层的开发。其特点为自身是AutoCAD2000中默认的代码编辑工具;用它开发AutoLISP程序的时间被大大地缩短,原始代码能被保密,以防盗版和被更改;能帮助用户使用ActiveX对象及其事件;使用了流行的有色代码编辑器和完善的调试工具,让用户很容易创建和分析LISP程序的运行情况。在VisualLISP中新增了一些函数:如基于AutoLISP的ActiveX/COM自动化操作接口;用于执行基于AutoCAD内部事件的LISP程序的对象反应器;新增了能够对操作系统文件进行操作的函数。VisualLISP为AutoLISP应用程序提供三种文件格式选项:LSP文件(.lsp)-一种包含AutoLISP程序代码的ASCII文本文件。FAS文件(.fas)-一个LSP程序文件的二进制编译版本。VLX文件(.vlx)-一个或多个LSP文件和/或对话框控制语言(DCL)文件的编译集合。1.2.5VBAVBA即Mcrosoftoffice中的VisualBasicforApplications,它被集成到AutoCAD2000中。VBA为开发者提供了一种新的选择,也为用户访问AutoCAD2000中丰富的技术框架打开一条新的通道。VBA和AutoCAD2000中强大的ActiveX自动化对象模型的结合,代表了一种新型的定制AutoCAD的模式构架。通过VBA,我们可以操作AutoCAD,控制ActiveX和其它一些应用程序,使之相互之间发生互易活动。1.2.6VisualJavaJava是最早由Sun公司创建的一种颇具魅力的程序设计语言,她是针对嵌入系统而设计的。像许多开发语言一样,Java是一组实时库的集合,可为软件开发者提供多种工具来创建软件,管理用户接口,进行网络通讯、发布应用程序等。对AutoCAD用户和开发者而言,Java代表着新一代的编程语言,它主要用于开发出全新的优秀产品。AutoCAD为我们提供了完整的、高性能的、面向对象的CAD程序开发环境,为用户和开发者提供了多种新的选择,使得对AutoCAD二次开发和定制变得轻松而容易。通过以上的介绍,帮助大家在二次开发时有所选择,提高工效,达到事半工倍的目的。1.3AutoLISP语言与DCL简介1.3.1AutoLISP简介AutoCAD为用户提供了众多的高级编程环境,主要有嵌套在AutoCAD之中的AutoLISP和VBA,面向对象特征的C++编程环境ARX,以及其它通过动态数据交换(DDE)完成与AutoCAD之间通信的高级语言应用程序等。LISP(ListProcessing,表处理解释语言)诞生于20世纪50年代末期,是人工智能学科领域广泛应用的程序设计语言。AutoLISP语言是Autodesk公司为用户提供的在AutoCAD平台上进行二次开发的早期语言。AutoLISP程序源于人工智能语言LISP,是一种对AutoCAD进行定制、二次开发的非结构化程序设计语言,它嵌套于AutoCAD内部,是LISP语言与AutoCAD有机结合的产物。AutoLISP不仅具备一般高级基本结构与功能,而且还具有强大的图形处理功能。由于AutoLISP语法简单易于掌握,函数功能强大,因此,是AutoCAD用户使用较为广泛的编程语言之一。就目前而言,与VBA和ARX相比,采用AutoLISP对AutoCAD进行工程专业领域的应用程序或CAD系统的开发有许多明显的优势,比如在功能上与ARX已相差无几,而学习AutoLISP所需计算机专业知识远远低于C++。VBA虽然在对话框设计能力上比AutoLISP强许多,但由于它使用ActiveX与AutoCAD交互,运行效率不如AutoLISP,且代码保密性差。另外,从AutoCAD版本不断升级中可看出,Autodesk公司仍在继续扩充AutoLISP的功能。1996年底推出VisualLISP,对AutoLISP是一次重大改进,增强了AutoCAD的二次开发能力。VisualLISP(简称VLISP)是一个用AutoLISP语言进行程序开发的软件工具,它提供的集成开发环境(IntegratedDevelopmentEnvironment,IDE)提供有众多工具,功能十分强大,可使用户方便地用AutoLISP语言进行程序开发中的编写程序代码、调试程序等操作。1.3.2DCL简介DCL话框具有操作直观、方便、易于输入和修改数据等特点,是现代软件设计中必不可少的风格。对话框是一个弹出式窗口,它与用户进行信息通信,一般被用于特定的与输入有关的任务。AutoCAD从12版本起提供了对话框语言,用户基于AutoCAD开发自己的应用程序时,可以利用AutoCAD所提供的可编程对话框PDB(ProgrammableDialogBox)功能创建新的对话框,也可以修改一个已经存在的对话框。AutoCAD对话框新颖直观,在一定程度上简化了用户交互操作,极大地提高了软件的使用效率。对话框是用对话框控制语言DCL(DialogControlLanguage)编写的ASCII文件定义的。DCL语言将定义对话框以什么方式出现以及它包含的内容,例如按钮,列表,文本等。对话框的设计以约束条件为基础,框的尺寸及其部件的布局均应遵循统一规则,用户不需要指出每一部分的尺寸大小及定位关系,系统自动进行布置。AutoCAD为用户提供的可编程对话框技术是由专用的对话框描述语言(DCL)和AutoLISP驱动函数两部分内容组成的。对话框的部件只定义了其行为方式,如按钮只意味着按压,列表只显示相关的内容以便用户做出选择等,一个对话框的使用方式实际上完全由它的应用程序(利用AutoLISP/VLISP或ADS所编写的程序)所决定。手工编码方法设计对话框的最终目的,就是要产生一个描述对话框外观的DCL程序文件。目前有两种方法,即手工编码方法和利用现成的设计工具PROTOBOX。为一个应用程序设计对话框,一般需要经历图1-1所示。图1-1对话框手工设计过程⒈分析问题:弄清应用程序所要解决的问题,确定输入参数和输出形式。对于复杂的应用程序还需要进行模块化,确定模块之间的调用关系和数据联系。⒉根据应用程序所需的数据类型选择合适的构件,对构件进行分类,确定对话框构件的布局。⒊确定对话框及其构件和组件的属性。例如,确定构件的名字,标识文字,尺寸,对齐方式等。⒋手工绘制对话框的草图。⒌根据绘制的草图,利用DCL语言对对话框进行编码,生成描述对话框外观的DCL程序文件。⒍对DCL进行错误检查。对话框驱动程序对话框驱动程序具有相对固定的结构框架和严格的函数调用顺序。其一般顺序如下:⒈用LOAD_DIALOG函数把对话框定义文件装入内存,这样,对话框定义文件中定义的所有对话框才是有定义的,程序中才能利用函数返回的文件表识号弹出其中的对话框,并在所有操作结束后卸载DCL文件,从内存中清除该文件中的对话框。⒉利用NEW_DIALOG函数显示出已装入的DCL文件中定义的特定对话框,使之成为当前对话框。检查NEW_DIALOG函数的返回值是非常重要的,如果返回值为nil,则应中断程序执行。如果仍强行执行START_DIALOG函数,则会产生意想不到的后果。⒊对话框构件的初始化。在成功的弹出了对话框后,即进入了对话框激活期。此后。AutoLISP与图形屏幕操作有关的函数无法使用,而AutoLISP新提供的对话框处理也才能使用。对话框构件初始化大致包括两个方面的内容:①构件处值的设置。对话框构件的初值可以在DCL文件中通过value属性设置,也可以利用专门的函数在驱动程序中设置。一般采用后者,因为要使初值设置合理,取决于AutoCAD的当前状态。例如,应把颜色设置为系统当前色,则需要用GETVAR得到系统变量“CECOLOR”的当前值;层控制对话框中当前层名和列表框中的层名,需要用程序搜索层表在能得到。这些在建立DCL文件时都无法知道的。②动作构件动作表达式的设定。动作构件是用来俘获事件的,或者说它们是靠事件驱动的。但是,某一事件(例如锨击了按钮或选择了列表框的选项)发生后,需要做些什么事情却是程序设计者的责任。动作构件的动作设定是用ACTION_TILE函数实现的。不设定动作的构件是不会有预期动作的。⒋对话框的激活。当初始化工作完成以后,还需要START_DIALOG函数激活对话框,把控制权交给对话框,监视和俘获用户的输入和选择,并且构件的动作表达式来处理用户的操作,用变量或表保存必要数据。当用户按下对话框的退出按钮后,将由系统内置的或用户设置的DONE_DIALOG函数隐去对话框,终止START_DIALOG函数的执行。⒌后处理与DCL文件的卸载。图1-2驱动程序的基本流程只有START_DIALOG函数执行结束后,主对话框才把控制权交回AutoCAD。此时可根据START_DIALOG函数返回值来判知用户退出对话框的原因,然后分情况进行处理。最后,调用UNLOAD_DIALOG函数卸载DCL文件。驱动程序的基本流程如图1-2所示。1.4参数化绘图系统简介1.4.1概述AutoCAD参数化程序从用户取得参数或外部文件,然后在AutoCAD图形中生成图像。这些参数可以是基于AutoCAD,AutoLisp或ADS的。一个参数程序可以画一个公共零件的许多不同尺寸,不同形状的图。通过参数化,可以画出一系列复杂的物体,他们共享公共的参数关系。如果只改变比例,块是最好的解决方法。但如果这种变动需要大规模的相似块的库时,采用参数化可以提高柔性,减少错误,并产生巨大的效益。1.4.2理解参数化设计 参数化绘图在现代机械CAD中的应用很广,特别是对于定型的机械产品设计,需要形成系列,以便针对用户的生产特点提供不同大小、功率、规格的产品。这就要求该产品的CAD系统具有参数化的设计功能,使得产品的设计图可以方便地随着某些结构尺寸的修改而修改并自动地重新绘出所要求的图样,实现尺寸驱动图形的自动变化。 在当今流行CAD软件中,每一个简单的命令调用就是一个参数化绘图的应用。这就像C语言或其他高级语言中的函数的调用一样,输入参数后执行特定的操作。对一个复杂的机械图进行参数化设计,其实就是一些简单的命令按照一定的拓扑关系的中和。参数化设计对象的结构形状一般比较定型,其尺寸关系可以用一组参数来确定。这样参数化系统的绘图功能就很明确的得以实现。 1.4.3设计参数化系统的基本要素 一个较复杂的参数化部件系统的各个部分是随系统的设计而变化,但他们大致上都包括下列元素:非CAD的外部文件,包括不见数据和设计特征。一个进行提示和通信的用户界面函数。一个读数据文件的AutoLisp子程序。计算和绘图函数。程序和函数的菜单界面。零件表列的屏幕帮助。材料帮助 。设计一个整体系统实际上就是设计其各个功能的模块,即通常说的:模块化设计。这样,以后的公共模块就可以通用,这就大大的提高了设计效率!1.4.4参数化设计的一般步骤 一般的参数化设计,可以遵循以下的步骤:进行数据分析,得出设计计算以及绘图所需数据查找相关设计手册,得出零件图(或其他)的参数表绘制零件图所需的参数列出由零件参数表数据到绘图需要使用的参数数据转换公式根据上面的数据项设计人机交互界面(对话框)进行编程工作设计对话框驱动函数设计相关的帮助文件标注程序调试程序第二章实用绘图工具的开发设计2.1概述为了简便绘图工序,节省绘图时间,利用CAD集成的AutoLISP语言编写固定的绘图程序,来完成比较通用的绘图工序是一件十分必要的事情。AutoLISP语法简单,不用特殊的变量定义,非常富有弹性,比起其他的程序语言,它的语法简单而又有其独特风格。除一般性的功能函数外,又拥有为数不少控制配合AutoCAD的特殊函数,而且AutoLISP可直接调用执行所有AutoCAD的命令,以及掌握运用所有的AutoCAD系统变量,功能十分强大。编写AutoLISP可以用来强化AutoCAD原有命令,可以创造更加有用的AutoCAD新命令,可以简化繁琐的环境设定或绘图步骤,可处理参数式绘图,可用用来达到真正灵活控制AutoCAD等等。在实际生产中,利用AutoLISP语言来编写程序,可大大的提高生产效率。设想某员工花了20小时编写一个AutoLISP程序,表面上,这将近三天的时间,他一张图都没有画,甚至可能偶有发呆,沉思。如此程序一天可以替公司绘图部门节省一个小时绘图时间,那算一算,只要20天就可以抵消开发成本,而20天以后就能节省大量的绘图时间,随着使用的人越多,使用的时间越长,就可以获得更大的生产效率。2.2设置绘图环境设计计算机辅助设计(CAD)技术具有快速设计和自动绘图的功能,是帮助企业适应飞速变化的技术要求和市场要求的产物。其中,AutoCAD是一种通用图形处理软件,功能强大,具有良好的开放性,是机械行业“甩图板”的好帮手,在企业中使用越来越来普遍。但要绘制出符合我国机械制图标准的工程图,需要设置好绘图环境才能达到事半功倍的目的,而且每画一张新图都要重新创建。在企业之间甚至企业内部,由于不同用户设置的绘图环境不同给用户的技术文件交流造成混乱与障碍的现象时有发生。为此可利用AutoCAD提供的模板功能将设置好的绘图环境保存为模板文件,另一个较好的方法是对此进行二次开发。从而可大大提高绘图效率及软件开发效率,同时还可为技术文件的交流带来方便。2.2.1设计思想及流程机械工程图模板的AutoCAD二次开发,即绘图环境的设置的程序开发设计,主要包括对象特性(即层设置)、尺寸标注样式设置、文字样式设置、图幅设置及标题栏的程序开发,以便在实际使用中符合国家标准,同时也提高绘图效率。开发过程结合实际工程的二次开发工作,以体现其优越性。2.2.2设计实施与程序设计2.2在设计中应根据我国最新的机械制图国标的规定,在开发过程中主要采用的国标有:GB10609.1-89《技术制图标题栏》;GB/T14689-93《技术制图图纸幅面和格式》;GB/T14691-93《技术制图字体》;GB/T17450-1998《机械制图图线》;GB/T16675.2-1996《机械制图尺寸注法》;GB/T14665-93《计算机制图用计算机信息交换制图规则》。2.2在AutoCAD软件中,图形对象的组织和管理是用图层来实现的。每个图形对象都有其特性,包括对象的图层、颜色、线型、线宽等。由于该项设置与输出图效果有较大的联系,因此在绘图环境中的设置恰当与否至关重要。根据绘图经验,在此设置好后直接按绘制样式输出,效果较理想,而且也可预见的。选择计算机绘图线宽的第4组,即粗实线、粗点画线为0.7mm,其余为0.25mm。图层的名字取为汉字,且与图层的用途一致以便分层作图时图层的转换。根据使用效果粗实线线宽改为0.4,其余改为0。最后设置的图层效果见下图2-1.图2-1设置图层设置汉字字体、罗马字体及字高。为方便使用,设置了多种字高的文字样式。参照国家标准,根据经验,字体应设为两种样式:TEXT字体样式选用Romans.shx,宽度比例选0.67,倾斜角度选15°,该字体专用于标注英文字母和阿拉伯数字。HZ字体样式选仿宋GB_2312,文字宽度系数选0.67,该字体专用于汉字内容的书写。设置标注样式尺寸标注样式的设置是二维工程制图绘图环境设置的重要内容。图样的标注能否符合国标的关键在于尺寸标注样式的设置。在软件开发过程中只能通过尺寸标注变量的设置来完成,设置的具体内容见下面程序说明。在实际使用中,需要设置多个尺寸标注样式。设计的样式见图2-2设置标注样式。标注样式0标注样式1标注样式2标注样式3标注样式4(字体TEXT3.5)(字体HZ3.5)无指引线(用于直径文字水平书写及汉字说明)图2-2设置标注样式2.2.;===================================================(defunszhthj();;;设置所需的图层(command"linetype""load""center,ACAD_ISO02W100,ACAD_ISO10W100,ACAD_ISO12W100""acadiso.lin""");调所需线型(command"layer""make""标注层""on""标注层" "color"3"标注层""lw"0.0"标注层""")(command"layer""make""粗点画线层""on""粗点画线层""color"2"粗点画线层""lw"0.4"粗点画线层""L""ACAD_ISO10W100""粗点画线层""")(command"layer""make""粗实线层""on""粗实线层" "color"7"粗实线层""lw"0.4"粗实线层""")(command"layer""make""双点画线层""on""双点画线层""color"6"双点画线层""lw"0.0"双点画线层""l""ACAD_ISO10W100""双点画线层""")(command"layer""make""文本层""on""文本层""color"5"文本层""lw"0.0"文本层""")(command"layer""make""细点画线层""on""细点画线层" "color"4"细点画线层""lw"0.4"细点画线层""")(command"layer""make""细实线层""on""细实线层" "color"1"细实线层""lw"0.0"细实线层""")(command"layer""make""虚线层""on""虚线层""color"2"虚线层" "lw"0.0"虚线层""L""ACAD_ISO02W100""虚线层""")(command"layer""make""中心线层""on""中心线层""color"1"中心线层" "lw"0.0"中心线层""L""center2""中心线层""")(command"layer""make""特性表层""on""特性表层""color"7"特性表层" "lw"0.0"特性表层""");;;设置字体样式(command"-style""text0""romans"00.715"""""")(command"-style""text3.5""romans"3.50.715"""""")(command"-style""text5""romans"50.715"""""")(command"-style""text7""romans"70.715"""""")(command"-style""text10""romans"100.715"""""")(command"-style""text14""romans"140.715"""""")(command"-style""text20""romans"200.715"""""")(command"-style""hz0""仿宋_GB2312"00.70"""")(command"-style""hz3.5""仿宋_GB2312"3.50.70"""")(command"-style""hz5""仿宋_GB2312"50.70"""")(command"-style""hz7""仿宋_GB2312"70.70"""")(command"-style""hz10""仿宋_GB2312"100.70"""")(command"-style""hz14""仿宋_GB2312"140.70"""");;;设置尺寸标注样式(command"dimclrd"0"dimdli"5"dimclre"256"dimexe"3"dimgap"0.5 "dimasz"2.5"dimclrt"256"dimtxsty""text3.5""dimtxt"3.5 "dimtad"1"dimjust"0"dimgap"1"dimtih"0 "dimatfit"2"dimlunit"2"dimdec"2"dimdsep""." "dimatftt"2"dimexo"0"dimse1"1"dimse2"1 "dimstyle""save""标注样式4")(command"dimclrd"0"dimdli"5"dimclre"256"dimexe"3"dimgap"0.5 "dimasz"2.5"dimclrt"256"dimtxsty""hz3.5""dimtxt"3.5 "dimtad"1"dimjust"0"dimgap"1"dimtih"0 "dimatfit"2"dimlunit"2"dimdec"2"dimdsep""." "dimatftt"2 "dimexo"0"dimtoh"1"dimse1"0"dimse2"0 "dimstyle""save""标注样式3")(command"dimclrd"0"dimdli"5"dimclre"256"dimexe"3"dimgap"0.5 "dimasz"2.5"dimclrt"256"dimtxsty""text3.5""dimtxt"3.5 "dimtad"1"dimjust"0"dimgap"1"dimtih"0 "dimatfit"2"dimlunit"2"dimdec"2"dimdsep""." "dimatftt"2 "dimexo"0"dimtoh"1"dimse1"0"dimse2"0 "dimstyle""save""标注样式2")(command"dimclrd"0"dimdli"5"dimclre"256"dimexe"3"dimgap"0.5 "dimasz"2.5"dimclrt"256"dimtxsty""text3.5""dimtxt"3.5 "dimtad"1"dimjust"0"dimgap"1"dimtih"0 "dimatfit"2"dimlunit"2"dimdec"2"dimdsep""." "dimatftt"2"dimexo"0"dimtoh"0 "dimse1"0"dimse2"0 "dimstyle""save""标注样式1"));defunend2.3.图框的绘制 在使用CAD绘图软件时,如果每次画图都要手工操作CAD绘制出图框,是一件繁琐的事情。如果图纸数量巨大,为每一幅图都绘制上图框,需要的时间,耗费的精力是很巨大的。 图框是几乎每幅图都必须绘制的基本模块之一,具有极强的通用性,如果能用一个LISP程序来代替这样的手工绘制,可以节省大量时间和精力,提高劳动效率,是省时省事的好方法。于是构思设计一个关于图框绘制的LISP程序。 由于绘制图框时,绘制某一幅面总有对应的一组B和L,所以不需要给出其他的变量,绘制图框的基准点定为坐标原点(0,0),只需带入相应的B和L,即可绘制出所需要的图框。2.3.1图纸的基本幅面 绘制技术图样时优先选用代号为A0,A1,A2,A3,A4,自定义,六种基本幅面(提供选择),自定义图框的尺寸由用户输入。幅面代号A0A1A2A3A4自定义尺寸B*L841*1189594*841420*594297*420210*297xxx*xxx幅面尺寸中,B表示短边,L表示长边。2.3.2图框格式图框格式有两种:一种是保留装订边的图框,用于需要装订的图样。另一种是不留装订边的图框格式,用于不需要装订的图样。如图2-3、2-4所示为两种图框的基本样式。图2-3带装订边图框图2-4不带装订边图框图2-4不带装订边图框图2-4不带装订边图框幅面代号A0A1A2A3A4自定义B*L841*1189594*841420*594297*420210*297xxx*xxxe2010c105a25图2-5图框与标题栏的尺寸2.3.3图框程序;===================================================;;程序功能:绘制国家标准图框A0-A4,带装订。;根据企业实际使用进行简化。;参数说明:tfdm--图幅代码,整型数,取值为0-4;使用方法:带参调用,如(tka2),表示绘制A2图幅;修改时间:2007年4月30日2007年5月25日;编程者:黄军;;===================================================(defuntk(tfdm)(command"osnap""none")(cond((=tfdm0) (do_tk284111892510))((=tfdm1) (do_tk25948412510))((=tfdm2) (do_tk24205942510))((=tfdm3) (do_tk2297420255))((=tfdm4) (do_tk2297210255))(T(prompt"没有你选择的图幅!参数为0——4,谢谢!")) );cond);defun(defundo_tk2(blac)(setqp00'(0.00.0))(command"layer""s""细实线""")(command"line"p00(polarp000l) (polar(polarp000l)(/pi2)b) (polarp00(/pi2)b)"c")(command"layer""s""粗实线""")(command"pline"(setqpp0(polar(polarp000a)(/pi2)c)) (polarpp00(-lac)) (polar(polarpp00(-lac))(/pi2)(-bcc)) (polarpp0(/pi2)(-bcc))"c")(command"zoom""all"))2.4设计日期的输入为简化操作,设计思想是设计日期自动提取系统当前日期,同时也允许用户在对话框中对系统当前日期进行改变,以满足用户使用要求。由于允许用户改变,所以该控件只能设计成编辑框控件。程序自动提取系统当前日期的实现方法是:利用AutoCAD系统变量CDATE取得计算机系统当前日期与时间,然后再组合成新的字符数据作为初值传到标签为“设计日期”编辑框控件。自动提取系统当前日期的程序段如下:(setqsjrq1(rtos(getvar"cdate")20);利用CDATE取得计算机系统当前日期与时间,并将实型数转化为字符型sjrq(strcat(substrsjrq114)"-"(substrsjrq152)"-"(substrsjrq172)));setq;用strcat函数构成新的“年-月-日”格式字符,既系统当前日期程序说明:(substrsjrq114)从字符数据sjrq1中取前4位为年份;(substrsjrq152)从字符数据sjrq1中取第5、6位为月份;(substrsjrq172)从字符数据sjrq1中取第7、8位为日期。2.5标题栏的绘制与填写方法标题栏的绘制与填写有两种方法,一是全部采用AutoLISP编程利用绘制命令和TEXT命令来绘制与填写标题栏,但程序编写较繁;二是在AutoLISP编程中插入块时利用AutoCAD块及其属性填写标题栏的设计者、设计日期,零部件名称等内容。后者使程序开发更简洁。针对设计具体要求,以参数化驱动。参数说明:ppt绘图基点,标题栏右下角点坐标。tydh图样代号,字符型。ljmc零件名称,字符型。ljcl材料名称,字符型。asx比例下拉列表索引。在使用AutoCAD绘制机械图形时,标题栏也是一个必不可少的工具。每一张图纸的标题栏都是一样,可以利用LISP程序来完成这样的绘图工作,以方便下次再次绘制此图形,节省绘图时间。标题栏格式如图2-6所示。图2-6标题栏格式2.5.1零件名称在绘制标题栏完成后,自动填写到标题栏中的对应的零件名称项的值。2.5.2零件材料在绘制标题栏完成后,自动填写到标题栏中的对应的零件材料项的值。2.5.3图样代号在绘制标题栏完成后,自动填写到标题栏中的对应的图样代号项的值。2.5.4比例选择绘制图形所选用的比例值,在绘制标题栏完成后,自动填写到标题栏中的对应的比例项的值。2.5.5设计者在绘制标题栏完成后,自动填写到标题栏中的对应的设计者项的值。2.2.6设计时期提取系统当前时间,用户也可根据自己的设计时间输入。在绘制标题栏完成后,自动填写到标题栏中的对应的设计时期项的值。2.5.7选取点选取绘制标题栏的绘制基点,提出用户选择图框的右下角点,用户如果没有选择绘图基点时,绘图动作将不能执行。2.5.8程序操作界面(见图2-7)图2-7标题栏DCL效果图2.6明细表2.6.1绘制明细表对设计中的绝缘部分,各不同部件所具明细表数目不同,故对明细表用带参调用。图2-8明细表2.6.2绘制明细表程序;===================================================;;程序功能:绘明细表,;参数说明:ptt是明细表的基点,n是明细表的行数.;使用方法:带参调用,;修改时间:2007年4月30日2007年5月25日;编程者:黄军;;==================================================;(defunhmxb(pttn/dcl_iddo_what)(setqdo_what1)(if(=do_what1)(hmxb1)))(defunhmxb1()(command"layer""m""mxb""on""mxb""c"5"mxb""")(command"pline"ptt"w"0.5"" (setqptt1(polarptt(/pi2)(+14(*7n)))) (setqptt2(polarptt1pi180)) (polarpttpi180)"c");;;绘制明细栏的第一行(command"line"(polarptt(/pi2)14) (polar(polarptt(/pi2)14)pi180) "" );;;绘制明细栏的外框(setqi1)(repeat(-n1)(command"line" (setqpttx(polarptt(/pi2)(+14(*i7)))) (polarpttxpi180)"" )(setqi(+1i)));;;绘制明细栏的行(command"line"(setqpttx(polarpttpi20)) (polarpttx(/pi2)(+14(*7n)))"" "line"(setqpttx(polarpttx(/pi2)7)) (polarpttxpi22)"" "line"(polarpttxpi12) (polar(polarpttxpi12)(/pi2)(+7(*7n)))"" "line"(setqpttx(polarpttpi42))(polarpttx(/pi2)(+14(*7n)))"" "line"(setqpttx(polarpttpi80))(polarpttx(/pi2)(+14(*7n)))"" "line"(setqpttx(polarpttpi88))(polarpttx(/pi2)(+14(*7n)))"" "line"(setqpttx(polarpttpi132))(polarpttx(/pi2)(+14(*7n)))"" "line"(setqpttx(polarpttpi172))(polarpttx(/pi2)(+14(*7n)))"" );;;绘制明细栏的列(command"layer""m""xz""on""xz""c"1"xz""")(command"-style""standard""simfang.ttf"00.650"n""n")(command"text""m"(polar(polarpttpi10)(/pi2)7)50"备注""text""m"(polar(polarpttpi31)(/pi2)3.5)40"重量""text""m"(polar(polarpttpi26)(/pi2)10.5)40"总计""text""m"(polar(polarpttpi37)(/pi2)10.5)40"单件""text""m"(polar(polarpttpi61)(/pi2)7)50"材料""text""m"(polar(polarpttpi84)(/pi2)7)50"数量""text""m"(polar(polarpttpi110)(/pi2)7)50"名称" "text""m"(polar(polarpttpi152)(/pi2)7)50"代号""text""m"(polar(polarpttpi176)(/pi2)7)50"序号" ))2.6.3填写明细表绘制出明细表实际上只完成了整个明细表工作的极小部分,而大量繁琐的工作则是填写部明细表的内容。要实现程序的实用性和通用性,就必须要有处理数据的能力,并尽可能减少用户的操作,实现自动填写。从数据文件读取数据时,以明细表的一栏即某一个零部件的所有具体信息为单位,包括“名称”、“代号”、“数量”、“重量”和“材料”等。因此,必须在数据文件中设置相应的分隔符号,程序自动完成各数据项的分离,并根据各数据项具体的填写位置完成填写。为简化程序设计,采用英文状态下的“逗号”为分隔符。填写位置由绘制明细表的基点来参照确定,可省去用户选择基点的操作。明细表填写设计思路如图2-9所示。打开需要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论