AutoCAD—油浸式变压器的参数化绘图设计
收藏
资源目录
压缩包内文档预览:(预览前20页/共80页)
编号:25640415
类型:共享资源
大小:1.30MB
格式:ZIP
上传时间:2019-11-19
上传人:遗****
认证信息
个人认证
刘**(实名认证)
湖北
IP属地:湖北
15
积分
- 关 键 词:
-
AutoCAD
油浸式
变压器
参数
绘图
设计
- 资源描述:
-
AutoCAD—油浸式变压器的参数化绘图设计,AutoCAD,油浸式,变压器,参数,绘图,设计
- 内容简介:
-
四 川 理 工 学 院毕 业 设 计(论 文)说 明 书题 目 AutoCAD油浸式 变压器的参数化绘图设计 学 生 黄军 系 别 机电工程系 专 业 班 级 机械制造03级1班 学 号 030110141 指 导 教 师 刘珠 四川理工学院毕业设计(论文)摘 要随着社会的进步和市场经济的激烈竞争,对工程设计提出了更高、更新的要求,CAD正是适应这一要求的产物。目前,我国CAD技术的应用取得了较好的成绩,但由于CAD技术涉及面广,影响因数多,在实际应用方面还不可能完全满足要求。二次开发是CAD技术应用取得实效的关键环节,因此,结合具体的专业CAD二次开发更具有实际意义。由于变压器绘图在变压器设计绘图中占的比例大,变压器设计中频繁的重复计算和绘图。本次毕业设计开发了实用的变压器参数化绘图程序,从而提高了产品的设计效率和质量,降低了产品成本,能为企业获得较好的社会效益和经济效益。变压器参数化绘图系统使用AutoLISP和DCL编写,程序采用模块化的设计理念设计,提高了程序的生命力,本系统大大的缩短了产品设计周期,使企业提高了产品开发效率和设计质量。关键词:Autolisp ,参数化绘图,变压器,计算机辅助设计IABSTRACTABSTRACTAs the development of society, the competitiveness of economy and market get increasingly fierce, and then high and new requirement has been put forward. CAD (Computer-Aided Design) technique is the very outcome of this requirement. Recently, in CAD technique application, we have gotten a great success. However, involving in a large scale and with too many factors, its impossible to meet all the requirements in the actual application of the CAD technique. The re-develop is the key ring for CAD technique to make a real effect; therefore, the Re-develop Technology CAD in a certain field will be more effective.Because the Transformer Mapping accounts for a large proportion in Transformer Design Mapping, calculation and mapping repeat again and again in the Transformer Design. In this Graduation Design, a practical parameterized mapping program design of transformer has been developed, and therefore improved the designing efficiency and the quality of products, reduced the cost and is helpful for enterprises to gain a better social and economical benefit. The transformer parameterized mapping system is composed in Auto LISP and DCL; in designing the program, Modular Idea is applied to improve the vitality of the program. This system greatly shortens the design circle of products and improves the R&D efficiency and quality of products. Key words: AutoLISP,the parameterized mapping,transformer,computer-aided desig四川理工学院毕业设计(论文)目 录摘 要IABSTRACTII第一章 AutoCAD二次开发概述11.1 AutoCAD简介11.2 AutoCAD二次开发语言及工具简介21.2.1 AutoLISP21.2.2 ADS21.2.3 ObjectARX21.2.4 VisualLISP31.2.5 VBA31.2.6 Visual Java41.3 AutoLISP语言与DCL简介41.3.1 AutoLISP简介41.3.2 DCL简介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:上铁轭垫块的主程序清单53 3 第一章 AutoCAD二次开发概述AutoCAD是一个通用CAD平台,它不仅具有强大的绘图、编辑功能,而且具有开放的体系结构,允许用户对其进行二次开发,以满足绘图过程中的特殊要求。AutoCAD荣登全球绘图软件的龙头宝座,主要是因为它具有开放的体系结构。它允许用户和开发者采用高级编程语言对其进行扩充和修改,即二次开发,能最大限度地满足用户的特殊要求。AutoCAD第一版于1982年11月由AutoDESK公司推出,目前最新版本是AutoCAD 2005。1.1 AutoCAD简介Auto CAD是美国 AUTODESK 公司1982年在微机上开发的绘图软件包,Auto CAD 的版本不断更新,更新的版本功能逐步增加,现已成为强有力绘图工具,在国际上广为流传。 Auto CAD 广泛应用于建筑、机械、电子、艺术造型及工程管理等领域,是微机上最为流行的绘图软件之一。使用Auto CAD对用户的计算机和英语不作要求,现在已有了中文版的Auto CAD 软件,可应用中文直接与软件对话,使用相当方便,掌握好Auto CAD 的关键就是实践,通过实践掌握各种命令的应用,技巧绘图以提高绘图的速度。其主要功能有:一、绘图功能Auto CAD 提供了丰富的基本绘图实体,具有完善的图形绘功能,绘制的图形是由预先定义好的图形元素即实体(Entity) 所组成,实体通过命令调用和光标定位即可输入所绘制的图形。如:点、直线、多边形、圆弧、椭圆、文本、剖面线、尺寸等等。二、编辑功能Auto CAD提供了各种修改手段,具有强大的图形编辑功能,Auto CAD 可以对图形进行擦除、修改、拷贝、移动、镜像、断开、修剪、旋转等多种编辑操作。三、绘图工具Auto CAD 为用户提供了大量的绘图工具,如捕捉、删格、正交、动态坐标、目标捕捉、缩放、点过滤、用户坐标等等辅助绘图工具。四、三维功能Auto CAD 可直接绘制三维图形,它提供了一个实体造型模块(AME),可生成典型三维实心体、拉伸体、回转体,对这些实心体进行并差交等布尔运算可以构成组合体,进而可获得剖切图轮廓图着色图等。五、开发环境Auto CAD 内含AutoLISP语言和ADS开发系统,便于用户进行二次开发。用户可以利用AutoLISP编制各种程序,从而为Auto CAD增加新的命令,也可以为各专业编制图形数据库。ADS是以C语言为基础的开发系统,它具有AutoLISP的大部分功能,并可使用标准C函数,是开发Auto CAD 的另一有效工具。另外Auto CAD 还有制作幻灯、文件管理等其它功能。1.2 AutoCAD二次开发语言及工具简介1.2.1 AutoLISPAutoLISP的全名是LIST Processing Language,是一种表处理语言,有很强的符号处理能力。是被解释执行的,任何一个语句键入后就能马上执行,它对于交互式的程序开发非常方便。其缺点是继承了LISP语言的编程规则而导致繁多的括号。她出现于20世纪50年代为研究人工智能而开发起来,也称人工智能语言。是一种嵌入在AutoCAD内部的编程语言,是LISP原版的一个子集,她一直是低版本AutoCAD的首选编程语言。AutoLISP具有如下特点: AutoLISP语言是在普通LISP语言基础上,扩充了许多适用于CAD应用的特殊功能而形成的,是一种仅能以解释方式运行于AutoCAD内部的解释型程序设计语言。 AutoLISP语言中的一切成分都是以函数的形式给出的,它没有语句概念和其他语法结构,执行AutoLISP程序就是执行一些函数,再调用其他函数。 AutoLISP把数据和程序统一表达为表结构,即S-表达式,故可把程序当成数来处理,也可以把数据当成程序来执行。 AutoLISP语言中的程序运行过程就是函数求值的过程,是在对函数求值的过程中实现函数的功能。 AutoLISP语言主要控制结构采用递归方式。递归方式的使用,似的程序设计简单易懂。1.2.2 ADSADS的全名是AutoCAD Development System,它是AutoCAD的C语言开发系统,ADS本质上是一组可以用C语言编写AutoCAD应用程序的头文件和目标库,它直接利用用户熟悉的各种流行的C语言编译器,将应用程序编译成可执行的文件在AutoCAD环境下运行,这种可以在AutoCAD环境中直接运行的可执行文件叫做ADS应用程序。ADS由于其速度快,又采用结构化的编程体系,因而很适合于高强度的数据处理,如二次开发的机械设计CAD、工程分析CAD、建筑结构CAD、土木工程CAD、化学工程CAD、电气工程CAD等。1.2.3 ObjectARXObjectARX是一种崭新的开发AutoCAD应用程序的工具,她以C+为编程语言,采用先进的面向对象的编程原理,提供可与AutoCAD直接交互的开发环境,能使用户方便快捷地开发出高效简洁的Auto CAD应用程序。ObjectARX并没有包含在AutoCAD中,可在AutoDESK公司网站中去下载,其最新版本是ObjectARX for AutoCAD 2000,它能够对AutoCAD的所有事务进行完整的、先进的、面向对象的设计与开发,并且开发的应用程序速度更快、集成度更高、稳定性更强。ObjectARX从本质上讲,是一种特定的C+编程环境,它包括一组动态链接库(DLL),这些库与AutoCAD在同一地址空间运行并能直接利用AutoCAD核心数据结构和代码,库中包含一组通用工具,使得二次开发者可以充分利用AutoCAD的开放结构,直接访问AutoCAD数据库结构、图形系统以及CAD几何造型核心,以便能在运行期间实时扩展AutoCAD的功能,创建能全面享受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应用程序实现交互操作。1.2.4 VisualLISPVisualLISP已经被完整地集成到AutoCAD 2000中,她为开发者提供了崭新的、增强的集成开发环境,一改过去在AutoCAD中内嵌AtuoLISP运行引擎的机制,这样开发者可以直接使用AutoCAD中的对象和反应器,进行更底层的开发。其特点为自身是AutoCAD 2000中默认的代码编辑工具;用它开发AutoLISP程序的时间被大大地缩短,原始代码能被保密,以防盗版和被更改;能帮助用户使用ActiveX对象及其事件;使用了流行的有色代码编辑器和完善的调试工具,让用户很容易创建和分析LISP程序的运行情况。在VisualLISP中新增了一些函数:如基于AutoLISP的ActiveX/COM自动化操作接口;用于执行基于Auto CAD内部事件的LISP程序的对象反应器;新增了能够对操作系统文件进行操作的函数。Visual LISP 为 AutoLISP 应用程序提供三种文件格式选项:l LSP 文件 (.lsp) - 一种包含 AutoLISP 程序代码的 ASCII 文本文件。 l FAS 文件 (.fas) - 一个 LSP 程序文件的二进制编译版本。 l VLX 文件 (.vlx) - 一个或多个 LSP 文件和/或对话框控制语言 (DCL) 文件的编 译集合。1.2.5 VBAVBA 即Mcrosoft office中的Visual Basic for Applications,它被集成到AutoCAD 2000中。VBA为开发者提供了一种新的选择,也为用户访问AutoCAD 2000中丰富的技术框架打开一条新的通道。VBA和AutoCAD 2000中强大的ActiveX自动化对象模型的结合,代表了一种新型的定制AutoCAD的模式构架。通过VBA,我们可以操作AutoCAD,控制ActiveX和其它一些应用程序,使之相互之间发生互易活动。1.2.6 Visual JavaJava是最早由Sun公司创建的一种颇具魅力的程序设计语言,她是针对嵌入系统而设计的。像许多开发语言一样,Java是一组实时库的集合,可为软件开发者提供多种工具来创建软件,管理用户接口,进行网络通讯、发布应用程序等。对AutoCAD用户和开发者而言,Java代表着新一代的编程语言,它主要用于开发出全新的优秀产品。Auto CAD 为我们提供了完整的、高性能的、面向对象的CAD程序开发环境,为用户和开发者提供了多种新的选择,使得对AutoCAD二次开发和定制变得轻松而容易。通过以上的介绍,帮助大家在二次开发时有所选择,提高工效,达到事半工倍的目的。1.3 AutoLISP语言与DCL简介1.3.1 AutoLISP简介AutoCAD为用户提供了众多的高级编程环境,主要有嵌套在AutoCAD之中的AutoLISP和VBA,面向对象特征的C+编程环境ARX,以及其它通过动态数据交换(DDE)完成与AutoCAD之间通信的高级语言应用程序等。LISP(List Processing,表处理解释语言)诞生于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年底推出Visual LISP,对AutoLISP是一次重大改进,增强了AutoCAD的二次开发能力。Visual LISP(简称VLISP)是一个用AutoLISP语言进行程序开发的软件工具,它提供的集成开发环境(Integrated Development Environment,IDE)提供有众多工具,功能十分强大,可使用户方便地用AutoLISP语言进行程序开发中的编写程序代码、调试程序等操作。1.3.2 DCL简介DCL话框具有操作直观、方便、易于输入和修改数据等特点,是现代软件设计中必不可少的风格。对话框是一个弹出式窗口,它与用户进行信息通信,一般被用于特定的与输入有关的任务。AutoCAD从12版本起提供了对话框语言,用户基于AutoCAD开发自己的应用程序时,可以利用AutoCAD所提供的可编程对话框PDB(Programmable Dialog Box)功能创建新的对话框,也可以修改一个已经存在的对话框。AutoCAD对话框新颖直观,在一定程度上简化了用户交互操作,极大地提高了软件的使用效率。对话框是用对话框控制语言DCL(Dialog Control Language )编写的ASCII文件定义的。DCL语言将定义对话框以什么方式出现以及它包含的内容,例如按钮,列表,文本等。对话框的设计以约束条件为基础,框的尺寸及其部件的布局均应遵循统一规则,用户不需要指出每一部分的尺寸大小及定位关系,系统自动进行布置。AutoCAD为用户提供的可编程对话框技术是由专用的对话框描述语言(DCL)和AutoLISP驱动函数两部分内容组成的。对话框的部件只定义了其行为方式,如按钮只意味着按压,列表只显示相关的内容以便用户做出选择等,一个对话框的使用方式实际上完全由它的应用程序(利用Auto LISP/VLISP或ADS所编写的程序)所决定。1.3.2.1 手工编码方法设计对话框的最终目的,就是要产生一个描述对话框外观的DCL程序文件。目前有两种方法,即手工编码方法和利用现成的设计工具PROTOBOX。为一个应用程序设计对话框,一般需要经历图11所示。图11 对话框手工设计过程 分析问题:弄清应用程序所要解决的问题,确定输入参数和输出形式。对于复杂的应用程序还需要进行模块化,确定模块之间的调用关系和数据联系。 根据应用程序所需的数据类型选择合适的构件,对构件进行分类,确定对话框构件的布局。 确定对话框及其构件和组件的属性。例如,确定构件的名字,标识文字,尺寸,对齐方式等。 手工绘制对话框的草图。 根据绘制的草图,利用DCL语言对对话框进行编码,生成描述对话框外观的DCL程序文件。 对DCL进行错误检查。1.3.2.2 对话框驱动程序对话框驱动程序具有相对固定的结构框架和严格的函数调用顺序。其一般顺序如下: 用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文件的卸载。图12 驱动程序的基本流程只有START_DIALOG函数执行结束后,主对话框才把控制权交回AutoCAD。此时可根据START_DIALOG函数返回值来判知用户退出对话框的原因,然后分情况进行处理。最后,调用UNLOAD_DIALOG函数卸载DCL文件。 驱动程序的基本流程如图12所示。1.4 参数化绘图系统简介1.4.1 概 述AutoCAD参数化程序从用户取得参数或外部文件,然后在AutoCAD图形中生成图像。这些参数可以是基于AutoCAD ,AutoLisp或ADS的。一个参数程序可以画一个公共零件的许多不同尺寸,不同形状的图。通过参数化,可以画出一系列复杂的物体,他们共享公共的参数关系。如果只改变比例,块是最好的解决方法。但如果这种变动需要大规模的相似块的库时,采用参数化可以提高柔性,减少错误,并产生巨大的效益。1.4.2 理解参数化设计参数化绘图在现代机械CAD中的应用很广,特别是对于定型的机械产品设计,需要形成系列,以便针对用户的生产特点提供不同大小、功率、规格的产品。这就要求该产品的CAD系统具有参数化的设计功能,使得产品的设计图可以方便地随着某些结构尺寸的修改而修改并自动地重新绘出所要求的图样,实现尺寸驱动图形的自动变化。在当今流行CAD软件中,每一个简单的命令调用就是一个参数化绘图的应用。这就像C语言或其他高级语言中的函数的调用一样,输入参数后执行特定的操作。对一个复杂的机械图进行参数化设计,其实就是一些简单的命令按照一定的拓扑关系的中和。参数化设计对象的结构形状一般比较定型,其尺寸关系可以用一组参数来确定。这样参数化系统的绘图功能就很明确的得以实现。1.4.3 设计参数化系统的基本要素一个较复杂的参数化部件系统的各个部分是随系统的设计而变化,但他们大致上都包括下列元素:A. 非CAD的外部文件,包括不见数据和设计特征。B. 一个进行提示和通信的用户界面函数。C. 一个读数据文件的AutoLisp子程序。D. 计算和绘图函数。E. 程序和函数的菜单界面。F. 零件表列的屏幕帮助。G. 材料帮助。设计一个整体系统实际上就是设计其各个功能的模块,即通常说的:模块化设计。这样,以后的公共模块就可以通用,这就大大的提高了设计效率!1.4.4 参数化设计的一般步骤一般的参数化设计,可以遵循以下的步骤:A. 进行数据分析,得出设计计算以及绘图所需数据B. 查找相关设计手册,得出零件图(或其他)的参数表C. 绘制零件图所需的参数D. 列出由零件参数表数据到绘图需要使用的参数数据转换公式E. 根据上面的数据项设计人机交互界面(对话框)F. 进行编程工作G. 设计对话框驱动函数H. 设计相关的帮助文件I. 标注J. 程序调试K. 程序43第二章 实用绘图工具的开发设计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.2.1 设计中采用的国家标准在设计中应根据我国最新的机械制图国标的规定,在开发过程中主要采用的国标有:GB10609.1-89 技术制图 标题栏; GB/T 14689-93 技术制图 图纸幅面和格式;GB/T 14691-93 技术制图 字体;GB/T 17450-1998 机械制图 图线;GB/T 16675.2-1996 机械制图 尺寸注法;GB/T 14665-93 计算机制图用计算机信息交换 制图规则。2.2.2.2 设置图层在AutoCAD软件中,图形对象的组织和管理是用图层来实现的。每个图形对象都有其特性,包括对象的图层、颜色、线型、线宽等。由于该项设置与输出图效果有较大的联系,因此在绘图环境中的设置恰当与否至关重要。根据绘图经验,在此设置好后直接按绘制样式输出,效果较理想,而且也可预见的。选择计算机绘图线宽的第4组,即粗实线、粗点画线为0.7mm,其余为0.25mm。图层的名字取为汉字,且与图层的用途一致以便分层作图时图层的转换。根据使用效果粗实线线宽改为0.4,其余改为0。最后设置的图层效果见下图21.图21 设置图层2.2.2.3置文字样式设置汉字字体、罗马字体及字高。为方便使用,设置了多种字高的文字样式。参照国家标准,根据经验,字体应设为两种样式:TEXT字体样式选用Romans.shx,宽度比例选0.67,倾斜角度选15,该字体专用于标注英文字母和阿拉伯数字。HZ字体样式选仿宋GB_2312,文字宽度系数选0.67,该字体专用于汉字内容的书写。2.2.2.4设置标注样式尺寸标注样式的设置是二维工程制图绘图环境设置的重要内容。图样的标注能否符合国标的关键在于尺寸标注样式的设置。在软件开发过程中只能通过尺寸标注变量的设置来完成,设置的具体内容见下面程序说明。在实际使用中,需要设置多个尺寸标注样式。设计的样式见图2-2 设置标注样式。标注样式0 标注样式1 标注样式2 标注样式3 标注样式4(字体TEXT3.5) (字体HZ3.5) 无指引线(用于直径文字水平书写及汉字说明)图2-2 设置标注样式2.2.2.5源程序; =(defun szhthj(); 设置所需的图层 (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 0 0.7 15 ) (command -style text3.5 romans 3.5 0.7 15 ) (command -style text5 romans 5 0.7 15 ) (command -style text7 romans 7 0.7 15 ) (command -style text10 romans 10 0.7 15 ) (command -style text14 romans 14 0.7 15 ) (command -style text20 romans 20 0.7 15 ) (command -style hz0 仿宋_GB2312 0 0.7 0 ) (command -style hz3.5 仿宋_GB2312 3.5 0.7 0 ) (command -style hz5 仿宋_GB2312 5 0.7 0 ) (command -style hz7 仿宋_GB2312 7 0.7 0 ) (command -style hz10 仿宋_GB2312 10 0.7 0 ) (command -style hz14 仿宋_GB2312 14 0.7 0 ) ; 设置尺寸标注样式 (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 );defun end2.3. 图框的绘制 在使用CAD绘图软件时,如果每次画图都要手工操作CAD绘制出图框,是一件繁琐的事情。如果图纸数量巨大,为每一幅图都绘制上图框,需要的时间,耗费的精力是很巨大的。 图框是几乎每幅图都必须绘制的基本模块之一,具有极强的通用性,如果能用一个LISP程序来代替这样的手工绘制,可以节省大量时间和精力,提高劳动效率,是省时省事的好方法。于是构思设计一个关于图框绘制的LISP程序。 由于绘制图框时,绘制某一幅面总有对应的一组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 ; 使用方法:带参调用,如(tka 2),表示绘制A2图幅 ; 修改时间: 2007年4月30日 2007年5月25日 ; 编 程 者: 黄军 ; ; =(defun tk(tfdm) (commandosnapnone) (cond (= tfdm 0) (do_tk2 841 1189 25 10) (= tfdm 1) (do_tk2 594 841 25 10) (= tfdm 2) (do_tk2 420 594 25 10) (= tfdm 3) (do_tk2 297 420 25 5) (= tfdm 4) (do_tk2 297 210 25 5) (T (prompt 没有你选择的图幅!参数为04,谢谢!) );cond );defun(defun do_tk2(b l a c) (setq p00 (0.0 0.0) (command layer s 细实线 ) (command line p00 (polar p00 0 l) (polar (polar p00 0 l)(/ pi 2)b) (polar p00 (/ pi 2)b) c) (command layer s 粗实线 ) (command pline (setq pp0 (polar (polar p00 0 a)(/ pi 2)c) (polar pp0 0 (- l a c) (polar (polar pp0 0 (- l a c)(/ pi 2)(- b c c) (polar pp0 (/ pi 2) (- b c c) c ) (command zoom all) )2.4设计日期的输入为简化操作,设计思想是设计日期自动提取系统当前日期,同时也允许用户在对话框中对系统当前日期进行改变,以满足用户使用要求。由于允许用户改变,所以该控件只能设计成编辑框控件。程序自动提取系统当前日期的实现方法是:利用AutoCAD系统变量CDATE取得计算机系统当前日期与时间,然后再组合成新的字符数据作为初值传到标签为“设计日期”编辑框控件。自动提取系统当前日期的程序段如下:(setq sjrq1 (rtos (getvar cdate) 2 0);利用CDATE取得计算机系统当前日期与时间,并将实型数转化为字符型 sjrq (strcat (substr sjrq1 1 4) - (substr sjrq1 5 2) - (substr sjrq1 7 2) ) ;setq;用strcat函数构成新的“年-月-日”格式字符,既系统当前日期程序说明:(substr sjrq1 1 4)从字符数据sjrq1中取前4位为年份;(substr sjrq1 5 2)从字符数据sjrq1中取第5、6位为月份;(substr sjrq1 7 2)从字符数据sjrq1中取第7、8位为日期。2.5 标题栏的绘制与填写方法标题栏的绘制与填写有两种方法,一是全部采用AutoLISP编程利用绘制命令和TEXT命令来绘制与填写标题栏,但程序编写较繁;二是在AutoLISP编程中插入块时利用AutoCAD块及其属性填写标题栏的设计者、设计日期,零部件名称等内容。后者使程序开发更简洁。针对设计具体要求,以参数化驱动。 参数说明:ppt-绘图基点,标题栏右下角点坐标。 tydh-图样代号,字符型。 ljmc-零件名称,字符型。 ljcl-材料名称,字符型。 asx-比例下拉列表索引。在使用Auto CAD绘制机械图形时,标题栏也是一个必不可少的工具。每一张图纸的标题栏都是一样,可以利用LISP程序来完成这样的绘图工作,以方便下次再次绘制此图形,节省绘图时间。标题栏格式如图26所示。图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日 ; 编 程 者: 黄军 ; ; =; (defun hmxb (ptt n / dcl_id do_what)(setq do_what 1) (if (= do_what 1) (hmxb1) )(defun hmxb1 () (command layer m mxb on mxb c 5 mxb ) (command pline ptt w 0.5 (setq ptt1 (polar ptt (/ pi 2) (+ 14 (* 7 n) (setq ptt2 (polar ptt1 pi 180) (polar ptt pi 180)c );绘制明细栏的第一行 (command line (polar ptt(/ pi 2)14) (polar(polar ptt(/ pi 2)14)pi 180) );绘制明细栏的外框 (setq i 1) (repeat (- n 1) (command line (setq pttx(polar ptt (/ pi 2)(+ 14 (* i 7) (polar pttx pi 180) ) (setq i (+ 1 i) );绘制明细栏的行(command line(setq pttx(polar ptt pi 20) (polar pttx(/ pi 2)(+ 14 (* 7 n) line(setq pttx(polar pttx (/ pi 2)7) (polar pttx pi 22) line(polar pttx pi 12) (polar (polar pttx pi 12)(/ pi 2)(+ 7 (* 7 n) line(setq pttx(polar ptt pi 42) (polar pttx(/ pi 2)(+ 14 (* 7 n) line(setq pttx(polar ptt pi 80) (polar pttx(/ pi 2)(+ 14 (* 7 n) line(setq pttx(polar ptt pi 88) (polar pttx(/ pi 2)(+ 14 (* 7 n) line(setq pttx(polar ptt pi 132) (polar pttx(/ pi 2)(+ 14 (* 7 n) line(setq pttx(polar ptt pi 172) (polar pttx(/ pi 2)(+ 14 (* 7 n) );绘制明细栏的列(command layermxzonxzc 1xz)(command -style standardsimfang.ttf0 0.65 0 n n)(command textm(polar (polar ptt pi 10 )(/ pi 2)7)5 0 备注 textm(polar (polar ptt pi 31 )(/ pi 2 )3.5)4 0重 量 textm(polar (polar ptt pi 26 )(/ pi 2)10.5)4 0总计 textm(polar (polar ptt pi 37 )(/ pi 2)10.5)4 0单件 textm(polar (polar ptt pi 61 )(/ pi 2)7)5 0 材 料 textm(polar (polar ptt pi 84 )(/ pi 2)7)5 0 数量 textm(polar (polar ptt pi 110)(/ pi 2)7)5 0 名 称 textm(polar (polar ptt pi 152 )(/ pi 2)7)5 0 代 号 textm(polar (polar ptt pi 176 )(/ pi 2)7)5 0 序号 )2.6.3 填写明细表绘制出明细表实际上只完成了整个明细表工作的极小部分,而大量繁琐的工作则是填写部明细表的内容。要实现程序的实用性和通用性,就必须要有处理数据的能力,并尽可能减少用户的操作,实现自动填写。从数据文件读取数据时,以明细表的一栏即某一个零部件的所有具体信息为单位,包括“名称”、“代号”、“数量”、“重量”和“材料”等。因此,必须在数据文件中设置相应的分隔符号,程序自动完成各数据项的分离,并根据各数据项具体的填写位置完成填写。为简化程序设计,采用英文状态下的“逗号”为分隔符。填写位置由绘制明细表的基点来参照确定,可省去用户选择基点的操作。明细表填写设计思路如图2-9所示。打开需要的数据文件读入第一行记录分离一行记录中的各信息填写到相应位置文件是否读完?读下一行记录结束NY 图2-9 填明系表的设计思路 考虑到用户在填写明细表内容的数据来源、文字位置(居中或左对齐)、文字特性(字高、宽度)因素,设计如图2-9所示的操作界面,充分考虑用户的习惯和对话框构件的有效性控制问题。在点击数据来源的“数据文件”按扭后,打开AutoCAD的“open file”标准对话框进行数据文件选择。为方便用户操作,在打开文件对话框时将存放数据文件的目录、文件类型作为当前操作。为了提高绘图效率,填写明细表不可能采用手工的方式在AutoCAD绘图平台上按照位置对应来一一填写,而应该通过程序来自动完成。因此,对明细表内容较多的情况,要在执行程序前编写数据文件。由于程序要对明细表的每一个单元格进行填写,但有些单元格中可能没有数据,考虑到这一点,在数据文件中采用连用两个分隔符,相当于其间数据为空字符。如变压器的上铁轭绝缘的明细表数据文件如下(文件名:xmxb.txt):1,纸圈%c177/%c305X3,3,纸板,2,垫块,4,3,垫块,12,2.6.4 技术要求 绝缘部分技术要求,规范统一,故在主程序中直接输入即可。2.7 序号标注机械制图装配图中零,部件序号及其编排方法(GB 4458.2-1984)强调了装配图中所有的零,部件都毫无例外地必须编号。在装配图中标注序号的方法可以有三种:(1)在指引线的水平线上注写序号;(2)在指引线的圆内注写序号;(3)在指引线附近注写序号。在本程序中,省略了第一和三种不常用到的方式,只做了第二种序号标注方法。当一组紧固件以及装配关系清楚的零件组,可以采用公共指引线,在本程序中也对两种不同的标注方法制定了相应的连续序号标注格式。图 2-10 序号标注操作实例由于在开发的时候序号指引线的水平线由于不是很多,因此只是编写了一个很小的关于序号标注的程序,点与数字直接给定,没有对点进行判断,这样可以是程序更简单。序号标注操作事例如图2-10所示。在这里序号标注中的数字比较关键,也就是确定数字的基点十分关键,要是没有选好有可能在圆外去了,因此一开始就应该一圆心为基点,还有数字的大小以及文字样式都必须按规定来做。第三章 变压器绝缘部分参数化绘图设计3.1 变压器各部件零件图的参数化绘图概述变压器分为铁心、绝缘、线圈、油箱和总装五大部分。对每个部件、零件进行参数化绘图设计,进行参数确定。在绘制某个零件时,有些尺寸参数是从相关零部件的尺寸得到的,有些是从数据库中得到的,这样就减少了用户的操作,因而也就可以减少用户的错误。在程序的调试过程中,需要反复对程序进行修改,以使图纸符合企业的生产以及符合机械制图国家标准。为便于程序的管理,将变压器所有零部件的图纸的参数化绘图程序放入相应的子目录中。如所示。总装部件(所有总装部件的LISP文件、DCL文件)图块(所有外部图块)铁心部件(所有总装部件的LISP文件、DCL文件)数据(所有填写明细表的数据文件、数据库文件)绝缘部件(所有绝缘部件的LISP文件、DCL文件)油箱部件(所有油箱部件的LISP文件、DCL文件)专用实用工具线圈部件(所有线圈部件的LISP文件、DCL文件)变压器零部件图的参数化设计所涉及到的零部件名称具体如下:总装部件变压器总体图(图号:1DB.710.01.1)高压引线 (图号:5DB.516.01.1)低压引线 (图号:5DB.516.01.2)高压引线夹木(图号:8DB.111.528.1)低压引线夹木(图号:8DB.111.528.2)铁心部件铁心装配图 (图号:5DB.640.01)铁心(叠积图)(图号:8DB.640.01)上夹件 (图号:8DB.070.01.1)下夹件 (图号:8DB.070.01.3)垫脚 (图号:8DB.022.01)木垫块 (图号:8DB.193.528.2)夹件绝缘 (图号:8DB.750.01)垫脚绝缘 (图号:8DB.786.01)绝缘部件绝缘装配 (图号:5DB.700.120)上铁轭绝缘(图号:5DB.711.528.1)下铁轭绝缘(图号:5DB.711.528.2)铁轭垫块 (图号:8DB.670.020.1)油箱部件油箱焊装 (图号:5DB.384.528)箱盖焊装 (图号:5DB.312.528)箱壁 (图号:8DB.051.528)箱沿 (图号:8DB.084.528.1)箱壁加强铁(图号:8DB.084.528.2)箱底 (图号:8DB.055.528)油枕 (通用件,不画图)线圈部件高压线圈 (图号:6DB.600.120.2)低压线圈 (图号:6DB.600.120.1)高压端绝缘(图号:8DB.711.528.1)低压端绝缘(图号:8DB.711.01.1-2)夹件绝缘 (图号:8DB.750.120)由于各零部件的参数化绘图设计的设计思路、开发调试过程基本一致,而本次毕业设计,仅针对绝缘部件进行参数化设计3.2 绝缘部件的参数化绘图参数化绘图设计的目的是要在已有的绘图基础上,增加绘图的参数化功能,即将以前的某些绘图参数的确定交给程序去完成,这就大大的缩短了绘图时间,提高了绘图质量。同时,参数化的程序设计需要多个程序模块组合实现强大的程序功能,因此,根据参数化设计的思想,拟订了以下的程序设计模块。图3-1 程序模块图3.3总体设计思路总体设计主要包括图框、视图的绘制、明细表和标题栏的绘制及填写。其基本结构如图3-2的总体程序设计框图所示:图3-2 总体程序设计框图开 始绘制图框和标题栏块方式插入视图填写规格和参数表绘制填写明细表绘 制块方式插入视图3.4铁轭垫块参数化绘图3.4.1参数确定根据铁轭垫块的零件图,确定几何参数为:垫块长度L、垫块高度H,垫块宽度B,圆(所)在高度L1,圆(所)在宽度H1,小圆半径R。如图3-3所示把以上这些参数通过数学计算,确定点的位置,然后按照要求对铁轭垫块参数化绘图设计.图 3-3铁轭垫块的三视图3.4.2 对话框界面设计确定好基本绘图参数确定后,即可以利用DCL语言编出合乎使用要求的对话框界面。铁轭垫块的对话框界面如图示:图 3-4铁轭垫块对话框图3.4.3 总体绘图设计思路通过对该图的分析,其总体绘图设计思路是:为保证程序的通用性,对主视图,左视图,俯视图图示,明细表标题栏和图框则由专用绘图工具解决。图3-5 铁轭垫块的布局点位图3.4.4 布局的点位图图3-5 铁轭垫块的布局点位图。说明:pt 视图的绘图基点。 P4 视图的绘图基点。 P8 视图的绘图基点。 P00 图框的绘图基点。 Ppt 标题栏的绘图基点。 ptt 细表的绘图基点。3.4.5 主视图的绘制图3-6主视图如图3-6所示,L L1 H H1 2R为基本参数,都可以从对话框中得到。Pt为插入点,由于图幅已定,因此其值在程序中也设定。垫块长度L、垫块高度H,圆(所)在高度L1,圆(所)在宽度H1,而pt_st也是一个比较关键的一点,因为pt_st不是特殊点,也就是pt_st的x点以及y点都要确定,因此在此处用到的程序为:(setq pt_st (list (- (car pt1)l1)(+ (cadr pt1)h1))小圆半径R。由于为了适应各种尺寸的铁轭垫块。因此设置了比例,比例的大小可以在对话框中选定已设置的各种比例。3.4.6 左视图的绘制 图3-7左视图所示,其中各个尺寸在主视图中都可以得到,因此左视图中只有p4点才是其中的关键。主要是找到p4与主视图的相对位置。其程序为:(setq polar p1 0 x).还有就是左视图的两条虚线,可以根据圆的中心线来绘制。在绘制左视图的时候为了方便起见可以用pline命令而不用line命令,因为pline所绘制的图形是一个整体,而line命令所得到的是很多线条,在选中图形的时候只是需要选定图形上的一个点就可以把整个图形给选中,在镜像的时候特别有优势。图3-7左视图3.4.7 俯视图的绘制图3-8俯视图图3-8 俯视图所示,其中除了垫块宽度B以外其余各个尺寸在主视图中都可以相映的找到,并且都可以从对话框中直接获得。图形比较简单,所以都加了比例,以适应用户的各种需求。3.5下铁轭绝缘的参数话设计3.5.1参数的确定根据下铁轭绝缘的零件图,确定几何参数为:小圆半径R1,大圆半径R2,垫块的(投影)长度L,中心到垫块(的距离)L1,垫块(异侧的)投影L2,铁轭宽度B,垫块的高度H,垫块大头DT,垫块小头XT,垫块小孔XK。如图3-9所示。把以上这些参数通过数学计算,确定点的位置,然后按照要求对下铁轭绝缘进行参数化绘图设计。图3-9 下铁轭绝缘的视图3.5.2 对话框界面设计确定好基本绘图参数后,即可以利用DCL语言编出合乎使用要求的对话框界面。下铁轭绝缘的对话框界面如图示:图3-10 下铁轭绝缘的对话框3.5.3 总体绘图设计思路通过对该图的分析,其总体绘图设计思路是:为保证程序的通用性,对主视图,左视图,俯视图图示,明细表标题栏和图框则由专用绘图工具解决。图3-11 下铁轭绝缘的布局点位图3.5.4 布局的点位图图3-11 下铁轭绝缘的布局点位图说明: p 主视图的绘图基点。 Pf1 俯视图的绘图基点。 Pft 平面图的绘图基点。Pzt 平面右图的绘图基点 P00 图框的绘图基点。 Ppt 标题栏的绘图基点。 ptt 细表的绘图基点。3.5.5 主视图的绘制图3-12 下铁轭绝缘主视图如图3-12所示,R1,R2, B, H, DT。为基本参数,都可以从对话框中得到。P为插入点,在此图中由于p21点以及pt31点所决定的局部图由于没有具体的尺寸因此就必须以那两个点作为中心来对它所决定的局部图进行计算。由于图幅已定,因此其值在程序中也设定。长度由于为了适应各种尺寸的铁轭垫块。因此设置了比例,比例的大小可以在对话框中选定已设置的各种比例。3.5.6俯视图的绘制图3-13左视图所示,除了L, L1, L2,在主视图中可以得到以外,象55,10,5几个数据都在俯视图中得到,由于绝缘部分主要用途是为了绝缘,因此绝缘部件的厚度只是在基本尺寸范围内上下浮动,也是为了是程序简单,所以在程序中直接起用了着几个数据,但是有改动也没有关系图中各个部分都是按比例来设置的因此大可以放心。在俯视图中有两个关键点pf1以及pz1,在这两点中最重要的是找到pf1的点,而pz1的点可以用相对坐标来表示。在俯视图中值得注意的一点是,由于整体与局部的尺寸相差过大,在其他各个图形都可以找到点的情况下俯视图很可能找不到点,所以为了拾取到点,在此段程序中我用到了(setq “zoom” “w” pz1 pz11”) 程序语句。它的作用是把指定区域内的点放在频幕区,以便能够找到指定点,换句话说就是执行此程序后指定区域在可视区内放到足够大而可以完全显示指定的那一部分。图3-13 下铁轭绝缘俯视图3.5.7平面图的绘制图3-14下铁轭绝缘平面图如图3-14所示,DT ,XT,XK为基本参数,可以直接在对话框中得到。还有象R1,R2,可以直接从主视图中得到,在平面图中的关键点是pft以及pft31点。由于开始编写程序的时候只是编写了一个130度方向的垫块,因此其余三个垫块都是用镜像来完成的,但是在-50方向不是一个与130方向的垂直,因此用到的镜像第一点与第二点都必须找另外的点,还有由于在剪切大圆上的线段时由于线太多不可能剪的很切底,所以只有吧剪切少了的删除,也用镜像来得到。3.5.8平面右图的绘制图3-15下铁轭绝缘平面右图 如图3-15所示,H,XT,DT,XK,为基本参数,在对话框中都可以得到。由于绝缘部分很薄,并且还分成了三小份,因此不利于编程以及程序调制,所以把7设成了定值,也是为了是程序更简单,更加实用。在图中主要是确定pzt关键点,只要确定了pzt那么就可以根据程序得到图形,在平面右图中用到了镜像命令使得程序更加简单。3.6上铁轭绝缘的参数化设计3.6.1参数的确定根据上铁轭绝缘的零件图,确定几何参数为:小圆半径R1,大圆半径R2,小孔半径R3,垫块的(投影)长度L,中心到垫块(的距离)L1,垫块(异侧的)投影L2,铁轭宽B垫块的高度H,垫块大头DT,垫块小头XT,垫块小孔XK。如3-16所示。把以上这些参数通过数学计算,确定点的位置,然后按照要求对上铁轭绝缘进行参数化绘图设计。图3-16上铁轭绝缘三视图3.6.2 对话框界面设计确定好基本绘图参数后,即可以利用DCL语言编出合乎使用要求的对话框界面。3.6.3 总体绘图设计思路通过对该图的分析,其总体绘图设计思路是:为保证程序的通用性,对主视图,左视图,俯视图图示,明细表标题栏和图框则由专用绘图工具解决。 图3-14上铁轭绝缘的对话框3.6.4 布局的点位图图3-15上铁轭绝缘的布局点位图图3-15上轭绝缘的布局点位图说明:p 主视图的绘图基点。 Pf1 俯视图的绘图基点。 Pft 平面图的绘图基点。Pzt 平面右图的绘图基点 P00 图框的绘图基点。 Ppt 标题栏的绘图基点。 ptt 细表的绘图基点。在这些点当中最主要的也是最先确定的是p,由于本次二次开发中的图框是最先定下来的,并且图形比较复杂所以就没有用自动计算比例,而是先给定比例,然后还计算,3.6.5 主视图的绘制图3-16上轭绝缘主视图如图3-16示,由于下铁轭绝缘与上铁轭绝缘有很大一部分是相同的,因此在这里我就不把数字改成字母了。R1,R2,R3,B1, B, H,H1, DT。为基本参数,都可以从对话框中得到。P为插入点,在确定了p点后,还有py以及p73是关键点。由于图幅已定,因此其值在程序中也设定。长度由于为了适应各种尺寸的铁轭垫块。因此设置了比例,比例的大小可以在对话框中选定已设置的各种比例。图形比较复杂,因此多次用了放大命令。3.6.6俯视图的绘制图3-17视图所示,关键点为pf1,其余基本尺寸都与上铁轭绝缘一样,所以在这里就不在重复累赘了,图中大部分尺寸都可以从对话矿中得到,只有一个尺寸需要计算得到。图3-17下铁轭绝缘俯视图3.6.7平面图的绘制图3-18铁轭绝缘平面图如图3-18示,DT ,XT,XK为基本参数,可以直接在对话框中得到。还有象R1,R2,可以直接从主视图中得到,在平面图中的关键点是pft以及pft31点。由于开始编写程序的时候只是编写了一个130度方向的垫块,因此其余三个垫块都是用镜像来完成的,但是在-50方向不是一个与130方向的垂直,因此用到的镜像第一点与第二点都必须找另外的点,还有由于在剪切大圆上的线段时由于线太多不可能剪的很切底,所以只有吧剪切少了的删除,也用镜像来得到。3.6.8平面右图的绘制图3-19铁轭绝缘平面右图 如图3-19示,H,XT,DT,XK,为基本参数,在对话框中都可以得到。由于绝缘部分很薄,并且还分成了三小份,因此不利于编程以及程序调制,所以把7设成了定值,也是为了是程序更简单,更加实用。在图中主要是确定pzt关键点,只要确定了pzt么就可以根据程序得到图形,在平面右图中用到了镜像命令使得3.7绝缘装配的参数化设计由于绝缘装配图形比较复杂,绘图量比较大,所以全部采用了块的方式进行了插入,而绘图基点也就是连图框在内的一切图形。因此除了绘图基点以外就没有其他什么参数了。3.7.1 对话框界面设计确定好基本绘图参数后,即可以利用DCL语言编出合乎使用要求的对话框界面。如下图所示。图3-20装配的对话框3.7.2 总体绘图设计思路通过对该图的分析,其总体绘图设计思路是:为保证程序的通用性,对主视图,左视图,俯视图图示,明细表标题栏和图框则由专用绘图工具解决。图3-21缘装配的点位图3.7.3 布局的点位图图3-22绝缘的布局点位图P 装配图的插入点。3.7.4 块的绘制图3-22装配图第四章 结 论本软件经过多次运行,效果非常理想,能在AUTO CAD R14.0版以上运行。生成的零件图符合国家机械制图标准,可用于实际生产,有较好的实用性和应用性。该软件有以下几个优点:1.输入数据方便、可靠。对话框操作界面形象直观、简洁,与Windows界面风格一致操作方便。在数据输入方面有较强的容错处理能力。 2.可靠性、可维护性和可扩充性都较好。由于采用模块化程序设计思想,程序的设计思路清晰,模块化程度高。而且加入了较强的容错处理能力,因而具有较好的可靠性、可维护性和可扩充性。3.采用模块化程序设计方法,可利用已有模块,提高软件开发效率。该软件有以下缺点:1.在写明细表的时候不能用相对路径来调用明细表中书写的内容,这也是用户一定要先在xmxb程序下把mxb.txt的路径给对才可以绝对的调用改程序。四川离宫参考文献参 考 文 献1 符纯华,计算机辅助设计,四川理工学院,2005。2 符纯华、石艳,计算机辅助设计上机实验指导书 2005。3 成大先,机械设计手册单行本,化学工业出版社,2004。4 邱宣怀,机械设计,高等教育出版社,2003重印。5 李学志,Visual LISP程序设计,清华大学出版社,2006.56 陈铁鸣,新编机械设计课程设计图册,高等教育出版社,2003.7。7 汪琪美、霍新明,对话框与驱动程序设计,海洋出版社,1998。8 吴勇进、林美樱,AutoLISP&DCL基础篇,中国铁道出版社,2003四川理工学院毕业设计(论文)致谢辞四年的大学即将进入尾声,在将要完成毕业设计的时刻,掩卷而思,不禁感慨万千。回首所经过的学习历程,无一不是在各位尊敬的老师、同学和朋友们的亲切关怀,精心呵护和悉心照料下度过的。在这里,我要写下对所有关心、爱护和帮助过我的人的万分感激之情。在设计的过程中,我得到了许多同学、老师的帮助,特别是我的设计指导老师刘珠老师,在毕业设计的选题、程序的开发和完善全过程中,刘珠老师都给予了非常具体和十分有效的关怀、指导和帮助。为此,我谨向尊敬的老师和所有帮助过我的同学、朋友致以崇高的敬意和诚挚的71附录A:铁轭垫块的主程序清单=; ; 程序功能:绘明细表 , ; 使用方法:带带参参调用, ; 修改时间:2007年5月20日 2007年6月1日 ; 编 程 者: 黄军 ; ; =;= 将编辑框中的字符串转换为实型数= (defun updata1() (start_list ty_BL) (mapcar add_list BL_list) (end_list) )(defun tedk(/ L H B L1 H1 R do_what pt_x pt_y bili);括号内定义局部变量=在前加一斜杠 (load huangjun/qdcx/szhthj.lsp) (szhthj) (setq do_what 2);定义局部变量值 (setvar cmdecho 0);防止命令执行的过程显示 ;(setq jun 1) (setq xxx 0) (if ( (setq iDcl_id (load_dialog huangjun/dhk/tedk1.dcl) 0) (progn (setq do_what 2 L 50 H 210 B 40 L1 26 H1 105 R 7 pt_X 240 pt_Y 160 bili 1BL_list (list 1:1 1:2 1:2.5 2:1 2.5:1 4:1 5:1) (setq pt (list 240 160) (while( do_what 1) (if(new_dialog tedk1 iDcl_id) (progn (updata1) (init ty_image huangjun/tuxing/铁轭垫块.sld) (set_tile ty_L (rtos L 2 2) (set_tile ty_H (rtos H 2 2) (set_tile ty_B (rtos B 2 2) (set_tile ty_L1(rtos L1 2 2) (set_tile ty_H1(rtos H1 2 2) (set_tile ty_R (rtos R 2 2) (set_tile ty_BL (rtos xxx) (action_tile ty_BL (save_type1) (set_tile pt_X (rtos pt_X 2 2) (set_tile pt_Y (rtos pt_Y 2 2) (action_tile ty_L (fL) (action_tile ty_H (fH) (action_tile ty_B (fB) (action_tile ty_L1 (fL1) (action_tile ty_H1 (fH1) (action_tile ty_R (fR) (action_tile pick_point (done_dialog 2) (action_tile accept (done_dialog 1) (action_tile cancel (done_dialog 0) (setq do_what(start_dialog) (if(= do_what 2) (progn (initget 1) (setq pt(getpoint) (setq pt_X(car pt) pt_Y(cadr pt) ) ) ) );while (if(= do_what 1) (progn (zst)(zuost)(fst) (do_tx_jsyq) ) (alert 不能载入dcl文件) ) (unload_dialog iDcl_id) );驱动函数结束;= 将编辑框中的字符串转换为实型数= (defun fL() (setq L(atof(get_tile ty_L)(defun fH() (setq H (atof(get_tile ty_H)(defun fB() (setq B (atof(get_tile ty_B)(defun fL1() (setq L1(atof(get_tile ty_L1)(defun fH1() (setq H1(atof(get_tile ty_H1)(defun fR() (setq R (atof(get_tile ty_R);=计算比例=(defun save_type1(/ index) (setq index (atoi (get_tile ty_BL) (cond (= 0 index) (setq bili 1 xxx 0) (= 1 index) (setq bili 0.5 xxx 1) (= 2 index) (setq bili 0.4 xxx 2) (= 3 index) (setq bili 0.4 xxx 3) (= 4 index) (setq bili 2 xxx 4) (= 5 index) (setq bili 2.5 xxx 5) (= 6 index) (setq bili 4 xxx 6) (= 7 index) (setq bili 5 xxx 7) );cond );= 主视图= (defun zst() (setq HL (* L bili) HR (* R bili) HH (* H bili) HB (* B bili) HH1(* H1 bili) HL1(* L1 bili) ) (setq p1 (polar pt 0 HL) p2 (polar p1 (* 0.5 pi) HH) p3 (polar pt (* 0.5 pi) HH) (setq pt_st (list (- (car p1) HL1) (+ (cadr p1) HH1) (setq pt1 (polar pt_st (* pi -0.75) HR) (setq pt2 (polar pt_st (* pi 0.75) HR ) ;计算基本图形上的坐标 (setq pt_stz (polar pt_st pi (+ HR 10) (setq pt_sty (polar pt_st 0 (+ HR 10) (setq pt_stx (polar pt_st (* -0.5 pi) (+ HR 10) (setq pt_sts (polar pt_st (* 0.5 pi) (+ HR 10 );计算圆的坐标 (command osmode 0) ;关闭对象捕捉 (command layer s 粗实线层 ) (command line pt p1 p2 p3 pt ) (command circle pt_st HR );绘制基本图 (command layer s 中心线层 ) (command line pt_stz pt_sty ) (command line pt_sts pt_stx ) ) ;绘制圆的中心线;= 左视图= (defun zuost() (setq p4 (polar p1 0 (/ HH 3.5) p5 (polar p4 0 HB) p6 (polar p5 (* pi 0.5) HH) p7 (polar p6 pi HB) ) (setq pt_s (polar p4 (* pi 0.5)(/ HH 2) (setq pt_t (polar p5 (* pi 0.5)(/ HH 2) (setq pt_t1 (polar pt_t (* pi 0.5)HR) (setq pt_t2 (polar pt_t (* pi -0.5) HR) (setq pt_s1 (polar pt_s (* pi 0.5) HR) (setq pt_s2 (polar pt_s (* pi -0.5) HR);计算基本图形上的坐标 (setq pt_sy (polar pt_s pi 10) (setq pt_ty (polar pt_t 0 10) (setq pt_st (list (- (car p1) HL1) (+ (cadr p1) HH1);绘制中心线的坐标 (command layer s 粗实线层 ) (command pline p4 p5 p6 p7 p4 ) (command layer s 虚线层 ) (command line pt_t1 pt_s1) (command line pt_t2 pt_s2);绘制基本图形 (command layer s 中心线层 ) (command pline pt_sy pt_ty );绘制中心线 ;= 俯视图= (defun fst() (setq p8 (polar p1 (* -0.5 pi) (+ HL (* 20 bili) p9 (polar p8 pi HL) p10 (polar p9 (* pi 0.5) HB) p11 (polar p10 0 HL) (setq pt_ss (polar p8 pi HL1) (setq pt_sx (polar p11 pi HL1) (setq pt_ss1 (polar pt_ss pi HR) (setq pt_ss2 (polar pt_ss 0 HR) (setq pt_sx1 (polar pt_sx pi HR) (setq pt_sx2 (polar pt_sx 0 HR);绘制图形的基本坐标 (setq ps (polar pt_ss (* -0.5 pi ) (* 10 bili) (setq ptt (polar pt_sx (* -0.5 pi ) (* -10 bili);计算中心线的点的坐标 (command layer s 粗实线层 ) (command pline p8 p9 p10 p11 p8 ) (command layer s 虚线层 ) (command line pt_ss1 pt_sx1) (command line pt_ss2 pt_sx2);绘制基本图形 (command layer s 中心线层 ) (command line ps ptt );绘制中心线 (bz) );= 标注程序= (defun bz() (setq cj (* 2 R) (setq cj (rtos cj 2 2) (setq bz1 (strcat %c cj) (command layer s 标注层 ) (command dimstyle r 标注样式2 ) (command zoom pt p2 ) (command dimdiameter (polar pt_st (* 0.75 pi) HR) t bz1 (polar pt_st (/(* pi -30)180)HR) ) (command dimlinear p2 p3 t L 0,10 ) (command dimlinear p1 p2 t H 25,10 ) (command dimlinear pt_st p1 t H1 15,10 ) (command dimlinear p8 p11 t B 20,10 ) (command dimlinear p1 pt_sx t L1 10,10 ) );defun;= 技术要求= (defun do_tx_jsyq( / pt pt1 pt2) (setq pt (500 380) pt1 (polar (polar pt (- 0 (/ pi 2) 15) pi 12) ) (command text s hz5 j m pt 0 技术要求 text s hz3.5 pt1 0 粘合热压);= 幻灯片加载程序= (defun init(image sld) (start_image image) (fill_image 0 0 (dimx_tile image) (dimx_tile image) 0) (slide_image 0 0 (dimx_tile image) (dimy_tile image) sld) (end_image) );defun附录B:上铁轭垫块的主程序清单=; ; 程序功能:绘明细表 , ; 使用方法:带不带参调用, ; 修改时间:2007年4月30日 2007年5月25日 ; 编 程 者:黄军 ; ; = (defun updata3() (start_list ty_BL) (mapcar add_list BL_list) (end_list) )(defun stejy (/ R1 R2 R3 L L1 L2 B1 B H H1 H2 DT XT XK do_what p_X p_Y) (load huangjun/qdcx/szhthj.lsp) (szhthj) (setq do_what 2);定义局部变量值 ;(setvar cmdecho 0);防止命令执行的过程显示 (setq aax 0) (if ( (setq iDcl_id (load_dialog huangjun/dhk/stejy1.dcl) 0) (progn (setq do_what 2 R1 88.5 R2 152.5 R3 10 L 94 L1 43 L2 31 B1 30 B 145 H 60 H1 120 H2 25 bili 1 DT 92 XT 52 XK 5 p_X 283 p_Y 305 BL_list (list 1:1 1:1.5 1:2 1:2.5 1:4 1:5) (while( do_what 1) (if(new_dialog stejy1 iDcl_id) (progn (updata3) (init ty_image huangjun/tuxing/上铁轭绝缘.sld) (set_tile ty_R1(rtos R1 2 2) (set_tile ty_R2(rtos R2 2 2) (set_tile ty_R3(rtos R3 2 2) (set_tile ty_L (rtos L 2 2) (set_tile ty_L1(rtos L1 2 2) (set_tile ty_L2(rtos L2 2 2) (set_tile ty_B1(rtos B1 2 2) (set_tile ty_B (rtos B 2 2) (set_tile ty_H (rtos H 2 2) (set_tile ty_H1(rtos H1 2 2) (set_tile ty_H2(rtos H2 2 2) (set_tile ty_DT(rtos DT 2 2) (set_tile ty_XT(rtos XT 2 2) (set_tile ty_XK(rtos XK 2 2) (set_tile ty_BL (rtos aax 2 0) (action_tile ty_BL (save_type1) (set_tile p_X (rtos p_X 2 2) (set_tile p_Y (rtos p_Y 2 2) (action_tile ty_R1 (fR1) (action_tile ty_R2 (fR2) (action_tile ty_R3 (fR3) (action_tile ty_L (fL) (action_tile ty_L1 (fL1) (action_tile ty_L2 (fL2) (action_tile ty_B1 (fB1) (action_tile ty_B (fB) (action_tile ty_H (fH) (action_tile ty_H1 (fH1) (action_tile ty_H2 (fH2) (action_tile ty_DT (fDT) (action_tile ty_XT (fXT) (action_tile ty_XK (fXK) (action_tile pick_point (done_dialog 2) (action_tile accept (done_dialog 1) (action_tile cancel (done_dialog 0) (setq do_what(start_dialog) (if(= do_what 2) (progn (initget 1) (setq p(getpoint) (setq p_X(car p) p_Y(cadr p) ) ) ) ) );while (setq p (list p_X p_Y) (if(= do_what 1) (progn (zst) (fst) (pmt) (xhbz) (pmyt) ) ) (alert 不能载入dcl文件) ) (unload_dialog iDcl_id) );驱动函数结束;= 将编辑框中的字符串转换为实型数= (defun fR1() (setq R1 (atof(get_tile ty_R1)(defun fR2() (setq R2 (atof(get_tile ty_R2)(defun fR3() (setq R3 (atof(get_tile ty_R3)(defun fL() (setq L (atof(get_tile ty_L)(defun fL1() (setq L1(atof(get_tile ty_L1)(defun fL2() (setq L2(atof(get_tile ty_L2)(defun fB() (setq B (atof(get_tile ty_B)(defun fB1() (setq B1 (atof(get_tile ty_B1)(defun fH() (setq H (atof(get_tile ty_H)(defun fH1() (setq H1 (atof(get_tile ty_H1)(defun fH2() (setq H2 (atof(get_tile ty_H2)(defun fDT() (setq DT (atof(get_tile ty_DT)(defun fXT() (setq XT (atof(get_tile ty_XT)(defun fXK() (setq XK (atof(get_tile ty_XK);= 计算比例= (defun save_type1(/ index) (setq index (atoi (get_tile ty_BL) (cond (= 0 index) (setq bili 1) (= 1 index) (setq bili 0.667) (= 2 index) (setq bili 0.5) (= 3 index) (setq bili 0.4) (= 4 index) (setq bili 0.25) (= 5 index) (setq bili 0.2) );cond (setq aax index) );= 主视图= (defun zst() (setq HR1 (* R1 bili) HR2 (* R2 bili) HR3 (* R3 bili) HL (* L bili) HL1 (* L1 bili) HL2 (* L2 bili) HB (* B bili) HB1 (* B1 bili) HH (* H bili) HH1 (* H1 bili) HH2 (* H2 bili) HDT (* DT bili) HXT (* XT bili) HXK (* XK bili) ) (setq p9 (polar p (* pi 0.5) HR1) p8 (polar p (- 0 pi) HR1) p7 (polar p (* pi -0.5) HR1) p73 (polar p7 (* pi -0.5)HH2) p72 (polar p73 pi (/ HB1 2) p71 (polar p72 (/ pi 2) (/ HH2 0.5) p6 (polar p (* pi -0.5) HR2) p5 (polar p (/ (* 230 pi) 180) (+ HR2 (* 30 bili) P4 (polar p pi HB) p3 (polar p pi HR2) p2 (polar p (/ (* 130 pi) 180) (+ HR2 (* 20 bili) 5) p21 (polar p (/ (* 130 pi) 180) (+ HR2 (* 5 bili) p22 (polar p21 (/ (* 40 pi) 180) (/ HDT 2) p23 (polar p21 (/ (* 220 pi) 180) (/ HDT 2) p24 (polar p (/ (* 130 pi) 180) (+ (- HR2 HH) 5) p25 (polar p24 (/ (* 40 pi) 180) (/ HXT 2) p26 (polar p24 (/ (* 220 pi)180) (/ HXT 2) p1 (polar p (* pi 0.5) HR2) p41 (polar p4 (* pi 0.5) (* HR2 0.5) p42 (polar p4 (* pi -0.5) (* HR2 0.5) py (polar p (* pi 0.5) HH1) );计算基本图形上的坐标 (setq p10 (polar p pi (+ HR2 15) p11 (polar p (* pi 0.5) (+ HR2 20) p12 (polar p (* pi -0.5) (+ HR2 (* 100 bili) );计算绘制中心线的点坐标 (command osmode 0) ;关闭对象捕捉 (command layer s 粗实线层 ) (command arc p9 p8 p7 ) (command arc p1 p3 p6 ) (command line p41 p4 ) (command line p42 p4 ) (command Pline p26 p23 P22 P25 ) (command line p73 p72 p71 ) (command zoom p3 p6 ) (command trim all p71 p7 (polar p (/(* pi 98)180) HR1) );绘制基本图形 (command zoom p1 p42 ) (command trim all p3 p41 p42 ) (command zoom p1 p3 ) (command trim all p25 p26 ) (command mirror p22 p23 p4 p );镜像 (command layer s 中心线层 ) (command line p p12 ) (command line p p11 ) (command line p p10 ) (command line p p2 ) (command line p p5 ) (command line p p8 );绘制中心线 (setq pt (polar p pi (+ (* HR2 2) (* 20 bili) pt1 (polar pt 0 HB) pt11 (polar pt1 (* pi 0.5) (/ HR2 3) pt12 (polar pt1 (* pi -0.5) (/ HR2 3) pt13 (polar pt 0 HR2) pty (polar pt (* pi 0.5) HH1) pt211(polar pt(* pi -0.5) (+ HR1 HH2) pt212(polar pt211 pi (* HB1 0.5) ) pt213(polar pt212(* pi 0.5)(+ HH2 (* 20 bili) pt214(polar pt211 0 (* HB1 0.5) pt215(polar pt214(* pi 0.5)(+ HH2 (* 20 bili);计算基本图形的坐标 (setq pt2 (polar pt (* pi 0.5) (+ HR2 (* 20 bili) 5) pt21 (polar pt (* pi -0.5) (+ HR2 (* 100 bili) pt3 (polar pt (/ (* pi 130) 180) (+ HR2 (* 20 bili) 5) pt31 (polar pt (/ (* pi 130) 180) (+ HR2 (* 5 bili) pt32 (polar pt31 (/ (* pi 40)180) (/ HDT 2) pt321(polar pt31 (/ (* pi 38)180) (/ HDT 5) pt33 (polar pt31 (/ (* pi 220)180) (/ HDT 2) pt34 (polar pt (/ (* pi 130) 180) (+(- HR2 HH)5) pt35 (polar pt34 (/ (* pi 40)180) (/ HXT 2) pt36 (polar pt34 (/ (* pi 220)180) (/ HXT 2) pt4 (polar pt (/ (* pi 230) 180) (+ HR2 (* 20 bili) 5) pt41 (polar pt (/ (* pi -125) 180) HR2 ) pt5 (polar pt (/ (* pi 310) 180) (+ HR2 (* 20 bili) 5) pt6 (polar pt (/ (* pi 50) 180) (+ HR2 (* 20 bili) 5) pt61 (polar pt (/ (* pi 50) 180) (+ HR2 (* 5 bili) pt62 (polar pt61 (/ (* pi 140)180) (/ HDT 2) pt63 (polar pt61 (/ (* pi -40)180) (/ HDT 2) pt64 (polar pt (/ (* pi 50) 180) (+ (- HR2 HH)5) pt65 (polar pt64 (/ (* pi -40)180) (/ HXT 2) pt66 (polar pt64 (/ (* pi 140)180) (/ HXT 2) pt7 (polar pt pi (+ HR2 (* 30 bili) 5);计算中心线的坐标 (command layer s 粗实线层 ) (command circle pt HR1 ) (command circle pt HR2 ) (command line pt213 pt212 ) (command linept212 pt214 ) (command linept214 pt215 ) (command zoom pt3 pt21 ) (command trim all (polar pt212 (* pi 0.5) (+ HH2 5) pt215 (polar pt (* pi -0.5)HR1) ) (command erase (polar pt212 (* pi 0.5) (+ HH2 7) (command circle pty HR3 ) (command line pt12 pt11 ) (command line pt63 pt62 ) (command line pt62 pt66 ) (command line pt63 pt65 ) (command pline pt33 pt32 pt35 pt36 pt33) (command zoom pt2 pt12 ) (command trim all pt11 pt12 pt13) (command zoom pt7 pt2 ) (command mirror pt31 pt33 pt32 pt321 pt35 pt36 pt1 pt7 ) ;镜像 (command zoom pt7 pt21 ) (command trim all pt41) (command zoom pt3 pt ) (command trim pt33 pt32 pt31 pt35 pt36 (polar pt (* pi 0.7) HR2) ) (command zoom pt6 pt ) (command trim all pt66 pt65 ) (command zoom pt13 pt2 ) (command mirror pt62 pt63 pt61 pt1 pt7 ) (command zoom pt21 pt13 ) (command erase (polar pt (/ (* pi -80)180) HR2) ) (command zoom pt2 pt13 ) (command mirror (polar pt (/ (* pi 80)180) HR2) pt pt13 );绘制基本图形 (command layer s 中心线层 ) (command line pt p ) (command line pt pt2 ) (command line pt pt21 ) (command line pt pt3 ) (command line pt pt4 ) (command line pt pt5 ) (command line pt pt6 ) (command line pt p10 ) (command line pt pt7 ) ;绘制中心线 (command zoom (polar pt2 pi(+ HR2 (* 30 bili) 10)(polar p12 0 10) (command mirror w (polar pt2 pi(+ HR2 (* 30 bili) 10) (polar p12 0 10) p12 p11 ) (command layer s 粗实线层 ) (command circle py HR3 ) ;(command erase p12 ) );defun;= 俯视图= (defun fst() (setq pf1 (polar p (* -0.5 pi) (* HR2 1.5) pf2 (polar pf1 pi HR2) pf3 (polar pf2 (* pi -0.5) (* 5 bili) pf4 (polar pf3 0 HR2 ) pf5 (polar pf1 pi HL1) pf6 (polar pf1 (- 0 pi) (+ ( * 23 bili) HL1) pf7 (polar pf1 pi (+ HL1 ( * 23 bili) HL2) pf8 (polar pf1 pi (+ HL1 ( * 23 bili) HL2 (* 8 bili) pf9 (polar pf1 pi (+ HL HL1) pf10 (polar pf9 (* pi 0.5) (* 5 bili) pf11 (polar pf10 0 (- HL HL2 ( * 23 bili) (* 8 bili) pf12 (polar pf11 0 ( * 8 bili) pf13 (polar pf10 0 (- HL ( * 23 bili) pf14 (polar pf10 0 HL) pf15 (polar pf1 pi (* HB1 0.5) pf16 (polar pf4 pi (* HB1 0.5);计算图形的基本坐标 (command layer s 粗实线层 ) (command line pf1 pf2 ) (command line pf2 pf3 ) (command line pf3 pf4 ) (command line pf10 pf14 ) (command line pf5 pf14 ) (command line pf6 pf13 ) (command line pf7 pf12 ) (command line pf8 pf11 ) (command line pf9 pf10 ) (command line pf15 pf16) (setq pz1 (polar pf1 pi (+ (* HR2 2)(* 20 bili) pfz1(polar pz1 (* pi -0.5) (* 5 bili) pz2 (polar pz1 pi HR2) pz3 (polar pz2 (* pi -0.5) (* 5 bili) pz4 (polar pz3 0 (+ HR2 HB) pz5 (polar pz4 (* pi 0.5) (* 5 bili) pz6 (polar pz1 pi HL1) pz7 (polar pz6 pi (* 23 bili) ) pz8 (polar pz6 pi (+ (* 23 bili) HL2) pz9 (polar pz6 pi (+ (* 8 bili) HL2 (* 23 bili) pz10 (polar pz6 pi HL ) pz11 (polar pz10 (* pi 0.5) (* 5 bili) pfz2 (polar pz11 0 (* 10 bili) pz12 (polar pz11 0 (- HL HL2 (* 8 bili) (* 23 bili) pz13 (polar pz11 0 (- HL HL2 (* 23 bili) pz14 (polar pz11 0 (- HL (* 23 bili) pz15 (polar pz11 0 HL) pz16 (polar pz3 0 (- HR2 HL1) pz17 (polar pz3 0 (- HR2 HL1 (* 23 bili) pz18 (polar pz16 pi HL ) pz19 (polar pz18 (* pi -0.5) (* 45 bili) pz20 (polar pz17 (* pi -0.5) (* 45 bili) pz21 (polar pz16 (* pi -0.5) (* 45 bili)pz22 (polar pz1 0 HL1) pz23 (polar pz22 0 (* 23 bili) ) pz24 (polar pz22 0 (+ (* 23 bili) HL2) pz25 (polar pz22 0 (+ (* 8 bili) HL2 (* 23 bili) ) pz26 (polar pz22 0 HL ) pz27 (polar pz26 (* pi 0.5) (* 5 bili) pz28 (polar pz27 pi (- HL HL2 (* 8 bili) (* 23 bili) pz29 (polar pz27 pi (- HL HL2 (* 23 bili) pz30 (polar pz27 pi (- HL (* 23 bili) pz31 (polar pz27 pi HL) pz32 (polar pz1 pi (* HB1 0.5) pz33 (polar pfz1 pi (* HB1 0.5) pz34 (polar pz1 0 (* HB1 0.5) pz35 (polar pfz1 0 (* HB1 0.5);计算图形的基本坐标 (command pline pz1 pz2 ) (command pline pz2 pz3 ) (command pline pz3 pz4 ) (command pline pz4 pz5 ) (command pline pz5 pz1 ) (command pline pz11 pz15) (command pline pz6 pz15) (command pline pz14 pz7 ) (command pline pz8 pz13 ) (command pline pz9 pz12 ) (command pline pz10 pz11 ) (command pline pz18 pz19 ) (command pline pz19 pz21 ) (command pline pz17 pz20 ) (command pline pz16 pz21 ) (command line pz22 pz31 ) (command line pz27 pz26) (command line pz23 pz30 ) (command line pz24 pz29 ) (command line pz25 pz28 ) (command line pz31 pz27 ) (command line pz32 pz33 ) (command line pz34 pz35 ) (command mirror pz11 pz12 pz13 pz14 pz15 pfz2 pz1 pfz1 ) (command zoom (polar (polar pz11 (* pi 0.5) 5) pi (+ HR2 5) (polar pf4 (* pi -0.5)60) ) (command mirror w (polar (polar pz11 (* pi 0.5) 5) pi (+ HR2 5) (polar pf4 (* pi -0.5)60) pf1 pf4 ) (bz) );defun;= 平面图= (defun pmt () (setq pft (polar pfz1 (* pi -0.5)(* HR2 1.5) );pfz1 pft1 (polar pft 0 HB) pft11 (polar pft1 (* pi 0.5) (/ HR2 3) pft12 (polar pft1 (* pi -0.5) (/ HR2 3) pft13 (polar pft 0 HR2) pft211(polar pft (* pi -0.5) HH1) pft22 (polar pft (* pi 0.5) (+ HH2 HR1) pft23 (polar pft22 0 (/ HB1 2) pft24 (polar pft23 (* pi -0.5) (+ HH2 (* 20 bili) pft25 (polar pft22 pi (/ HB1 2) pft26 (polar pft25 (* pi -0.5) (+ HH2 (* 20 bili);计算基本图形的坐标 (setq pft2 (polar pft (* pi 0.5) (+ HR2 (* 20 bili) 5) pft21 (polar pft (* pi -0.5) (+ HR2 (* 20 bili) 5); pft3 (polar pft (/ (* pi 13) 18) (+ HR2 (* 20 bili) 5) pft31 (polar pft (/ (* pi 130) 180) (+ HR2 (* 5 bili) pft32 (polar pft31 (/ (* pi 40)180) (/ HDT 2) pft321(polar pft31 (/ (* pi 38)180) (/ HDT 5); pft33 (polar pft31 (/ (* pi 220)180) (/ HDT 2) pft34 (polar pft (/ (* pi 130) 180) (+(- HR2 HH)5) pft35 (polar pft34 (/ (* pi 40)180) (/ HXT 2) pft36 (polar pft34 (/ (* pi 220)180) (/ HXT 2) pft7 (polar pft pi (+ HR2 (* 30 bili) 5) pft37 (polar pft31 (/ (* pi 40)180) (/ HXK 2) pft38 (polar pft34 (/ (* pi 40)180) (/ HXK 2) pft39 (polar pft31 (/ (* pi 220)180) (/ HXK 2) pft40 (polar pft34 (/ (* pi 220)180) (/ HXK 2) pft8 (polar pft 0 (+ HR2 (* 30 bili) 5) ) );计算中心线的坐标 (command layer s 粗实线层 ) (command circle pft HR1 ) (command circle pft HR2 ) (command line pft1 pft11 ) (command line pft1 pft12 ) (command pline pft32 pft35 pft36 pft33 pft32 )(setq e1 (entlast) (command line pft37 pft38 ) (setq e2 (entlast);得到图圆名 (command line pft39 pft40 ) (setq e3 (entlast) (command zoom pft2 pft12 ) (command trim all pft13 pft11 pft12 ) (command zoom pft2 pft8 ) (command trim (polar pft1 (* pi 0.5)5) (polar pft (/(* pi 8)180) HR2) ) (command circle pft211 HR3 ) (command line pft24 pft23 pft25 pft26 ) (command zoom pft pft2 ) (command trim all pft26 pft24 (polar pft (/ (* pi 94)180)HR1) (polar pft (/ (* pi 82)180)HR1) ) (command erase (polar pft (/ (* pi 84)180) HR1) ) (command zoom (polar pft 0 HR1) (polar pft (/(* pi 160)180)HR2) ) (command trim all ( polar pft25 (* pi -0.5) (+ HH2 (* 5 bili) ) ;绘制基本图形 (command layer s 中心线层 ) (command line pft pfz1 ) (command line pft pft21 ) (command line pft pft3 )(setq e4 (entlast) (command line pft pft7 ) (command line pft pft8 );绘制中心线 (command mirror e4 e1 e2 e3 pft pft1 ) (command mirror e4 e1 e2 e3 pft pft2 ) (command mirror e4 e1 e2 e3 (polar pft (/ (* 40 pi)180)30) (polar pft (/ (* 220 pi)180)30) ) (command layer off 中心线层 y ) (command zoom pft pft3 ) (command trim e1 (polar pft (/ (* pi 120) 180) HR2) ) (command zoom pft2 pft13 ) (command trim (polar pft (/(* 50 pi)180)(+ HR2 5) (polar pft (/ (* pi 60) 180) HR2) (polar pft (/ (* pi 40) 180) HR2) ) (command zoom pft7 pft21 ) (command trim all (polar pft (/ (* pi -140) 180) HR2) ) (command erase (polar pft (/ (* pi -130 ) 180) HR2) ) (command zoom pft8 pft21 ) (command trim all (polar pft (/ (* pi -60) 180) HR2) ) (command zoom pft2 pft8 ) (command erase (polar pft (/ (* pi 50) 180) HR2) ) (command erase (polar pft (/ (* pi -80) 180) HR2) (command zoom pft8 pft2 ) (command mirror (polar pft (/ (* pi 95) 180) HR2) (polar pft (/ (* pi 27) 180) HR2) pft7 pft8 ) (command layer on 中心线层 ) (command layer s 标注层 ) (command dimstyle r 标注样式2 ) (command dimaligned pft33 pft32 t DT (polar pft31 (* pi 0.5)(+ (*
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。