![AutoCAD二次开发论文41173_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-4/17/f399b790-5c4d-40d0-9979-dc5de46fc84c/f399b790-5c4d-40d0-9979-dc5de46fc84c1.gif)
![AutoCAD二次开发论文41173_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-4/17/f399b790-5c4d-40d0-9979-dc5de46fc84c/f399b790-5c4d-40d0-9979-dc5de46fc84c2.gif)
![AutoCAD二次开发论文41173_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-4/17/f399b790-5c4d-40d0-9979-dc5de46fc84c/f399b790-5c4d-40d0-9979-dc5de46fc84c3.gif)
![AutoCAD二次开发论文41173_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-4/17/f399b790-5c4d-40d0-9979-dc5de46fc84c/f399b790-5c4d-40d0-9979-dc5de46fc84c4.gif)
![AutoCAD二次开发论文41173_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-4/17/f399b790-5c4d-40d0-9979-dc5de46fc84c/f399b790-5c4d-40d0-9979-dc5de46fc84c5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章 绪 论 自从50年代世界上第一台自动绘图机诞生以来,计算机图形学与cad已成为一门新兴的边缘学科。autocad交互图形包就是其中有代表性的一个,cad与计算机绘图已经开始进入普及化与实用化阶段。autocad系统提供的开放式体系结构,允许用户根据各自需求实现autocad的定制与二次开发,使得通用cad系统中增加一个专用于某一具体产品的cad环境和功能模块,使其越来越符合用户要求。1.1 autocad二次开发的研究现状众所周知,autocad是作为一个通用绘图系统而设计的。但每一行业和专业都有自己的行业和专业标准,许多单位也有自己的技术规格和企业标准,每个设计工程师和绘图员更有各自
2、独特的工作方式,因而,autocad不可能完全满足每个用户的具体要求。于是,通过系统提供的开放式体系结构,autocad允许用户根据各自的需求来改进和扩充autocad的许多功能,实现对autocad的二次开发,使autocad更加符合用户的需要。由此可见,autocad的二次开发意义十分重大。1.1.1 autocad二次开发的发展过程由autodesk公司开发的autocad自20世纪80年代以来一直独领风骚。成为各工程领域首选的cad系统,是市场上最流行的pc桟ad系统。全世界有80个国家的200万人在使用autocad绘制各种各样的图形。1998年autocad在市场上的占有率达79%
3、,成为事实上的世界范围内的计算机制图标准。在二维cad软件中,autodesk公司一直是以提供基础软件即autocad软件为其产品发展策略的,而其autocad软件在过去的十年中无可厚非地是最优秀的cad基础软件,在其上,国内的各个公司开发了大量的机械、建筑等领域的应用软件,其中就有我公司一直所使用的intecad软件。autodesk公司推出其新版的autocad 2000软件的同时,推出了他们的依托于autocad 2000的机械设计软件autocad mechanical 2000,从而全面进入了二维机械应用软件领域。该软件不仅具有autocad2000所提供的最新的技术,更重要的是它吸
4、收了从autocad10.0版以来,大量二次开发商在autocad软件上针对机械工程设计所做的各种二次开发中所提供的功能和技术,集成了大量专门针对二维机械工程设计的强大工具,从而使其成为二维机械设计软件中的最具代表性的优秀软件。1.1.2 autocad二次开发的重大意义 autocad的巨大成功,首先得益于它的开放性,使得第三方很容易开发各种适用的专用软件,给用户带来标准、廉价、方便、高效等益处,从而进一步占领了市场。用户通过对autocad系统的定制开发,可以结合自己的专业特点,开发属于自己的专用型cad系统。目前,国内开发的工程制图软件大多采用autocad作为其软件支撑平台,进行二次开
5、发而成,为工程设计和制图行业创造了巨大的经济效益和社会效益。 autocad是目前windows95/98/nt/2000环境下应用最广泛、使用人数最多的cad软件。但是autocad所提供的只是一般的通用的cad功能,如造型、编辑、注释等。如果不利用autocad开发系统,要想完成某一具体醒目的设计,就会显得较为复杂。例如,我们要设计一台活塞式发动机,就需要根据发动机功率先手工计算出活塞直径,然后再调用autocad的绘图命令,一笔一笔地绘出发动机的图形。这样,一旦在设计完成后,要更改发动机的功率,则需要重复刚才的全部内容。如果使用autocad开发系统,则我们可以将上述计算和绘图通过高级语
6、言编制相应的程序,在需要设计时,只一个命令便可以运行该程序,计算和绘图过程自动完成。显而易见,这不仅大大提高了设计效率,而且通过开发系统可以定制出某些专业化模块,甚至大型设计绘图软件。但是,对于绝大多数的用户来说,他们不会研究如何开发一个autolisp程序,就其原因是多方面的,总的来说大致有三点:一是autocad系统提供了丰富的命令,基本满足了用户的需求;二是autolisp的内涵比较丰富,不可能像autocad命令那样在屏幕上通过简单尝试就可以知道它使用的场合,而是需要用户花费比较多的时间和精力才能初步掌握;三是用户可以从很多渠道免费获取各种功能的autolisp程序,并且这些程序的功能
7、还比较强大。但是如果作为一名cad工程师,若在绘制一幅大型图纸,能够使用许多别人或自己已经制订好的autolisp程序,那么其速速将搞得令你难以置信。 随着社会的不但发展,autocad的功能也随之不断增强,与以前版本相比,在总体性能,绘图生产率,协同设计,数据共享能力,管理工具,开发手段等方面都有了程度不同的改进,增强和提高,有近3000家注册开发商向市场提供了5000余种基于autocad开发的适应各类专业领域及不同层次应用的增值软件。特别是在二次开发方面,允许用户和开发者在几乎所有方面对其进行扩充和修改,能最大限度地满足用户的特殊要求,特别是autocad提供了各种编程工具与接口,为用户
8、在其基础上进行修改和扩充创造了便利条件。1.2 齿轮参数化设计的意义 在机械领域中,齿轮机构占有很大的比重,大部分机构中都会用到齿轮,可见,齿轮的使用率非常高,对其进行参数化设计,建立一个齿轮库,大大缩短了绘图人员的工作时间,提高了工作效率,是十分有意义的。1.2.1 机械工业在现代化建设中的作用机械工业的生产水平是一个国家现代化建设水平的主要标志之一。人们所以要广泛使用机器,是由于机器既能承担人力所不能或不便进行的工作,又能较人工生产改进产品质量,特别是能够大大提高劳动生产率和改善劳动条件。同时,不论是集中进行大量生产还是迅速完成多品种,小批量生产,都只有使用机器才便于实现产品的标准化,系列
9、化和通用化,尤其是便于实现高度的机械化,电气化和自动化。因此,机械工业肩负着为国民经济各个部门提供技术装备和促进技术改造的重要任务,在现代建设的进程中起着主导和决定性的作用。所以通过大量设计制造和广泛使用各样先进的机器,就能大大加强促进国民经济发展的力度,加速我国的社会主义现代化建设。1.2.2 齿轮机构在机械工业中的地位一台现代化的机器中,常会包含着机械、电气、液压、气动、润滑、冷却、信号、控制、监测等系统的部分或全部,但是机器的主体仍是机械系统。每个机构都是由许多零件来组成的。齿轮属于通用零件的范围,被广泛应用于各种机器中,在机器组成中占有很大的比例。齿轮机构可以用来传递任意两轴之间的动力
10、和运动,它是现代机器中应用最广泛的一种传动机构。它能保证两轴的传动比恒定不变,结构紧凑,工作可靠,效率高,寿命长,传递功率和适用速度的范围大。此外,齿轮传动是机械传动中最重要的传动之一,形式很多,应用广泛,传递的功率可达近十万千瓦,圆周速度可达200m/s。在常用的机械传动中,以齿轮传动的效率最高,如一级圆柱齿轮传动的效率可达99%。这对大功率传动十分重要,因为即使效率只提高1%,也有很大的经济意义。在同样的使用条件下,齿轮传动所需的空间尺寸一般较小,而且,设计制造正确合理,使用维护良好的齿轮传动,工作十分可靠,寿命可长达一、二十年,这是其他机械传动所不能比拟的,再加上其传动比稳定,齿轮传动获
11、得了广泛应用,可见,齿轮在机械领域中有着举足轻重的地位。1.2.3 齿轮参数化设计的重大意义由上述内容可以看出,齿轮机构在机械工业中作用重大,齿轮传动亦机械传动中最重要的传动之一,因此齿轮在机械领域中应用广泛,使用频繁,对其进行参数化设计是十分有意义的。利用autocad软件开发制作出常用齿轮库,实现各类齿轮的自动绘图,可以大大缩短工作人员的工作时间,省略了耗时最多的手工绘图部分,提高了整体的工作效率,使各项工作具备了系统化,整体化的特点。1.3 设计的主要内容由autocad软件二次开发而成的gear系统是一个功能齐全、使用简单的交互式cad软件,其主要作用是对各类常用齿轮进行参数化设计,实
12、现自动绘图功能。用户界面采用windows风格的中文窗口图形界面,用于系统的流程控制、数据输入和结果显示,使用户操作直观、方便。本次设计各章节的安排如下:第一章:本章中重点对autocad二次开发的现状、发展历史、研究过程等进行了阐述和分析,掌握其定制与开发的意义。第二章:介绍了dcl语言的运行环境、语言特性等内容,以及对话框界面设计时所需要注意的部分和设计方法。第三章:对autolisp语言的基本内容进行简单阐述,介绍其语言特性,运行环境,编程方法等第四章:重点介绍了齿轮参数化设计的方案与实现过程,讲述如何选择齿轮的基本参数,基本结构形式,对图幅进行设置,以及如何运行本系统等内容第五章:对本
13、次设计进行总结,对其主要内容进行概述,讲述本次设计的意义等另外,论文中附录了中英文摘要,英文翻译,参考文献,符号说明等内容第二章 dcl对话框的设计dcl是一种对话框控制语言,采用该语言与autolisp等程序结合,可以定制与开发用户自己的对话框。目前对话框是最为流行的一种人机交互界面。它支持以光栅扫描显示器和鼠标为代表的输入设备,向用户提供图形与文本并存的可视化环境,使操作更为自然、简捷。2.1 dcl对话框的组成对话框由一个或若干个不同功能的小框组成。这些小框称为对话框的选项或成分。根据功能的不同,选项可以分为按钮、文本编辑框、列表框、滑动杆等控件。当用户为自己的应用程序建立对话框时,需要
14、用dcl文件对拟建立的对话框的各个选项和其布局格式进行定义。dcl文件是按一定的语法规则编写的文本文件,可以用任何文本编辑程序建立。用户在编写程序建立。用户在编写dcl文件时,可以直接引用base.dcl文件中预定义的选项,也可以通过包含指令来引用除了base.dcl和acad.dcl文件之外的其他dcl文件中定义的选项。1) 按钮(button) 每个对话框都有一个或几个按钮选项。2) 文本编辑框(text edit box) 供用户输入和编辑单行文本或数值的对话框选项。3)列表框(list box)包含一系列的文本行,可以用其右侧的滑动杆上下移动,从该列表中选择某一表项。4)滑动杆(sli
15、der)用于获取数值。通过左右上下移动它的滑块或单击两侧的箭头,从而调整数值的大小。2.2 dcl对话框的基本内容dcl文件是带有dcl扩展名的ascii文本文件,它可以包括一个或多个对话框描述。dcl文件还可以包括构件或子部件的原形定义,以便这些构件或子部件被其他对话框引用。2.2.1 定义选项的dcl表达式autocad内部有一pdb(programmable dialog box)模块,它可以支持上节所述的各种选项。在dcl文件中,各选项的定义采用规定的dcl表达式。表2-2-1给出了 pdb模块支持的各选项名、dcl表达式及其含义。表2-2-1 定义选项的dcl表达式选项名dcl表达式
16、含义 按钮button作用相当于实际按钮,用于要求动作效果立即实现的场合 编辑框edit_box供用户输入和编辑单行文本的区域 图像按钮image_button选择该按钮可显示出一个图像框 列表框list_box含有若干文本行的框,供用户从所列表项中选择 弹出式列表 popup_list除能“弹出”外,功能和列表框相同 切换按钮toggle控制二进制值“0”和“1”,即“打开”和“关闭” 列column一列中的选项。它们可以是任意类型的选项 加框列boxed_column一种周围有边界线的列 单选列radio_column一种只包含单选按钮的列 文本text 显示一个用作标题行或提示信息的文本
17、串 空白spacer不显示任何内容的选项。其用途仅是为了调整布局 在autocad的子目录support中有一个名为base.dcl的文件。该文件已预定义了全部选项。通过将各选项组合成行或列,可以建立更为复杂的选项组。这个选项组可以加框,也可以不加框,而且在dcl文件中可以作为单个选项来调用。但是,用户选择时,不能选择选项组,只能选择其中的一个选项。2.2.2 对话框的属性 对话框的属性(attributes)用于定义它的布局和功能,类似于编程语言中的变量。属性由属性名和属性值组成,属性值必须是以下几种特定的类型之一。1) 数值包括整数和实数。表示距离(如选项的宽度和高度)时,一般以字符宽度和
18、高度为单位用整数表示。如果属性值要用带小数的实数表示,小数点前的先导位不能省略。2) 保留字 保留字是由字母、数字和字符组成的标识符,它必须以字母开头。保留字的大小写是有区别的,如false和false是不同的。3) 字符串字符串是用双引号引起来的文本内容。若字符串中还要包含一个双引号,则在该双引号前必须有一个反斜杠。2.3 dcl对话框程序的编写当用户为自己的应用程序建立对话框时,需要用dcl文件对拟建立的对话框的各个选项和其布局格式进行定义。dcl文件是按一定的语法规则编写的文本文件,可以用任何文本编辑程序建立。2.3.1 对话框的调用格式与程序代码dcl 文件的编写必须遵循以下格式:选项
19、名:预定义选项名1:预定义选项名2:. . . . 属性名1 = 属性1值; 属性名2 = 属性2值; . . . . . .格式1:拟调用的选项名;格式2:拟调用的选项名 属性名1 = 属性1值; 属性名2 = 属性2值; . . . . . . 格式3:拟调用的选项名用格式1或格式2调用别的选项 . . . . . . 举例说明如下:image_button_test:dialoglabel=test image;:boxed_column:image_buttonkey=image_button1;color=graphics_background;height=12; width=35
20、; ok_cancel;上述代码设置的是图形显示按钮,用来显示图形,拾取控件。2.3.2 对话框的布局设计在本次对话框布局设计中,主要考虑了以下几个方面的内容:1) 外形美观对话框的外观十分重要。对话框的颜色配比、选项的布局等要使用户感觉舒适,具有吸引力。颜色的使用尽可能与acad标准对话框一致。2) 使用方便对话框使用的方便性是对话框设计时要考虑的最为重要的内容。对话框中各选项的位置及选项功能的合理搭配对使用的方便性有重要影响。在选项布局时要考虑把最频繁使用的选项放在最显要的位置,最常用的几个选项之间的跳转应尽可能容易。要尽量避免用对话框中的选项再调出下一级对话框。另外,对话框中安排了一个帮
21、助按钮。3) 功能定义和提示的一致性 对话框中各选项的功能和显示的字符应与acad的标准对话框中的相应选项保持一致,这样一方面便于用户学习和使用,另一方面也可直接借用base.dcl和acad.dcl中的有关程序编写用户的dcl文件。4) 选项的互锁功能在对话框中,往往在选择了有关选项后,暂时不能选择别的选项。这时必须将不能选择的选项置为disable,使之变灰,以避免可能出现的严重后果。5) 良好的容错能力对话框应具有良好的容错能力,也就是说,当用户选择对话框中的选项或用键盘输入有错时,应能在对话框中报告错误,同时提供相应的选项使用户在不退出对话框的情况下重新选择或输入,而不必退出对话框又重
22、新进入。6) 选项编辑的一般要求对话框中的各个选项应按行按列排布,相关的输入区(如编辑框和列表框等)要按水平方向和垂直方向对齐,并尽可能沿水平方向和垂直方向对齐加框区域。在加框区外不要留太多的空白区域。在对话框能清楚地显示出所有内容的前提下,应尽可能减小对话框的总体尺寸。 第三章 autolisp语言简介及程序设计 autolisp 是一种嵌入autocad内部的lisp语言,autodesk公司在2.17以后的版本中开始将其引入。它可让用户和autocad开发者以非常强大的高级语言编写出宏语言程序和函数,按用户的需要定制出自己的系统,非常适合于图形的应用。且lisp很易于学习和使用,非常灵活
23、多变。3.1 autolisp语言的简介autolisp语言是一种解释性语言,为用户处理了绝大部分的数据类型及结构的细节,它不允许应用程序对操作系统及硬件进行操作,可用文本编辑器观看。3.1.1 autolisp语言的运行环境autolisp语言运行在autocad环境下。它采用了与commonlisp(一种通用的lisp语言版本)相近的语法及习惯约定,并吸收了lisp语言的主要函数,同时增加了针对autocad特点的许多功能,如:可以把autolisp和autocad的绘图命令透明地结合起来,使设计和绘图完全融为一体,autolisp的一个重要应用是实现参数化绘图程序设计;利用autolis
24、p语言编程可以实现对autocad当前图形数据库进行直接访问和修改等。autolisp语言是autocad提供给用户的主要二次开发工具之一。用autolisp语言编写应用程序,可以为autocad增加新的命令或修改autocad,一适应用户的特殊需要。掌握使用和编制autolisp应用程序的方法和技术将大大提高用户的工作效率和二次开发水平,增强autocad的灵活性,并将得到长期、稳定的技术支持。3.1.2 autolisp语言的特性autolisp程序是由变量、运算符、表达式所组成的语句段。变量可以是整型、实型、点、字符串。变量可以进行算术和逻辑运算。而表达式则是按照autolisp规则由不
25、同的运算和关系组成的,用于取结果数据。autolisp中的函数数目比较多,功能比较完备。每一个函数均有一个系统中唯一的名称,参数是由用户提供的用于函数操作处理的信息。支持递归定义是autolisp语言的重要特性。在lisp语言中,最基本的数据类型是符号表达式。lisp语言的特点是程序和数据都采用符号表达式的形式,即一个lisp 程序可以把另一个lisp程序作为它的数据进行处理。因此使用lisp语言编程十分灵活,看起来,是一个一个的函数调用。autolisp语言的另一个特点是可移植性。autolisp程序可以在运行于多种支持平台(如windows、dos、unix、macintosh等)上的au
26、tocad中执行,与cpu或操作系统无关。3.2 autolisp中的数据类型及求值程序1) 数据类型autolisp中的数据类型包含有表、符号、字符串、实型数、整型数、文件指针、autocad实体名、autocad选择集、子程序subrs(built-in functions)。字符串类型 字符串类型的变量用于表示字符串。定义字符串类型需要使用双引号“”,并将字符串放置其中。整 型整型变量的值是一个不含分数,且小数点后的值必须是0的数。在autocad系统中,通常使用0或1来表示某些系统变量的当前状态,于是通过设置这些系统变量的整型值,就可达到改变系统状态的目的。 实 型 实型变量是一个含分
27、数切包括小数点后若干位数(位数由系统状况而定)的值,它包括整数。实数的取值范围没有限制,当数值过大或太小时,autolisp将自动使用科学计数格式。 表 型 表型变量是autolisp中的一种特殊变量。它由一个或者多个任意类型的数据构成。使用时,只需将各种变量并排放置在一对圆括号()中,各数据变量之间用一个空格来分隔。2) 求值程序 每一个lisp解释程序的核心就是求值程序。求值程序装入用户是输入行,对它进行计算,并返回一些结果。下面是autolisp中的求值过程: 整型数、实型数、字符串、文件指针和子程序以它们本身的值作为结果。 符号以它们当前约束值作为计算结果。 表是根据其中的第一个元素进
28、行计算的。 如果在autocad的“command:”提示符下输入一个autolisp表达式,只是简单地显示此表达式的计算值。虽然“command:”提示符不再出现,但是可以用通常的方法输入一个autocad命令。当下一条命令执行完后,“command:”提示符就会出现。例如,在本次设计中,程序载入后只要在命令行键入“gear”即可运行本程序。 本次设计的主函数如下所示:(defun c:gear(/ index3)(if( (setq index3 (load_dialog “gear”) 0) (rong (if (new_dialog “gear” index3) (rong (call
29、_stru_slide 0) (setq setsize_flag 0) (mode_tile “gear_stru” 1) (mode_tile “user_select” 1) (mode_tile “sys_select” 1) (mode_tile “accept” 1) (mode_tile “help” 0) (mode_tile “p_modi” 1) (action_tile “p_finish” “(finish_select)”) (action_tile “p_modi” “(modi_select)”) (action_tile “user_select” “(u_se
30、lect)”) (action_tile “sys_select” “(s_select)”) (action_tile “gear_stru” “(s_gear_stru $value)”) (action_tile “set_size” “(setsize)”) (action_tile “help” “(help_information)”) (action_tile “accept” “(last_parameter)(done_dialog 1)”) (setq return_value1 (start_dialog) (if (= return_value1 1) (rong (i
31、f (= setsize_flag 0) (rong (setq c 5 width 420 height_1 297) (setq tf (420 297) (setq size_char “a3 420x297”) (setq scale_1 1.0) (setq scale_char “1:1”) (setq table_name “ljbtl2”) (setq out_border_flag 1) ) (draw_gear) ) (prompt “cannt draw gear”) ) (unload_dialog index3) ) (rong (prompt “unable to
32、display dialogbox”) (exit) )) (rong (prompt “unable to load dialogbox”)(exit) ) ) )(princ “n程序已装入. 键入gear 则运行: “)(princ) 上述主程序代码主要是对所定义的各控件的程序进行连接与引用,该程序命名为“gear”,在命令行中键入“gear”,运行系统,利用该主函数对对话框中所有控件的属性进行初始化设置,连接dcl与autolisp后台数据库,进行参数计算,形式选择,完成自动绘图。第四章 齿轮参数化设计方案及过程4.1 参数化设计方案 本次设计以autocad 2004为运行环境,以d
33、cl对话框为人机交互界面,以autolisp为后台运行程序,对标准圆柱齿轮进行设计,实现自动绘图。4.1.1 整体结构设计设计模块根据用户的指令和输入的基本数据,自动进行结构计算和图纸的布置设计,将设计结果存入数据库。如图4-1所示,它分为4个部分:用户界面、设计模块、设计数据库和绘图模块。用户界面参数 录入设计数据库设计模块 输出 结果绘图模块图4-1 设计模块绘图模块的任务是将设计计算的结果转化成工程图纸。手工设计齿轮,绘图工作量占总工作量的70以上,大大浪费了工作时间,降低了工作效率。因此,开发gear的主要目的就是实现齿轮设计的自动化绘图。 齿轮的种类繁多,本次设计主要是针对标准圆柱齿
34、轮进行参数化设计。主要分为对话框和后台调用程序两大部分。整个软件主要是用autolisp语言及dcl语言进行autocad二次开发,利用dcl编写程序主界面,autolisp做后台,编写主程序及自动绘图计算部分程序,调用对话框,实现人机交互功能。用户只需输入齿轮基本参数和形式,即可自动生成齿轮零件图。4.1.2 模块功能介绍1) dcl对话框部分dcl语言是一种界面编辑程序,通常用来做前台。该模块主要是为用户提供了一个操作平台,方便用户输入或选择绘图所需的基本参数,齿轮类型等基本参数,显示样图,为正式出图做铺垫。界面分“齿轮基本参数”,“齿轮基本形式”,“图纸选择”等三大模块。“齿轮基本参数”
35、包括齿轮孔径,齿数,模数,材料,热处理方式,输入,修改等控件,该部分为绘图提供基本参数信息;“齿轮基本形式”包括用户选择,系统缺省,齿轮基本形式等控件,该部分主要功能是对齿轮的类型进行选择,确定基本形式。“图纸选择”部分主要是根据齿轮尺寸和用户需求确定图纸尺寸和形式。2) autolisp程序部分autolisp语言是一种运行在autocad环境下的lisp编程语言,它采用了与commonlisp相近的语法及习惯约定,把autolisp与autocad的绘图命令透明的结合起来,使设计和绘图完全融为一体。该模块主要是调用dcl对话框,接收用户输入的信息,通过autolisp语言编写齿轮计算部分的
36、程序,绘制齿轮零件图,实现自动绘图功能。4.1.3 实现方法1)明确模块的功能根据系统设计的整体思路和高内聚性、低耦合性(即尽量使模块功能完整、少和模块外部交换数据)的原则,确定模块要画什么样的图形,绘出效果图。用户可通过界面中的图形控件来查看草图。2)定义模块需要输入的参数模块输入的参数一般有绘图基点、尺寸、比例、角度、是否标注尺寸等,剖面图还要输入是否绘制剖面线的信息。选择绘图基点时,既要考虑图形定位的需要,又要方便于坐标计算。尺寸参数则是根据效果图归纳出的、能够绘出此图的最少尺寸数据。3)坐标计算与转换无论多么复杂的二维图形,都能用直线和一些简单曲线组合而成,绘图的难易取决于这些直线和曲
37、线的控制点坐标的计算是否容易。选一个方便的坐标系,算出绘图控制点的坐标。然后,利用计算机图形学的知识,将各点坐标按指定比例、角度转换到图纸坐标系中去。4)绘制基本图形通过接口函数调用autocad绘图命令将上述控制点连接起来,再调用编辑命令进行复制、阵列、镜像、倒圆、倒角等操作,就可以得到所要画的图形。如果填充剖面图案,最好在这个阶段选好填充边界。5)标注尺寸如果上层模块要求标注尺寸,绘图模块就要根据效果图算出尺寸的标注位置,确定标注内容,然后通过接口函数调用autocad命令标注尺寸,在用户要求的位置进行标注。通过autocad提供的编程接口,载入对话框,连接dcl对话框与autolisp程
38、序,在命令行中输入“gear”命令进入主界面进行操作,完成参数输入,确定后零件图将自动生成,显示在autocad主窗口中。4.2 对话框界面的设计与autolisp程序的编写4.2.1 dcl程序的编写和对话框的布局本次设计中,对话框代码如下:gear:dialog label=”圆柱齿轮的参数化设计”;/对话框标题 fixed_width=true; :row fixed_width=40; :boxed_column label=”请选择齿轮的基本参数:”; :edit_box edit_width=9; label=”齿轮轴径:”; key=”gear_hole”; edit_limit
39、=10; value=”50”; :edit_box edit_width=9; label=”齿轮齿数:”; key=”gear_tooth”; edit_limit=10; value=”30”; :popup_list edit_width=8; label=”齿轮模数:”; key=”gear_mode”; list=”0.1n0.12n0.15n0.2n0.25n0.3n0.4n0.5n0.6n0.8n1n1.25n1.5n2n3n4n5n6n8n10n12n16n20n25n32n40n50”; value=”15”; :popup_list edit_width=8; label
40、=”齿宽系数:”; key=”gear_width”; list=”0.2n0.25n0.3n0.4n0.5n0.6n0.8n1.0n1.2”; value=”4”; :popup_list edit_width=8; label=”齿轮材料:”; key=”material1”; list=”45nht250nht300nht350nqt500-5nqt600-2nzg310-570nzg340-640n30crmnsin35simnn38simnmon40crn20crn20crmntin12cr2ni4n20cr2ni4n35cralan38crmoalan夹布塑胶”; value=”0
41、”; :popup_list edit_width=20; label=”热处理方式:”; list=”常化n调质n调质后表面淬火n渗碳后淬火n调质后氮化”; key=”heat_treat”; value=”2”; :row :spacer width=3; :button fixed_width=3; key=”p_finish”; label=”输入”; :spacer width=3; :button fixed_width=3; key=”p_modi”; label=”修改”; :spacer width=3; :boxed_column fixed_width=30; label
42、=”请选择齿轮的基本形式”; key=”b_stru”; :row :radio_column fixed_width=8; :spacer height=1; :radio_button label=”系统缺省”; key=”sys_select”; value=”1”; :spacer height=1; :radio_button label=”用户选择”; key=”user_select”; value=”1”; :spacer height=1; :image key=”image_one”; color=graphics_background; height=12; width=
43、35; :row :popup_list label=”齿轮基本形式”; list=”实心式直齿圆柱齿轮n腹板式直齿圆柱齿轮n轮辐式直齿圆柱齿轮n实心式斜齿圆柱齿轮n腹板式斜齿圆柱齿轮n轮辐式斜齿圆柱齿轮”; key=”gear_stru”; edit_width=20; value=”0”; :boxed_row :column :text key=”text_one”; label=”当前图幅为:”; :text key=”text_two”; label=”当前绘图比例为:”; :column :text key=”text_three”; label=”a3 420x297”; :te
44、xt key=”text_four”; label=”1:1”; :button fixed_width=3; key=”set_size”; label=”设置图幅”; ok_cancel_help_errtile;注释:标识符“label”, 关键字“key”,行“column”,列“row”,边界行“boxed_row”,边界行“boxed_column”,多选一按钮“radio_button”,图像“image”,编辑框“edit_box”,文本框“text”,下拉列表框“popup_list”,按钮“button”该段代码的意义如下:1) 定义一个名为“gear”的对话框,其标识符为
45、“圆柱齿轮的参数化设计”,主要分三大部分:齿轮基本参数输入、齿轮基本形式选择,图幅选择部分2) 创建多个用于输入齿轮基本参数的编辑框和下拉列表框,标识符包括:“齿轮轴径、齿轮模数、齿轮齿数、齿轮材料、热处理方式、齿宽系数”3)创建用于选择齿轮形式的下拉列表框和图像,用于预览齿轮的形式,用到了image控件,popup_list控件来选择齿轮形式4)创建用于选择图幅大小的按钮,用户可自由选择合适的图号,比例等。根据第二章中的布局要求,本次设计的对话框主界面如图4-2所示:图4-2 对话框主界面用于设置图幅大小的对话框界面图4-3下:图4-3 图幅4.2.2 autolisp程序的编写通过对aut
46、olisp语言的学习,结合本次设计的要求,编写后台控制部分程序如下: (defun call_stru_slide(slide_index)(start_image “image_one”)(setq image_x (dimx_tile “image_one”) (setq image_y (dimy_tile “image_one”)(fill_image 0 0 image_x image_y -2) (setq stru_name (“input” “gear0” “gear1” “gear2” “gear3” “gear4” “gear5”) (setq image_name (nt
47、h slide_index stru_name) (slide_image 0 0 image_x image_y image_name) (end_image)注释:该段代码主要功能是调用幻灯片,显示齿轮形式的预览图,幻灯片名分别为:”input” “gear0” “gear1” “gear2” “gear3” “gear4” “gear5”。每个幻灯片对应不同形式的齿轮,两者之间通过下拉列表的索引号相连接。 (defun finish_select(/ index_mode mode_list index_width mode_width index_material material_list index_treat treat_list) (error_clear) (setq error_flag 0) (setq index_mode (get_tile “gear_mode”) ;模数 (setq index_mode (atoi index_mode) (setq mode_list (0.1 0.12 0.15 0.2 0.25 0.3 0.4 0.5 0.6 0.8 1 1.25 1.5 2 3 4 5 6 8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2031年中国链条式燃煤气化锅炉行业投资前景及策略咨询研究报告
- 平顶山2024年河南平顶山市农业科学院招聘7人笔试历年参考题库附带答案详解
- 2025年盐渍裙带叶项目可行性研究报告
- 2025年桑拿服项目可行性研究报告
- 2025至2031年中国异型轧辊行业投资前景及策略咨询研究报告
- 2025至2031年中国套装风炮行业投资前景及策略咨询研究报告
- 广西2025年广西生态工程职业技术学院招聘笔试历年参考题库附带答案详解
- 2025年剑杆综框项目可行性研究报告
- 2025年中央供氧系统项目可行性研究报告
- 2025至2030年高锰铁项目投资价值分析报告
- 走好群众路线-做好群众工作(黄相怀)课件
- NY∕T 4001-2021 高效氯氟氰菊酯微囊悬浮剂
- 《社会主义市场经济理论(第三版)》第七章社会主义市场经济规则论
- 汉声数学图画电子版4册含妈妈手册文本不加密可版本-29.统计2500g早教
- 初中化学方程式汇总(鲁教版)
- 企业组织架构表
- 中国监察制度史
- 搬家公司简介(15个范本)
- 典范英语-2备课材料2a课件
- 抽水蓄能辅助洞室施工方案
- 数据结构英文教学课件:chapter7 Searching
评论
0/150
提交评论