论文.doc

AtuoCAD二次开发---钣金系统开发设计B

收藏

压缩包内文档预览:
预览图 预览图 预览图 预览图 预览图
编号:22758459    类型:共享资源    大小:622.87KB    格式:RAR    上传时间:2019-10-30 上传人:qq77****057 IP属地:江苏
30
积分
关 键 词:
AtuoCAD 二次开发 系统 开发 设计
资源描述:
AtuoCAD二次开发---钣金系统开发设计B,AtuoCAD,二次开发,系统,开发,设计
内容简介:
四 川 理 工 学 院毕 业 设 计(论 文)说 明 书题 目 AutoCAD二次开发 钣金展开CAD系统开发B 学 生 关 风 琴 系 别 机 电 系 专 业 班 级 机械设计制造及其自动化(机械制造) 学 号 030110330 指 导 教 师 林 尊 荣 四川理工学院毕业设计(论文)开题报告设计(论文)名称AtuoCAD二次开发-钣金系统开发B设计(论文)类型 c指导教师林尊荣学生姓名关风琴学号030110330系、专业、班级机电系机制03级1班一、选题依据:(简述研究现状或生产需求情况,说明该设计(论文)目的意义。)计算机辅助设计是计算机应用的一个重要分支,它具有减小设计绘图量、缩短设计周期、易于建立和使用标准图库及改善绘图质量、提高设计及管理水平等一系列优点,计算机辅助设计可广泛应用于需要设计绘图的所有领域。近十年来,随着计算机硬件性能的不断提高、价格不断降低以及图形、图象、文字处理软件的日趋完善,CAD的应用在发达国家已经十分普及,并成为衡量一个国家科技现代化和工业现代化水平的重要标志之一。我国的CAD从90年代起有了长足的发展,许多高校和研究单位相继建立了CAD研究中心、开发机构和培训基地。许多行业也以AutoCAD为平台开发出了大量的CAD专用软件,如建筑方面的ABD、House、PKPM;机械方面的GHCAD、THCAD和LCCAD等。二次开发在现代机械设计中更显得重要,它对设计的时间、工作量、人力及物力的投资大大得以减少。因此,二次开发对工业机械设计中有着很大的帮助。钣金的展开放样是金属材料加工制造产品的第一道工艺过程,正确绘制展开图不仅是保证产品质量的关键同时也降低了材料的消耗,对提高劳动的生产率有着不可忽视的作用。二、设计(论文研究)思路及工作方法 1熟悉AutoCAD软件的二次开发过程;2、研究钣金展开放样的参数化绘图设计及三维实体绘制; 3、研究AutoCAD二次开发。三、设计(论文研究)任务完成的阶段内容及时间安排。阅读资料,熟悉相关知识,对AutoCAD二次开发进行初步了解。 2007.3.5 2007.3.20 熟悉AutoCAD二次开发的过程。 2007.3.212007.4.10 钣金展开的参数化绘图设计。 2007.4.112007.5.15 修改完善编写设计说明书。 2007.5.162007.5.20 设计论文撰写。 2007.5.212007.6.5 指导教师意见 指导教师签字: 年 月 日教研室毕业设计(论文)工作组审核意见难度分量综合训练程度 教研室主任: 年 月 日设计(论文)类型:A理论研究;B应用研究;C软件设计;D-其它等。总 结 通过本次设计,了解了二次开发的基本过程与CAD的绘图的功能,以及钣金的展开放样的过程。在设计的过程中遇到的一些自己无法很快的解决的问题,通过向老师及同学请教,得到了解决。从一点一滴的积累中,使我深有感触,学习的过程需要有耐心,需要技巧。刚开始的时候,程序的调试很不理想,很多时间都出一些因为粗心而造成的问题,导致程序的无法正常运行。比如少括号,则提示输入的列表有缺陷,必须有空格的地方而没有,在调用一些命令如line 、circle等一些命令时,最后以结尾,两个双引号之间不能有空格。忘记一个双引号,则解释器可能把某些当作右括号,使原来的括号不匹配,也回显示缺少括号的出错信息。在加载成功后,出现未预料的图形,原来是对象捕捉没有关,导致的图形的错乱。在进行函数的调用时,带参调用的时候,参数不对应,比如将代表钣金件的参数名asy写成ast导致参数错误。在进行对话框的幻灯片加载时,幻灯片的文件名保存和对话框加载时的不一致使得幻灯片无法在对话框中显示。在钣金展开中,有的钣金展开图的点比较多,展开曲线要用到循环才能比较精确的绘制出图形。而在开始的时候用每个点进行绘制,使得程序很长。后来理解了循环的使用后,程序简单多了,而且也比较精确绘制的图形。在加载后有时候要出现选择对象的提示然后点击确定就有标注了,经过仔细的检查没有问题,最后问了同学才知道有时候电脑也不会精确的捕捉到屏幕上的点,加一个zoom命令,放大到可视的范围,就可以了。下面列出程序还存在的一些问题 : 1 只给定了A3的图纸,如果选择其它的图纸就不是很方便,如果将图纸的选择也做成下拉的列表,就可以根据具体的构件的大小来安排布局了。2 比例的确定是根据输入的尺寸来显示的,如果使用者自己给定则无效,比例的编辑框没有暗显。比例的设计的时候,图形放置的基点是给定的,缩放不是很理想。摘 要 在国民经济各个部门的建设和检修中,都少不了用金属制作各种构件,正确的展开放样是制作这些构件的第一道工序,它的正确与否对构件的质量和精确程度起着重要的作用。有的钣金展开计算次数多,计算也麻烦,精度较低,错误率也很高,针对钣金展开的效率及精度,结合计算机绘图和AutoCAD二次开发,使用Lisp语言编写钣金展开图的程序,可以有效的解决上述的问题。关键词:AutoCAD二次开发 钣金展开ABSTRACTIn the national economy each departments construction and the overhaul, could not all be few manufactures each kind of component with the metal, correct unfolded the opening The type is manufactures these components the first working procedure, it is correct or not is playing the vital role to the component quality and the precise degree. Some plate works launch the computation number of times much, the computation also troubles, the precision lower, wrong rate very isalso high, launches the efficiency and the precision in view of the plate work, unifies the computer cartography and the AutoCAD Re-development, uses the Lisp language to compile the plate work developed view the procedure. May solution above question effectively.KEY WORDS : The AutoCAD Re-development plate works launch 四川理工学院毕业设计(论文)第一章 AutoCAD二次开发概述AutoCAD是一个通用的CAD平台,它不仅具有强大的绘图、编辑功能,而且具有开放的体系结构,允许用户对其进行二次开发,以满足绘图过程中的特殊要求。AutoCAD荣登全球绘图软件的龙头宝座,主要是因为它具有开放的体系结构。它允许用户和开发者采用高级编程语言对其进行扩充和修改,即二次开发,能最大限度地满足用户的特殊要求。AutoCAD第一版于1982年11月由AutoDESK公司推出,目前最新版本是AutoCAD 2007。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),可生成典型三维实心体、拉伸体、回转体,对这些实心体进行并差交等布尔运算就可以构成组合体,进而可获得剖切图轮廓图着色图等。71五 开发环境 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,她出现于1985年推出的AutoCAD R2.18中,是一种嵌入在AutoCAD内部的编程语言,Auto LISP语言是 Auto CAD“变量和表达式”功能的扩充 ,是通常的 LISP语言的一个子集,它定义了 112种函数,具有与 Auto CAD命令的接口、文件的 I/O七种数据形式以及多种逻辑功能。以它图形编辑性能强 ,可增设内部命令的特点。一直是低版本AutoCAD的首选编程语言。AutoLISP是一种表处理语言,是被解释执行的,任何一个语句键入后就能马上执行,它对于交互式的程序开发非常方便。其缺点是继承了LISP语言的编程规则而导致繁多的括号。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公司网站中去下载。它能够对AutoCAD的所有事务进行完整的、先进的、面向对象的设计与开发,并且开发的应用程序速度更快、集成度更高、稳定性更强。ObjectARX从本质上讲,是一种特定的C+编程环境,它包括一组动态链接库(DLL),这些库与AutoCAD在同一地址空间运行并能直接利用AutoCAD核心数据结构和代码,库中包含一组通用工具,使得二次开发者可以充分利用AutoCAD的开放结构,直接访问AutoCAD数据库结构、图形系统以及CAD几何造型核心,以便能在运行期间实时扩展AutoCAD的功能,创建能全面享受AutoCAD固有命令的新命令。使用ObjectARX进行应用开发还可以在同一水平上与Windows系统集成,并与其它Windows应用程序实现交互操作。1.2.4 VisualLISP VisualLISP已经被完整地集成到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 Java Java是最早由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已相差无几,而学习utoLISP所需计算机专业知识远远低于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所示。1 分析问题,弄清应用程序所要解决的问题,确定输入参数和输出形式。对于复杂的应用程序还需要进行模块化,确定模块之间的调用关系和数据联系。2 根据应用程序所需的数据类型选择合适的构件,对构件进行分类,确定对话框构件的布局。3 确定对话框及其构件和组件的属性。例如,确定构件的名字,标识文字,尺寸,对齐方式等。4 手工绘制对话框的草图。5 根据绘制的草图,利用DCL语言对对话框进行编码,生成描述对话框外观的DCL程序文件。6 对DCL进行错误检查。开始分析问题选择构件确定布局确定属性绘制草图编码装载DCL文件显示对话框修改DCL文件正确? N Y结束图11 对话框手工设计过程1.3.2.2 对话框驱动程序对话框驱动程序具有相对固定的结构框架和严格的函数调用顺序。其一般顺序如下:1 用LOAD_DIALOG函数把对话框定义文件装入内存,这样,对话框定义文件中定义的所有对话框才是有定义的,程序中才能利用函数返回的文件表识号弹出其中的对话框,并在所有操作结束后卸载DCL文件,从内存中清除该文件中的对话框。2 利用NEW_DIALOG函数显示出已装入的DCL文件中定义的特定对话框,使之成为当前对话框。检查NEW_DIALOG函数的返回值是非常重要的,如果返回值为nil,则应中断程序执行。如果仍强行执行START_DIALOG函数,则会产生意想不到的后果。3 对话框构件的初始化 在成功的弹出了对话框后,即进入了对话框激活期。此后。AutoLISP与图形屏幕操作有关的函数无法使用,而AutoLISP新提供的对话框处理也才能使用。 对话框构件初始化大致包括两个方面的内容:构件处值的设置 对话框构件的初值可以在DCL文件中通过value属性设置,也可以利用专门的函数在驱动程序中设置。一般采用后者,因为要使初值设置合理,取决于AutoCAD的当前状态。例如,应把颜色设置为系统当前色,则需要用GETVAR得到系统变量“CECOLOR”的当前值;层控制对话框中当前层名和列表框中的层名,需要用程序搜索层表在能得到。这些在建立DCL文件时都无法知道的。动作构件动作表达式的设定动作构件是用来俘获事件的,或者说它们是靠事件驱动的。但是,某一事件(例如锨击了按钮或选择了列表框的选项)发生后,需要做些什么事情却是程序设计者的责任。动作构件的动作设定是用ACTION_TILE函数实现的。不设定动作的构件是不会有预期动作的。4 对话框的激活 当初始化工作完成以后,还需要START_DIALOG函数激活对话框,把控制权交给对话框,监视和俘获用户的输入和选择,并且构件的动作表达式来处理用户的操作,用变量或表保存必要数据。当用户按下对话框的退出按钮后,将由系统内置的或用户设置的DONE_DIALOG函数隐去对话框,终止START_DIALOG函数的执行。5 后处理与DCL文件的卸载只有START_DIALOG函数执行结束后,主对话框才把控制权交回AutoCAD。此时可根据START_DIALOG函数返回值来判知用户退出对话框的原因,然后分情况进行处理。最后,调用UNLOAD_DIALOG函数卸载DCL文件。 驱动程序的基本流程如图12。开始装载DCL文件装载成功?显示对话框 Y显示成功? N Y Y 控件初始化显示错误消息显示错误消息N激活对话框卸载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 设计参数化系统的基本要素一个较复杂的参数化部件系统的各个部分是随系统的设计而变化,但他们大致上都包括下列元素:非CAD的外部文件,包括不见数据和设计特征。一个进行提示和通信的用户界面函数。一个读数据文件的AutoLisp子程序。计算和绘图函数。程序和函数的菜单界面。零件表列的屏幕帮助。材料帮助。设计一个整体系统实际上就是设计其各个功能的模块,即通常说的:模块化设计。这样,以后的公共模块就可以通用,这就大大的提高了设计效率!1.4.4 参数化设计的一般步骤一般的参数化设计,可以遵循以下的步骤:进行数据分析,得出设计计算以及绘图所需数据查找相关设计手册,得出零件图(或其他)的参数表绘制零件图所需的参数列出由零件参数表数据到绘图需要使用的参数数据转换公式根据上面的数据项设计人机交互界面(对话框)进行编程工作设计对话框驱动函数设计相关的帮助文件标注程序调试程序检验第二章 专用绘图工具开发2.1 钣金展开放样概述在国民经济各个部门的建设和检修中,都少不了用金属板制做各种构件。正确地展开放样是制作这些构件的第一道工序,它的正确与否对构件精确程度和质量起着重要作用。所谓展开放样是在不改变这些构件表面积的情况下,将它们依次摊开在一个平面上,也称作构件的表面展开。展开可分为可展曲面的表面展开和不可展曲面的近似展开两种。可展曲面是指直纹面中的柱面、锥面和切面曲线等,这些曲面上的相邻接的两条素线或平行、或相交。因此两素线越邻近,则两线所夹的小曲面越趋近于小平面。这些小平面能依次连接地画在同一平面上。曲纹面和不可展的直纹面从理论上说都是不可展的,但是可以将它们分割成很多小块,采用近似的展开法。构件表面展开的方法一般有以下几种。1) 作图法 首先对需要展开构件的形状特点进行分析,把它分成若干个基本件;再把每一个基本的表面分割出一组供构件展开的表面实形;然后根据基本件的视图,用投影变换的方法求出这组表面实形的所有邻边线段的实长,可以画出每一个表面实形,并把这组表面实形依次地画在一个平面上。2) 计算法 此法同样要对需要展开构件的形状特点进行分析,归纳出一套求表面实形所有邻边线段实长的公式,由具体构件的已知条件求出这些邻边线段的实践长,并且这些实长来画展开图。这种方法随着下料工艺的改进个袖珍计算机的普及,日益被人们重视和应用。但是有些构件的计算公式很复杂,而且一个构件要重复计算很多次,仍是很麻烦的工作,计算精度也较低,错误率也很高。3) 系数法 此法是在计算法的基础上产生的。它是把计算公式中某些常数项合并在一起,总结出一组系数。求实出时,只要将这些系数乘以已知条件即可。由于它的计算较为简单,很合工人师傅的心意。目前有些书籍已经介绍这方面的系数表。但是可能限于计算工具,系数的精确位数不高。本书作者编著的,由机械工业出版社出版的快速钣金展开放样一书,向读者介绍一部分由计算机程序产生的精确度为五位小数的系数表,可供读者使用。4) 程序法 某一类构件需要展开时,它们分解的基本件可以是一定的,而归纳出计算表面实形的各邻边线段实长的公式也被固定了。这类重复计5) 算的任务,可用计算机语言事先编写好一个程序,然后运行这个程序,计算出各线段的实长,供画展开图时使用。用这种方法既快速正确,又有较高的精度,是在DOS系统下的一个好方法。6) 计算机辅助绘图法(Computer Aided Drafting) 这是以计算几何为理论基础,以计算机CAD软件为平台,进行几何图形的表达、分析、编辑和保存的一种技术方法。利用CAD软件提供的各种画图命令功能来得到展开线的真实长度。7) 计算机辅助设计法(Computer Aided Design) 这是计算机辅助几何图解法和程序法相结合的产物。某一类构件需要展开前,预先归纳出计算表面实形的各邻边线段实长的公式和它们之间的关系,用计算机语言事先编写好一个程序,然后运行这个程序,计算出各线段的实长,并且在程序中调用有关画图命令,自动将展开图 1:1地画在屏幕上。用这种方法既快速正确,又具有较高的精度,是一个值得提倡的方法。 而本程序设计所用的就是方法(7) 计算机辅助设计法(Computer Aided Design),本程序将利用这个方法编写一个钣金展开的程序来完成设计要求。传统的作图法和计算法已经渐渐不再适应当今科学进步的时代,计算机辅助设计法的研制是改变目前国内钣金技术落后的措施之一。但是这需要有一个认识的过程,人们必须克服惰性和习惯去探索这一方法,因为它的确十分快速正确,同时又有较高的精度,是一个值得提倡的方法。例如我的程序运行了,就可以根据对话框里的相应数字相填写数据,达到计算展开要求。2.2 钣金展开放样的质量控制无论采用上述那种方法,钣金展开放样这道工序的质量控制尤为重要,它的几何尺寸和形状准确对控制钣金构件的精确度和质量起着保证作用。采用上述几种方法时,影响钣金零件几何尺寸和形状准确度的因素,除方法本身的误差外,主要有以下几个方面需要考虑。1) 注意单位的统一,如长度单位、角度单位等等。2) 材料本身厚度的影响及材料在成形中厚度的增厚或减薄。3) 上述几种方法一般结果均为展开净值,没有考虑咬口、翻边、焊接收缩等余量。可以采取以下措施来克服上述因素在钣金构件制造过程中对尺寸和形状精确的影响。1) 利用调整毛料尺寸和形状来弥补咬口、翻边、焊接收缩等余量。2) 在规定允许的情况下,通过加热成形改善材料的成形性能。3) 在成形过程中,通过采用刚性限制以减小构件型面的畸变。4) 制定正确的焊接工艺,减少和防止焊接变形。5) 采用合理的模具间歇及良好的润滑状况。以控制零件的正确外形及厚度变化。6) 增加过渡成形工序,合理分配工序中的材料变形量。7) 采用综合成形的方法提高零件成形准确度,避免材料过度减薄。8) 采取有效措施减小热处理中的构件变形。9) 采取正确度和精度较高的构件表面展开的方法。 2.3 钣金展开放样的设计概述2.3.1 分析本程序主要是实现一些钣金的展开,其中主要是涉及到展开后的尺寸问题,而且展开后大多都是有规则的曲线,所以程序在实现展开的时候主要应用的是程序循环来实现展开功能。2.3.2设计思路1) 设计需要钣金展开放样的基本绘图程序和Dcl对话框设计。2) Autocad与钣金展开放样程序的连接。3) 根据用户所输入的尺寸来绘制图形并标注尺寸。2.3.3程序总体设计步骤总体设计步骤主要包括图框、主视图的绘制、展开图的绘制、标注尺寸和标题栏的绘制及填写。其基本结构如下图2-1的总体程序设计框图所示:2.4 设置绘图环境计算机辅助设计(CAD)技术具有快速设计和自动绘图的功能,是帮助企业适应飞速变化的技术要求和市场要求的产物。其中,AutoCAD是一种通用图形处理软件,功能强大,具有良好的开放性,是机械行业“甩图板”的好帮手,在企业中使用越来越来普遍。但要绘制出符合我国机械制图标准的工程图,需要设置好绘图环境才能达到事半功倍的目的,而且每画一张新图都要重新创建。在企业之间甚至企业内部,由于不同用户设置的绘图环境不同给用户的技术文件交流造成混乱与障碍的现象时有发生。为此可利用AutoCAD提供的模板功能将设置好的绘图环境保存为模板文件,另一个较好的方法是对此进行二次开发。从而可大大提高绘图效率及软件开发效率,同时还可为技术文件的交流带来方便。 绘制主视俯视图绘制图框开始绘制标题拦填写技术要求绘制展开图图2-1 绘图程序的流程2.4.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.4.2设置图层在AutoCAD软件中,图形对象的组织和管理是用图层来实现的。每个图形对象都有其特性,包括对象的图层、颜色、线型、线宽等。由于该项设置与输出图效果有较大的联系,因此在绘图环境中的设置恰当与否至关重要。根据绘图经验,在此设置好后直接按绘制样式输出,效果较理想,而且也可预见的。选择计算机绘图线宽的第4组,即粗实线0.7mm,其余为0.25mm。图层的名字最好取为汉字,且与图层的用途一致以便分层作图时图层的转换。根据使用效果粗实线线宽改为0.4,其余改为0。最后设置的图层效果见下图。 图22图层设置显示程序如下:(defun xianxing_banjin()(setq chklay (tblsearch layer 粗实线)(if (= chklay nil)(command layer n 粗实线 c 7 粗实线 lw 0.35 粗实线 );if(setq chklay (tblsearch layer 细实线)(if (= chklay nil)(command layer n 细实线 c 9 细实线 lw 0.25 细实线 );if(setq chklay (tblsearch layer 文字)(if (= chklay nil)(command layer n 文字 c 3 文字 lw 0.25 文字 );if(setq chklay (tblsearch layer 标注)(if (= chklay nil)(command layer n 标注 c 4 标注 lw 0.25 标注 );if(setq chklay (tblsearch layer 中心线)(if (= chklay nil)(command layer n 中心线 c 1 中心线 lt center 中心线 lw 0.25 中心线 );if(setq chklay (tblsearch layer 虚线)(if (= chklay nil)(command layer n 虚线 c 6 虚线 lt dashed 虚线 lw 0.25 虚线 );if(setq chklay (tblsearch style china)(if (= style nil)(command style 文字 txt,chineset );if(setq chklay (tblsearch style 标注)(if (= chklay nil)(command -style 标注 romans.shx 2.5 0.7 15 );if(command -style hz3.5 仿宋_GB2312 3.5 0.7 0 )(command -style hz5 仿宋_GB2312 5 0.7 0 );defun xianxing_banjin 2.4.3 设置文字样式设置汉字字体、罗马字体及字高。为方便使用,设置了多种字高的文字样式。参照国家标准,根据经验,字体应设为两种样式:TEXT字体样式选用Romans.shx,宽度比例选0.67,倾斜角度选15,该字体专用于标注英文字母和阿拉伯数字。HZ字体样式选仿宋GB_2312,文字宽度系数选0.67,该字体专用于汉字内容的书写。2.4.4 设置标注样式尺寸标注样式的设置是二维工程制图绘图环境设置的重要内容。图样的标注能否符合国标的关键在于尺寸标注样式的设置。在软件开发过程中只能通过尺寸标注变量的设置来完成,设置的具体内容见下面程序说明。在实际使用中,需要设置多个尺寸标注样式。设计的样式见下图。本程序只需要在运行程序的时候调用就可以了用了。图2-3标注样式图(defun szhthj()(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 -style jzfh_style romand 0 1 0 ); 设置尺寸标注式(command dimclrd 0 dimdli 5 dimclre 256 dimexe 3 dimgap 0.5dimasz 2.5 dimclrt 256dimtxsty text3.5 dimtxt 3.5dimtad 1 dimjust 0 dimgap 1 dimtih 0dimatfit 2 dimlunit 2 dimdec 2 dimdsep .dimatftt 2dimexo 0dimse1 1 dimse2 1dimstyle save 标注样式4);command(command dimclrd 0 dimdli 5 dimclre 256 dimexe 3 dimgap 0.5dimasz 2.5 dimclrt 256dimtxsty hz3.5 dimtxt 3.5dimtad 1 dimjust 0 dimgap 1 dimtih 0dimatfit 2 dimlunit 2 dimdec 2 dimdsep .dimatftt 2dimexo 0 dimtoh 1dimse1 0 dimse2 0dimstyle save 标注样式3)(command dimclrd 0 dimdli 5 dimclre 256 dimexe 3 dimgap 0.5dimasz 2.5 dimclrt 256dimtxsty text3.5 dimtxt 3.5dimtad 1 dimjust 0 dimgap 1 dimtih 0dimatfit 2 dimlunit 2 dimdec 2 dimdsep .dimatftt 2dimexo 0 dimtoh 1dimse1 0 dimse2 0dimstyle save 标注样式2)(command dimclrd 0 dimdli 5 dimclre 256 dimexe 3 dimgap 0.5dimasz 2.5 dimclrt 256dimtxsty text3.5 dimtxt 3.5dimtad 1 dimjust 0 dimgap 1 dimtih 0dimatfit 2 dimlunit 2 dimdec 2 dimdsep .dimatftt 2dimexo 0 dimtoh 0dimse1 0 dimse2 0dimstyle save 标注样式1);defun根据国标GB10609.1-89 技术制图 标题栏的规定,标题栏的内容和大小相对固定,为便于对其内容进行修改,按照国标规定用不同宽度的粗细实线绘制出轮廓,然后绘制标题栏,然后填写标题栏的内容即可。由于标题栏的文字内容都相对固定,所以直接有程序输入,用户不用操心。绘制出来的图见图3-4示。程序见(“btl.lsp”)。图2-4标题栏填写图2.4.5设计日期的输入为简化操作,设计思想是设计日期自动提取系统当前日期,同时也允许用户在对话框中对系统当前日期进行改变,以满足行用户使用要求。由于允许用户改变,所以该控件只能设计成编辑框控件。程序自动提取系统当前日期的实现方法是:利用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.4.6技术要求的填写由于同类零部件具有基本相同的技术要求,因而对同类零部件的技术要求条款进行收整理是十分必要的。由于设计者的知识和能力有限,所以如果需要修改的话,请用户在“banjin.lsp”中的修改技术要求,或者直接用CAD进行修改,如给用户带来的不便,还请用户见谅。其技术要求原程序如下:(defun do_tx_jsyq( / pt pt1 pt2)(setq pt00 (132 35)pt1 (polar (polar pt00 (- 0 (/ pi 2) 10) pi 20) )(command text s hz5 j m pt00 0 技术要求text s hz3.5 pt10 1.本钣金展开件的左边是三视图,右边是展开图;text (polar pt1 (- 0 (/ pi 2) 5 )0 2.展开图的左右两边都留5MM的余量已便于加工。 )图25技术要求的填写2.4.7图框的绘制图框是几乎每幅图都必须绘制的基本模块之一,具有极强的通用性,如果能用一个LISP程序来代替这样的手工绘制,可以节省大量时间和精力,提高劳动效率,是省时省事的好方法。于是构思设计一个关于图框绘制的LISP程序。绘制技术图样时优先选用代号为A0,A1,A2,A3,A4,自定义,六种基本幅面(提供选择),自定义图框的尺寸由用户输入。幅面代号A0A1A2A3A4自定义尺寸 B * L841*1189594*841420*594297*420210*297xxx*xxx1 图框格式图框格式有两种:一种是保留装订边的图框,用于需要装订的图样。另一种是不留装订边的图框格式,用于不需要装订的图样。如图2-3、2-4所示为两种图框的基本样式, 由于绘制图框时,绘制某一幅面总有对应的一组B和L,所以不需要给出其他的变量,绘制图框的基准点定为坐标原点(0,0),只需带入相应的B和L,即可绘制出所需要的图框。本次开发给定图框为A3保留装订边的图纸,图示如2-8,绘图程序如下:(defun do_tk3()(setq p00 (0.0 0.0)b 297 l 420 a 25 c 5)(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-6 带装订边图框图2-7 不带装订边图框第三章 钣金零件展开图的参数化绘图设计3.1方锥管钣金件展开程序设计3.1.1 参数的确定 由空心的正四棱锥截得的棱台称方锥管,它由四个相等的梯形组成。梯形的上下两底与水平面平行,它们在水平面的投影显示实长。方锥的高与水平面平行,它们在水平面的投影显示实长。梯形的腰为它在水平面的投影和方锥的高组成的直角三角形的斜边。所以本例的展开只要求得梯形腰的实长,就可以画展开图了。在绘制图形时因为是用的A3的图纸,所以涉及到比例缩放的问题,设计时给参数给定一个初始值,然后根据用户输入的参数值与已知的数的比值,然后取比例最小的一个反回给比例编辑框。绘图的时候根据这个比例来画。以后的几个钣金的图的绘制都是根据这个方法的到比例的 ,以后的就不在重复。图3-1方锥主视图俯视图方锥的上底为a1,下底宽为a2,高为h.展开的腰的实长为l,展开只要绘出一个展开的梯形图便可通过镜像功能完成。计算的公式如下 (3-1)3.1.2 点位图的确定在绘制点位图的时候以pt点为绘图基点其余的点都由pt计算得到,其主视图俯视图点位图如3-8所示,绘制时以p9为基点绘制。展开土的绘制是以pt为基点绘制的,先绘制一个梯形,然后通过镜相功能绘制另一个梯形,再绘制5mm的余边,然后选择前面的三个图圆以p7 和p8分别为镜相第一点和镜相第二点绘出展开图。如3-2所示。图3-2方锥管点位图3.1.3 对话框界面的设计在对话框的设计中,对话框的左边为基本绘图参数的输入,右边为幻灯片的显示窗口,由确定取消按纽控制其最终的效果。在基本参数输入的时候,其图的比例根据参数的变化而调整比例,使图能够在A3的图纸中比较合理的放置。方锥管的对话框设计如下图3-3所示:程序如下: fz1:dialog label=方锥管钣金件; :row :column:boxed_rowlabel=结构参数; :column:edit_boxlabel=顶宽a1(mm):; key=dk_a1; edit_width=8; :edit_boxlabel=底宽a2(mm):; key=dik_a2; edit_width=8; :edit_boxlabel=方锥管高h(mm):; key=zg_h; edit_width=8; :edit_boxlabel=绘图比例:; key=bl; edit_width=8; /:column :row:boxed_columnlabel=是否需要展开?; ok_cancel; /boxed column /row /*第一列结束*/ :column :image key=fz_image; width=30; height=10; color=0; /*图象控件结束*/ /row 图3-3方锥管钣金件对话框示意图3.1.4 方锥管对话框驱动程序的设计方锥管对话框驱动程序的设计对话框加载成功后的效果图如下3-4:图3-4方锥管对话框加载后示意图3.2 斜截圆柱钣金件展开程序设计 圆柱面构件的展开下料是钣金工作者在施工中常遇到的。此类构件在制造中一般可分为钢板卷制和成品钢管两种。因为钢管有皮厚存在,所以在施工中有中、内、外经的分别。就是在展中要一个直径去放样和展开,也可能用一个直径去展开而用另一个去放样和求素线实长,这要根据构件的施工图样和施工要求来决定中的。3.2.1 参数的确定 被平面斜截圆柱管的展开通用公式: (3-2)式中-角度值对应素线实长值;截面和圆柱管轴线的垂面间的夹角;L截面和圆柱管轴线的饿垂面的交线到圆柱管之间的距离;R圆柱管放样图半径;n圆柱管半圆周等分数;圆心角等分变量(0360)。平面斜截圆柱管的展开示意图及点位图如下3-5:3.2.2 点位图的确定 斜截圆柱钣金件的展开程序用循环,因为在展开时要分等分,钣金的尺寸过大则等分数越多越精确,具体程序祥见附录xjyzz.lsp。被平面斜截后的平面是平面椭圆。图3-5斜截圆柱点位图图3-6斜截圆柱展开图部分标柱图3.2.3 对话框界面的设计对话框界面的设计如下3-7,具体程序见附录xjyz1.dcl。图3-7斜截圆柱钣金件对话框示意图3.2.4 斜截圆柱对话框驱动程序的设计对话框加载成功后的效果图如下3-8,具体驱动程序及其绘图程序见附录xjyzz.lsp图3-8斜截圆柱加载后对话框示意图3.3 正圆台钣金件展开程序设计3.3.1 参数的确定 正圆台管钣金件的计算公式及其符号示意图及展开图。d2大端直径;d1小端直径;h2锥台两端中心线间垂直距离;整圆锥展开半径(3-3) 上部圆锥展开半径 (3-4)展开料夹角 (3-5)展开大端弦长 (3-6)展开小端弦长 (3-7)3.3.2 点位图的确定 圆台主视图俯视图的绘制以p5为基点。其具体点位图如图3-9,其展开图的绘制以pt为基点进行绘制,其点位图如图3-10所示。 图3-9圆台主视图俯视图点位图图3-10圆台钣金件展开图点位图3.3.3 对话框界面的设计 对话框界面的设计如下3-11具体程序见附录yt1.dcl。图3-11圆台钣金件对话框示意图3.3.4 圆台管对话框驱动程序的设计对话框加载成功后的效果图如下3-12具体驱动程序及其绘图程序见附录ytt.lsp图3-12圆台钣金件对话框加载后示意图3.4 Y型等径三通管钣金件展开程序设计3.4.1 参数的确定 这种管道的是任意角度等径三通管的一种特殊的情况,即是主支管的交角相等,所以这种情况的时候就只需要简单的计算展开其中的一支管道就可以了,其参数与任意角度等径三通管的参数基本一样,其中的角度就全是120了,具体的见图3-13。所以就直接利用等夹角三通管的公式就可以了进行计算。由投影图可知只要展开一个管的1/4圆管就可以得到全部的展开图。此钣金件的展开与斜截圆柱钣金件的展开类似,展开是用循环,可以做到比较精确。展开计算公式 (3-8) 将已知的数据代入公式进行编程计算,的范围在090内取值做变量得到和的对应值,展开与斜截圆柱管钣金件类似,都是通过循环得到绘图曲线的。3-13等径三通管投影图图 3-14等经三通管钣金件主视图俯视图点位图3.4.2 点位图 等经三通管钣金件展开图的点位图如下3-15所示主视图俯视图点位图如3-14所示,以pt点位绘土基点展开,通过投影图分析可知,只要求出其1/4圆管的展开就可得到全部的展开图3-15等经三通管展开图点位图3.4 .3 对话框界面的设计对话框界面的设计如下3-16具体程序见附录st1.dcl。图3-16等经三通管钣金件对话框3.4.4圆台管对话框驱动程序的设计对话框加载成功后的效果图如下3-17具体驱动程序及其绘图程序见附录stt.lsp图3-17等径三通管钣金件对话框加载后示意图3.5 总体设计3.5.1标题栏对话框的编写标题栏的DCL效果图如图3-18,加载后的对话框图如3-19所示。图3-18标题栏DCL效果图图3-19标题栏对话框图 如图3-18所示在完成了钣金件的所有的展开后,需要一个可以选择的对话框,然后就要用到对话框的嵌套,所以就要对每个的对话框进行设计,制作一个下拉列表对其进行选择,如过没有可供选择的钣金件展开图,则弹出如图3-19所示的对话框,具体计程序如下;图3-20对话框显示信息btl:dialog label=标题栏绘制与填写 国标:GB10609.1-89; :paragraph :row :boxed_columnlabel=零件信息; :popup_listkey = ljxh; label = 钣金件名称; edit_width=15; :edit_box label = 材 料; key=ljcl; edit_width=15; :edit_box label=图样代号; key=tydh; edit_width=15; :column :boxed_columnlabel=设计信息; :popup_list label=设计者 ; key=sjz; :edit_boxlabel=设计日期; key=sjrq; width = 8; :row :text label= 版权:四川理工学院 2007年4月 ; :row :text label= ; :ok_button label=确定; key=accept; alignment=centered; :cancel_buttonlabel=取消; key=cancel; alignment=centered; :help_buttonlabel=帮助; key=help; alignment=centered; :text label= ; 图框绘制开始绘齿轮主视图绘剖视图绘制填写参数表调用对话框,setq dcl_id开始确定幻灯片显示参数初始化所有数据下拉列表赋值和显示控制start_dialog幻灯片动态显示控制基本参数函数求解执行各绘图程序结 束 是图3-20标题栏对话框驱动流程3.6总体设计当对完成上面这些步骤以后,我们就可以将四个钣金件的展开放样综合在一起进行连接了,首先,我们将写一调用程序,即“banjin.lsp”,它的作用是就是调用钣金展开的四个子程序程序,并对其进行加载,完成图形的绘制。(defun c:banjin() (command erase all );删完窗口中的所有图形 (setvar cmdecho 0) (command osmode 0) (if (not (tblsearch style text0) ) (progn (alert 绘图环境未设定,软件将自动设置!) (load 钣金/qdcx/szhthj.lsp) (szhthj) (alert 绘图环境设置成功,点确定继续!) );proge );if (xianxing_banjin) (do_tk3) (do_tx_jsyq) (load 钣金/qdcx/btl.lsp) (btl (415 5) DLVSX1.1 20 0); 20(if (= asy 0) (progn (load 钣金/qdcx/fzz.lsp) (fzz) )(if (= asy 1) (progn (load 钣金/qdcx/xjyzz.lsp) (xjyzz)(if (= asy 2) (progn (load 钣金/qdcx/ytt.lsp) (ytt)(if (= asy 3) (progn (load 钣金/qdcx/stt.lsp) (stt)(if (= asy 4)(alert 暂时还没有您需要的钣金件展开图!)(if (= do_what 0)(exit)(command zoom all) );defun3.7 最后的效果图 图3-21方锥管展开效果图图3-21斜截圆柱钣金效果图图3-22等经三通管钣金件效果图3-23圆台钣金件效果图结 论本程序经过多次运行还比较理想。生成的展开图形符合国家的标准,有较好的实用性,及应用性。它包含有四个钣金构件的展开放样图分别为:圆台钣金件、方锥管钣金件、斜截圆柱管钣金件、Y型等径三通管钣金件。它可以根据用户输入的钣金件的参数有效的快速生成钣金件的展开的图形,并且对展开图进行标注,方便落料。对于有效控制钣金件的精度及质量起着保证作用,减轻钣金展开放样中繁杂计算和作图的工作量。随着计算机的普及,这种方法被人们日益和应用重视。参考文献1 符纯华,计算机辅助设计,四川理工学院,2005。2 符纯华、石艳,计算机辅助设计上机实验指导书 2005。3 李学志,Visual LISP程序设计,清华大学出版社,2006.54 汪琪美、霍新明,对话框与驱动程序设计,海洋出版社,1998。5 吴勇进、林美樱,AutoLISP&DCL基础篇,中国铁道出版社,2003。6 袁筱麟,CAD钣金展开防样,机械工业出版社,2005。7 杨玉杰,钣金展开200例,机械工业出版社,2005。致 谢 辞大学生活即将结束,在将要完成毕业设计的时刻,回首所经过的学习历程,从中学到了很多,大家在互助互学的气氛中度过了最后的大学生活。在设计的过程中,我得到了同学、老师的帮助,在毕业设计的选题、程序的开发和完善全过程中,林尊荣老师都给予了指导和帮助。同学为我在程序的调试中也给予了很多的帮助,为此我谨向尊敬的老师和所有帮助过我的同学、朋友致以崇高的敬意和诚挚的感谢。此致敬礼 学生:关风琴2007-5-9附录A: btl.lisp程序; =; ; 程序功能:绘制国标:GB10609.1-89标题栏。 ; 参数说明:ppt-绘图基点,标题栏右下角点坐标。 ; tydh-图样代号,字符型。 ; ljxh-钣金名称,字符型。 ; ljcl-材料名称,字符型。;updatex装弹出列表(defun updata1() (start_list sjz) (mapcar add_list sjz_list) (end_list) )(defun updata2() (start_list ljxh) (mapcar add_list ljxh_list) (end_list) )(defun btl(ppt tydh ljcl asx / dcl_id ljxh) (setq sjz_list(list 关风琴 符纯华 唐 松 杜开富);姓名弹出列表 ljxh_list(list 方锥管钣金件 斜截圆柱钣金件 圆台钣金件 等经三通管钣金件 无);图样名称 ast 0 asy 0 sjz 关风琴);初始参置 (setq sjrq1 (rtos (getvar cdate) 2 0) sjrq (strcat(substr sjrq1 1 4) - (substr sjrq1 5 2) - (substr sjrq1 7 2);取系统日期构成如2003-07-31的格式 (setq dcl_id (load_dialog 钣金dhkbtl.dcl) (if (not (new_dialog btl dcl_id) (exit) ) (updata1) (updata2) (mode_tile ljxh 2) (action_tile sjz (do_sjz) (action_tile sjrq (setq sjrq (get_tile sjrq) (action_tile tydh (setq tydh (get_tile tydh) (action_tile ljxh (do_ljxh) (action_tile ljcl (setq ljcl (get_tile ljcl) (set_tile sjrq sjrq) (set_tile sjz (rtos ast) (set_tile ljxh (rtos asy) (set_tile tydh tydh) (set_tile ljcl ljcl) (setq do_what (start_dialog) (if (= do_what 1) (btl1 1) ) (start_dialog) (unload_dialog dcl_id)(defun do_sjz(/ index);取设计者姓名 (setq index(atoi(get_tile sjz ) sjz (nth index sjz_list) ast index) )(defun do_ljxh(/ index);取零件序号 (setq index(atoi(get_tile ljxh ) ljxh (nth index ljxh_list) asy index) ); =; 程序功能:绘制标题栏与填写标题栏函数 (defun btl1 (bl) (command layer m btl on btl c 9 btl ) (print ok) (command pline ppt w 0.5 (polar ppt (/ pi 2) 56) (polar (polar ppt (/ pi 2) 56) pi 180) (polar ppt pi 180) c line (setq ppt1 (polar ppt pi 50) (polar ppt1 (/ pi 2) 56) line (setq ppt1 (polar ppt pi 100) (polar ppt1 (/ pi 2) 56) line (setq ppt1 (polar ppt pi 116) (polar ppt1 (/ pi 2) 28) line (setq ppt1 (polar ppt pi 128) (polar ppt1 (/ pi 2) 28) line (setq ppt1 (polar ppt pi 140) (polar ppt1 (/ pi 2) 28) line (setq ppt1 (polar ppt pi 156) (polar ppt1 (/ pi 2)28) line (setq ppt1 (polar ppt pi 168) (polar ppt1 (/ pi 2) 28) ) (setqpppt (polar ppt pi 180) pptt (polar pppt (/ pi 2) 28) ) (setq i 1) (repeat 7 (command line (setq ppt1 (polar pppt (/ pi 2) (* i 7) (polar ppt1 0 80) ) (setq i (+ i 1) ) (command line (setq ppt1 (polar pptt 0 10) (polar ppt1 (/ pi 2) 28) line (setq ppt1 (polar pptt 0 20) (polar ppt1 (/ pi 2) 28) line (setq ppt1 (polar pptt 0 36) (polar ppt1 (/ pi 2) 28) line (setq ppt1 (polar pptt 0 52) (polar ppt1 (/ pi 2) 28) line (setq ppt1 (polar pptt 0 64) (polar ppt1 (/ pi 2) 28) line (setq ppt1 (polar ppt (/ pi 2) 18) (polar ppt1 pi 50) line (setq ppt1 (polar ppt (/ pi 2) 38) (polar ppt1 pi 50) line(setq ppt1 (polar (polar ppt pi 50) (/ pi 2) 9) (polar ppt1 pi 50) line (polar ppt1 pi 12) (polar (polar ppt1 pi 12) (/ pi 2) 19) line (setq ppt1(polar ppt1 (/ pi 2) 9) (polar ppt1 pi 50) line (setq ppt1 (polar ppt1 (/ pi 2) 10) (polar ppt1 pi 50) line (setq ppt1 (polar ppt pi 74) (polar ppt1 (/ pi 2) 28) ) (setqi 1 ppt1 (polar ppt1 (/ pi 2) 9) ) (repeat 3 (command line (setq ppt2 (polar ppt1 pi (* i 6.5) (polar ppt2 (/ pi 2) 9) ) (setq i (+ i 1) ) (command layer m xz on xz c 1 xz ) (command style btl_hz 仿宋_GB2312 0 0.65 ) (command text m (polar (polar pppt 0 6) (/ pi 2) 3.4) 4 0 工艺 text m (polar (polar pppt 0 6) (/ pi 2) 10.5) 4 0 审核 text m (polar (polar pppt 0 6) (/ pi 2) 24.5) 4 0 设计 text m (polar (polar pptt 0 5) (/ pi 2) 3.5) 4 0 标记 text m (polar (polar pptt 0 15) (/ pi 2) 3.5) 4 0 处数 text m (polar (polar pptt 0 28) (/ pi 2) 3.5) 4 0 分 区 text m (polar (polar pptt 0 44) (/ pi 2) 3.5) 4 0 更改文件 text m (polar (polar pptt 0 58) (/ pi 2) 3.5) 4 0 签名 text m (polar (polar pptt 0 72) (/ pi 2) 3.5) 4 0 年月日 text m (polar (polar pppt 0 46) (/ pi 2)24.5) 4 0 标准化 text m (polar (polar pppt 0 46) (/ pi 2)3.5) 4 0 批准 text m (polar (polar pppt 0 93) (/ pi 2) 4.5) 5 0 共 张 text m (polar (polar pppt 0 118) (/ pi 2) 4.5) 5 0 第 张 text m (polar (polar pppt 0 93) (/ pi 2) 23) 5 0 阶段标记 text m (polar (polar pppt 0 112) (/ pi 2) 23) 5 0 重量 text m (polar (polar pppt 0 124) (/ pi 2) 23) 5 0 比例 text m (polar (polar ppt pi 25) (/ pi 2) 48) 6 0 四川理工学院) (commandlayermbbonbbc5bb) (command text Justify Align (polar (polar pppt 0 13.25 )(/ pi 2) 22.75) (polar (polar pppt 0 22.75 )(/ pi 2) 22.75) sjz) (command text Justify Align (polar (polar pppt 0 25) (/ pi 2) 23) (polar (polar pppt 0 39) (/ pi 2) 23) sjrq) (command text m (polar (polar ppt pi 25) (/ pi 2) 9) 7 0 tydh ) (commandtext m (polar (polar ppt pi 25) (/ pi 2)28) 7 0 ljxh text ja (polar (polar ppt (/ pi 2) 32) (- 0 pi) 100) 46(setq iDcl_id (load_dialog 钣金/dhk/fz1.dcl)0) (progn (setq pt(170 80) a1 46 a2 78 h 46 bl 1) (if(new_dialog fz1 iDcl_id) (progn (initing fz_image 钣金/tu/fz.sld) (set_tile dk_a1(rtos a1 2 2) (set_tile dik_a2(rtos a2 2 2) (set_tile zg_h(rtos h 2 2) (set_tile bl 1) (action_tile dk_a1 (fa1) (action_tile dik_a2 (fa2) (action_tile zg_h (fh) (action_tile accept (done_dialog 1) (action_tile cancel (done_dialog 0) (setq do_what(start_dialog) );progn );if;);while (if (= do_what 1) (progn (fzk) (fz);(=do_what 1)点”确定“按扭绘图 ) );progn );if(if (setq iDcl_id (load_dialog 钣金/dhk/xjyz1.dcl)0) (progn (setq Pt(160 145) r 36 h1 18 a0 45 n 36 i 1 bl 1) (if(new_dialog xjyz1 iDcl_id) (progn (initing xjyz_image 钣金/tu/xjyz.sld) (set_tile yuanzhu_r(rtos r 2 2) (set_tile yuanzhu_h1(rtos h1 2 2) (set_tile yuanzhu_a0(rtos a0 2 2) (set_tile yuanzhu_n(rtos n 2 0) (set_tile bl 1) (action_tile yuanzhu_r (fr) (action_tile yuanzhu_h1 (fh1) (action_tile yuanzhu_a0 (fa0) (action_tile yuanzhu_n (fn) (action_tile accept (done_dialog 1) (action_tile cancel (done_dialog 0) (setq do_what(start_dialog) );progn );if (if (= do_what 1) (progn (xjyzk)(xjyz);(=do_what 1)点”确定“按扭绘图 ) );progn );if (if ( iDcl_id 0) (alert 不能载入DCL文件 ) (unload_dialog iDcl_id) );end funcantion (defun fr() (setq r(atof(get_tile yuanzhu_r) (aa) )(defun fh1() (setq h1 (atof(get_tile yuanzhu_h1) (aa) )(defun fa0() (setq a0 (atof(get_tile yuanzhu_a0) (aa) )(defun fn() (setq n (atof(get_tile yuanzhu_n) )(defun aa() (setq bl1(/ 36 r) bl2(/ 18 h1) bl(min bl1 bl2) br(* bl r) bh1(* bl h1) br1(fix r) bh11(fix h1) );setq (set_tile bl (rtos bl);defun ; ; 斜截圆柱展开图绘制; (defun xjyzk() (setq p1(polar pt (* pi 0.5) bh1) p2(polar p1 (- 0 pi) 5) p3(polar pt (- 0 pi) 5) l (+ (* (/ (cos(* a0 (/ pi 180) (sin(* a0 (/ pi 180) bh1) br) );setq (while (setq iDcl_id (load_dialog 钣金/dhk/yt1.dcl)0) (progn (setq pt(240 110) d1 40 d2 70 h2 35 bl 1) (if(new_dialog yt1 iDcl_id) (progn (initing yt_image 钣金/tu/yt.sld) (set_tile yuantai_d1(rtos d1 2 2) (set_tile yuantai_d2(rtos d2 2 2) (set_tile yuantai_h2(rtos h2 2 2) (set_tile bl 1) (action_tile yuantai_d1 (fd1) (action_tile yuantai_d2 (fd2) (action_tile yuantai_h2 (fh2) (action_tile accept (done_dialog 1) (action_tile cancel (done_dialog 0) (setq do_what(start_dialog) );progn );if (if (= do_what 1) (progn (ytk)(yt);(=do_what 1)点”确定“按扭绘图 ) );progn );if (if (setq iDcl_id (load_dialog 钣金/dhk/st1.dcl)0) (progn (setq pt(170 200) r 30 h1 50 n 36 i 1 bl 1) (if(new_dialog st1 iDcl_id) (progn (initing st_image 钣金/tu/st.sld) (set_tile st_r(rtos r 2 2) (set_tile st_h1(rtos h1 2 2) (set_tile st_n(rtos n 2 0) (set_tile bl 1) (action_tile st_r (fr) (action_tile st_h1 (fh1) (action_tile st_n (fn) (action_tile accept (done_dialog 1) (action_tile cancel (done_dialog 0) (setq do_what(start_dialog) );progn );if (if (= do_what 1) (progn (stk) (st);(=do_what 1)点”确定“按扭绘图 ) );progn );if (if ( iDcl_id 0) (alert 不能载入DCL文件 ) (unload_dialog iDcl_id) );end funcantion(defun fr() (setq r (atof(get_tile st_r) (aa)(defun fh1() (setq h1 (atof(get_tile st_h1) (aa)(defun fn() (setq n (atof(get_tile st_n) )(defun aa() (setq bl1 (/ 30 r) bl2(/ 50 h1) bl(min bl1 bl2 ) br(* bl r) bh1(* bl h1) br1(fix r) bh11(fix h1) ) (set_tile bl (rtos bl); ; Y型等径三通管展开图绘制; (defun stk() (setq p1(polar pt (* pi -0.5) bh1) p2(polar p1(- 0 pi) 5) p3(polar pt(- 0 pi) 5) l (+ (* (/ (cos(/ pi 6) (sin(/ pi 6) bh1) br) );setq ( while( i (+(/ n 4) 1) (setq li(*( /(* pi br 2) n) i) lj(*( /(* pi br 2) n) (- i 1) xi(*(/ (sin(/ pi 6) (cos(/ pi 6) (- l (* br (cos (* (*(/ 360 n) i) (/ pi 180) xj(*(/ (sin(/ pi 6) (cos(/ pi 6) (- l (* br (cos (* (*(/ 360 n) ( - i 1) (/ pi 180) pli(polar pt 0 li) plj(polar pt 0 lj) pxi(polar pli (* pi -0.5) xi) pxj(polar plj (* pi -0.5) xj) );setq (command layer s 粗实线 ) (command pline pxj pxi )(setq mea1(entlast) (command layer s 标注 ) (com
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:AtuoCAD二次开发---钣金系统开发设计B
链接地址:https://www.renrendoc.com/p-22758459.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

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