我的论文.doc

用VLISP与DCL整合实现绘制抛物线(论文+图纸+答辩PPT)机械设计带图纸文档

收藏

资源目录
跳过导航链接。
压缩包内文档预览:
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:92405475    类型:共享资源    大小:3.22MB    格式:ZIP    上传时间:2020-08-16 上传人:QQ24****1780 IP属地:浙江
20
积分
关 键 词:
VLISP DCL 整合 实现 绘制 抛物线 论文 图纸 答辩 PPT 机械设计 文档
资源描述:
用VLISP与DCL整合实现绘制抛物线(论文+图纸+答辩PPT)机械设计带图纸文档,VLISP,DCL,整合,实现,绘制,抛物线,论文,图纸,答辩,PPT,机械设计,文档
内容简介:
延边大学计算机系本科毕业设计AutoCAD的二次开发延边大学本科毕业论文用VLISP与DCL整合实现绘制抛物线作 者 尹慧 院 系 工学院计算机系 专 业 计算机科学与技术 年 级 2001级 学 号 2014010177 指导教师 张云秋 职 称 副教授 答辩日期 2005年6月11日 成 绩 摘要本次毕业设计任务是学习AutoCAD的开发工具Visual Lisp与对话框DCL语言整合的具体过程,并通过学习开发简单的实例。Visual Lisp是为加速Auto Lisp程序开发而设计的软件开发工具,为AutoCAD提供了一个完整的集成开发环境。对话框DCL语言所建立的对话框形象、直观,可随意输入、修改,鼠标、键盘并用,是一种深受用户欢迎的界面。本文对AutoCAD的二次开发工具和对话框DCL语言进行了简单的介绍,对 Visual Lisp与对话框DCL语言整合过程进行了详细的介绍,并利用Visual Lisp与对话框DCL语言整合实现制作抛物线的全过程,对具体的步骤进行了详尽的分析,提出了基本的设计思路,最后给出了利用抛物线的几个生活实例。关键词:Visual Lisp 对话框 二次开发 抛物线ABSTRACTThis graduation designs the mission is the concrete process that the development tool Visual Lisp that studies the AutoCAD integrates with the dialog box DCL language, and pass the in brief solid example of the study development.The Visual Lisp is in order to accelerate the Auto Lisp procedure development but software of designs development tool, provided for the AutoCAD a gather completely develop the environment.The dialog box image that the dialog box DCL language build up, keep the view, can input, modify at will, the mouse, keyboard counteract, is a kind of interface for welcome.This text develops the tool and dialog box DCL languages to carry on the simple introduction to the AutoCAD two times, integrated the process to carry on the detailed introduction to the Visual Lisp and dialog box DCL language, and make use of the whole process that the Visual Lisp integrates with the dialog box DCL language the realization manufacture parabola, carrying on the detailed analysis to the concrete step, putting forward the basic design way of thinking, the end give make use of the living solid example of severals of the parabola.KEY WORDS:Visual Lisp Dialog box second Develop parabola目 录一、 前 言 3二、 AutoCAD二次开发工具及对话框综述 3三、Visual LISP 设计及具体开发抛物线程序1 问题提出72 预期目标73 需求分析74 总体设计75 详细设计86. 程序流程图107. 程序源代码118. 应用实例图14四、总 结 15五、参考文献 16一、前言随着计算机辅助技术的急速发展,美国AutoDesk公司的AutoCAD已成为设计人员手中的一件利器。随着AutoCAD应用的深入,越来越多的用户发现仅仅利用AutoCAD提供的交互功能已不能满足设计要求,在解决专业性的问题时,这一点显得尤为突出。这就需要一种智能化的软件,能够通过编程方式来大量成批地去解决一些问题。AutoCAD的开发性和丰富的开发工具为我们解决新局面这个问题提供了有效的手段。VLISP和DCL正是解决这一问题的两大法宝。利用VLISP编程,可以强化AutoCAD原有的命令,创造更有用的AutoCAD新命令。DCL简化繁琐的环境设定或绘图步骤,进行参数式绘图,从而达到真正灵活控制AutoCAD的目的。二、AutoCAD二次开发工具及对话框综述1.AutoCAD二次开发工具综述AutoCAD是目前微机上应用最为广泛的通用交互式计算机辅助绘图与设计软件包。AutoCAD的强大生命力在于它的通用性、多种工业标准和开放的体系结构。其通用性使得它在机械、电子、航空、船舶、建筑、服装等领域得到了极为广泛的应用。下面对AutoCAD的三代开发工具进行浅析。 第一代开发工具AutoLISP是1986年随AutoCAD v2.18提供的二次开发工具。它是一种人工智能语言,是嵌入AutoCAD内部的COMMON LISP的一个子集。在AutoCAD的二次开发工具中,它是唯一的一种解释型语言。使用AutoLISP可直接调用几乎所有的AutoCAD命令。AutoLISP语言最典型的应用之一是实现参数化绘图程序设计,包括尺寸驱动程序和鼠标拖动程序等。另一个典型应用就是驱动AutoCAD提供PDB模块构成DCL(Dialog Control Language)文件,创建自己的对话框。AutoLISP具有以下优点:(1) 语言规则十分简单,易学易用;(2) 接针对AutoCAD,易于交互;(3) 解释执行,立竿见影。AutoLISP的缺点是:(1) 功能单一,综合处理能力差;(2) 解释执行,程序运行速度慢;(3) 缺乏很好的保护机制,源程序保密性差;(4) LISP用表来描述一切,并不能很好地反映现实世界和过程,跟人的思维方式也不一致;不能直接访问硬件设备、进行二进制文件的读写。AutoLISP的这些特点,使其仅适合于有能力的终端用户完成一些自己的开发任务。第二代开发工具ADS(AutoCAD Development System)是AutoCAD R11开始支持的一种基于C语言的灵活的开发环境。ADS可直接利用用户熟悉的C编译器,将应用程序编译成可执行文件后在AutoCAD环境下运行,从而既利用了AutoCAD环境的强大功能,又利用了C语言的结构化编程、运行效率高的优势。 与AutoLISP 相比,ADS优越之处在于:(1) 具备错综复杂的大规模处理能力;(2) 编译成机器代码后执行速度快;(3) 编译时可以检查出程序设计语言的逻辑错误;(4) 程序源代码的可读性好于AutoLISP。 而其不便之处在于:(1) C语言比LISP语言难于掌握和熟练应用;(2) ADS程序的隐藏错误往往导致AutoCAD,乃至操作系统的崩溃;(3) 需要编译才能运行,不易见到代码的效果;(4) 同样功能,ADS程序源代码比AutoLISP代码长很多。第三代开发工具Visual LISP,ARX及基于ActiveX Automation技术的VBA等1Visual LISP(VLISP) VLISP是AutoLISP的换代产品。它与AutoLISP完全兼容,并提供它所有的功能,是新一代的AutoCAD LISP语言。VLISP对语言进行了扩展,可以通过Microsoft ActiveX Automation接口与对象交互。同时,通过实现反应器函数,还扩展了AutoLISP响应事件的能力。作为开发工具,VLISP提供了一个完整的集成开发环境(IDE),包括编译器、调试器和其他工具,可以提高二次开发的效率 。另外,VLISP还提供了工具用于发布独立的应用程序。2ARX ARX(AutoCAD Runtime eXtension)是AutoCAD R13之后推出的一个以C+语言为基础的面向对象的开发环境和应用程序接口。ARX程序本质上为Windows动态链接库(DLL)程序,与AutoCAD共享地址空间,直接调用AutoCAD的核心函数,可直接访问AutoCAD数据库的核心数据结构和代码,以便能够在运行期间扩展AutoCAD固有的类及其功能,创建能够全面享受AutoCAD固有命令特权的新命令。ARX程序与AutoCAD、Windows之间均采用Windows消息传递机制直接通讯。 3基于ActiveX Automation技术的VBA等开发工具 ActiveX Automation技术的完全面向对象化编程的特点,使其开发环境具备了强大的开发能力和简单易用的优良特点,开发工具的选择也具有很大的灵活性。所以,利用ActiveX Automation技术,是极具潜力的一种开发手段。4VisualLISP特色显著由于Auto Lisp存在自身无法解决的问题,为了适应AutoCAD环境下的较大型用户化CAD应用系统的开发,Autodesk公司从AutoCAD R11开始,推出采用C语言的开发环境ADS(Advance Development System),借助C/C+语言的性能和资源,完成许多Auto LISP语言难以实现的任务。随着Windows平台,面向对象编程技术等先进技术的日益成熟和普及,AutoCAD也和其他系统一样迫切需要一种全新的面向对象编程的开发环境。在AutoCAD R13之后,又推出了新一代的直接面向对象的二次开发工具ARX(AutoCAD Runtime Extension)以及更新的 AutoCAD R14 ObjectARX SDK开发工具包。为开发高自动化程度,高集成化及高性能的用户化CAD系统提供了一种极为有效的工具。是AutoCAD目前用户化的主流开发工具。VisualLISP与AutoCADVisualLISP作为一个完整的集成开发环境(IDE),具有自己的窗口和菜单,但它并不能独立于AutoCAD运行。当用户从VisualLISPIDE中运行AutoLISP程序时,经常需要与AutoCAD图形交互或在命令窗口响应程序提示。如果VisualLISP把控制传给AutoCAD时AutoCAD已被最小化,用户必须手动恢复并激活AutoCAD才可继续,VisualLISP不会自动恢复AutoCAD窗口。相反,VisualLISP窗口中会出现并保持一个VisualLISP符号,直到激活AutoCAD并响应了在AutoCAD命令提示处的提示。启动VisualLISP可在AutoCAD下边的命令栏中输入 VLISP ,也可在工具中启动,如图:启动Vlisp后的界面如下图所示: 各组成部分的说明如下:(1)菜单栏:通过选取各菜单项来发出VisualLISP命令。(2)工具栏:提供了对常用VisualLISP命令的快速调用。VisualLISP共提供了五个工具栏:“Standard(标准)”、“Search(搜索)”、“View(视图)”、“Debug(调试)”和“Tools(工具)”,如图36-2所示,每个工具栏各自代表不同功能的命令组。(3)编辑窗口:用于编辑LISP文件代码。如果用户同时编辑多个文件,则VisualLISP使用多个编辑窗口来分别显示文件。(4)控制台窗口:类似于AutoCAD的命令窗口,可在其中输入AutoLISP命令,也可以不使用菜单或工具栏而直接在控制台窗口中调用VisualLISP命令。(5)跟踪窗口:在启动VisualLISP,该窗口将显示VisualLISP当前版本的信息。而如果VisualLISP在启动时遇到错误,它还会包含相应的错误信息。(6)状态栏:显示提示信息。比如,当菜单上的某一个菜单项被亮显,则状态栏上将显示相关命令功能的简介;当鼠标指针在工具栏某按钮上停留几秒钟后,VisualLISP将显示工具提示说明按钮功能,并同时在状态栏上显示更详细的描述;当VisualLISP在编辑窗口中打开文件时,状态栏上将显示文件名名称及其路径。(7)其他窗口:有些VisualLISP函数将创建它们自己的窗口来显示结果。用户不能在这些输出窗口中输入文本,但可以从中复制,并将其粘贴到编辑器或控制台窗口中。2.对话框综述AutoCAD随着版本的逐步提高,人机交互界面也越来越先进,在各类对话框中输入参数的交互方式已逐步替代从命令提示行中输入参数的基本方式,因此对AutoCAD进行二次开发,设计定制自己的对话框是必不可少的工作。对话框使用的界面的设计分为两个部分:外观与功能。外观定义对话框有哪些组件,以及这些组件如何布局。功能则定义每个组件的内容、动作、要返回哪个数据、对其他组件有何影响。对话框由对话框控制语言DCL编写并定义在ASCII文件中。对话框中的元素,如按钮、列表、文本、图像、滑动杆和编辑框等都被认为是控件。每个控件的大小和功能都由控件的属性决定。对话框的大小和它各个组成部分的布局通过少量的定位信息自动设置完成。对话框本身并不能完成它所设计的功能,功能的实现要通过Auto LISP等程序语言来控制。Visual LISP中提供了观察对话框的工具,并且还提供了在应用程序中控制对话框的参数。要实现对话框的预定义功能,主要分为两个步骤:首先要编制一个DCL对话框定义文件该文件是由一个或几个“对话框描述”构成的ASCII文件,扩展名为.dcl,对话框描述定义了该对话框的工作方式和其中包含的成分(如各类按钮、正文编辑框、列表、滑动杆、属性等),并按层次结构加以描述:然后要编写一个相应的Auto LISP应用程序来控制DCL文件预定义功能,从某种程度上,DCL文件只定义了对话框的工作方式,说明可以拾取哪些按钮、显示什么文件、列表等,但对话框的功用及其行为方式还将取决于调用它的应用程序,而Auto LISP提供了各类管理对话框的函数,包括加载、显示和终止对话框,接受用户响应,初始化动作表达式,存取控件及属性,建立列表和生成图像等。对话框设计的一般原则特色:1美观 2.便于操作 3.语言文字说明准确、便于理解 4.控件设计风格一致性 5.操作控制顺序随意 6.实时反馈及时 7.对待操作人员宽容 8.提供帮助 9.测试通用规范:1布局合理 2.对话框的大小和位置 3.控件的禁止使用 4.嵌套对话框 5.隐藏对话框 6.默认值 7.键盘输入 8.颜色 9.标准化三、Visual LISP 与对话框设计及具体开发抛物线程序 1.问题的提出传统手工制图以纸、笔、三角板、直尺、圆规等作为辅助工具,用图形和尺寸的形式进行表达说明,这种表达方式大大超越了传统的文字叙述方法。近几年,随着信息工业的高速发展,计算机软、硬件迅速更新,操作界面逐渐个性化,促使计算机融入人们的日常生活之中。以纸、笔、尺等为工具的绘图工作,也逐步被计算机所代替,从而形成了计算机辅助绘图(Computer Aided Design)的技术领域。因此计算机辅助绘图不仅应具有计算机操作系统(如 Windows 98、Windows NT、Windows 2000)本身的功能(如复制与删除文件、中文输入等),而且,应具备传统的制图规范准则。运用计算机强大的计算和存储功能并具有绘图功能的软件,称为计算机辅助绘图软件。计算机辅助绘图软件有很多,笔者在学习AutoCAD 2002绘制建筑、物理、机械所用图时,经常遇到绘制类似抛物线这类曲线的图形问题。抛物线必须显示在坐标平面。在AutoCAD中,如果你只要一个大概的形状,可以用多义线大约画出圆弧状的图形,但是在实际应用中,如建筑绘图、机械制造等方面就要求精度较高的弧状图形,如建设拱桥时,由力学专家给出最佳的方案,既考虑到桥的最大承重能力,又要考虑制造建桥材料的可行性,这是就需要精确的绘制抛物线图形了。考虑到用户使用方便,笔者使绘制程序与操作简便的对话框相结合,只要在编辑框种输入数据就可以了。2.预期目标根据用户的需求设计应用程序再设计对话框,驱动对话框,将用户提供的数据输入到对话框中,单击确定就可得到运算后的图形,如下图抛物线的演示图形:3.需求分析需求分析的基本任务是准确的回答“系统必须做什么?”这个问题。这一阶段是对系统认识最全面、准确、清晰、得体的一个比较关键的时期。 需求分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量。因此,必须用行之有效的方法对软件需求进行严格的审查验证,为下一步的总体设计打好基础。AutoCAD是一种用计算机硬、软件系统辅助人们对产品或工程进行设计的方法和技术,包括设计、绘图、工程分析与文档制作等设计活动。在设计过程中,设计人员处于主导地位,计算机处于辅助地位。AutoCAD在建筑、数学、物理等学科都有广泛的应用,将其功能实现以对话框的形式呈现给用户非常受欢迎,因此,笔者就两者的结合情况作了详细的研究,并开发了绘制抛物线这个小程序用以具体实现一下。下面我具体的介绍一个此软件的系统环境。(一)功能介绍:编写对话框程序,将运算程序装入,驱动对话框就可实现其绘图功能。(二)运行要求操作系统为Windows98, Windows2000或Windows XP。内存推荐为64兆以上,128或以上更加。具有300MHz处理器(或更高档处理器)的IBM PC兼容机。鼠标,键盘。4.总体设计 经过了需求分析阶段的工作,系统必须“做什么” 已经清楚了,现在决定“怎么做”的时候了。总体设计的基本目的就是回答“概括地说,系统应该如何实现?”这个问题。因此,总体设计又称为概要设计或初步设计。笔者从简单的对话框设计入手,先编写用户可见的对话框.dcl文件,然后编写通过输入的数值运算及绘制抛物线的应用程序.lsp文件,再制作用于显示在对话中的示例幻灯片.sld文件,最后编写驱动对话框的.lsp文件,使输入数值后能调用画图程序显示出来。5. 详细设计详细设计阶段的根本目标是确定应该怎样具体实现所需要的程序,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。编辑框1对话框加框列图像Ok_cancel组件行编辑框2编辑框3下图就是绘制抛物线对话框的结构图:根据抛物线的方程y=ax2+bx+c,我们只需要输入a,b,c的值就可以,所以选用了三个编辑框,并对它们赋予初值。为了使对话框美观,直观,又放入了幻灯片文件作为图像显示。 编写绘制抛物线程序时,先选定坐标原点,以坐标原点为基础,将x定为2,4,6三个值,再根据给定的a,b,c的值,依次计算出y的值,再以这些点画直线,将单位都改为毫米,连起来的直线段就看起来就成为了曲线,将单位选的再小一些看起来就效果更好了。对话框中的图像是在绘图板中制作的AutoCAD幻灯片文件,将需要加工的图片在绘图板中放到最大,在命令栏内输入mslide(制作幻灯片)命令,再保存。 在对话框驱动程序中调用start_image命令,给出幻灯片存放的位置,调用成功后图像就能显示在对话框中,如果调用失败则图像位置为背景色,因为在制作对话框DCL文件时,设定color = -2是取背景色。最后一项也是本次毕业设计的关键,就是vlisp与dcl的整合,也就是对话框的驱动。对话框中的控件本身并没有实际意义,需要经过驱动程序才能实现它自身的功能。下图是一般情况下的对话框驱动过程。不成功不成功成功成功加载对话框文件显示对话框初始化控件激活对话框用户操作对话框显示“加载失败”信息显示出错信息卸载对话框文件结 束开 始 1.加载对话框文件Vlisp程序首先调用load_dialog函数加载指定的对话框文件,若加载成功则返回一个大于零的整数。返回的整数类似于文件标识号,是显示和卸载对话框文件的主要参数,应该将其赋给一个变量保存,以备程序调用。2.将对话框显示到屏幕上调用new_dialog函数,将以加载的对话框文件中指定名字的对话框按照指定的位置显示到屏幕上,默认位置在屏幕中央。3.初始化控件根据对话框文件中控件的属性值对控件初始化,也可调用set_tile、mode_tile或action_tile等函数对控件初始化。只有经过初始化的控件才有初始的外观、状态、功能。4.激活对话框调用start_dialog函数,对话框处于激活状态,等待并接受用户施加在对话框上的操作,直到某一操作直接或间接地调用了done_dialog函数,对话框才消失。5.用户操作对话框用户可随意进行单击或切换开关、向编辑框键入字符、选取列表的选项或拖动滑动条等操作。控件根据用户的操作,执行相应的动作。6.卸载对话框文件如果用户选择了“OK”、“Cancel”、“Exit”或其他含有退出功能控件的按钮,则先调用done_dialog函数,对话框从屏幕上消失,再调用unload_dialog函数,卸载对话框文件,释放对话框所占用的存储空间。7.对话框向应用程序传递函数“OK”等按钮的动作不但调用了done_dialog函数,同时还设置了对话框退出时的不同状态。应用程序根据对话框退出是的状态决定是否确认对话框当前接纳的数据。AutoCAD的二次开发基本都可以按照以上详细设计步骤进行。否否程序流程图是是否是否是加载对话框pwx.dcl激活对话框Not F载入幻灯片通过对话框输入给定值在AutoCAD界面下选取坐标原点触发DCL控件取得初始值确 定取消绘图主程序在AutoCAD界面上绘出抛物线修 改按取消按钮选取坐标原点开 始结 束dcl_id07.程序源代码(1)对话框的设计:pwx:dialog label = 绘制抛物线; /显示在对话框顶部的标签 :row /引用行 :image /引用图像的控件 width = 30 ; /图像的宽 height =8; /图像的高 key = img_cr ; /图像的关键字 color = -2; /图像的背景色 :boxed_column /引用加框列 label = y=ax2+bx+c; /加框列的标签 :edit_box /引用编辑框1 label = &A(mm); /编辑框1的标签 edit_width = 8 ; /编辑框1的宽度 key = a; /编辑框1的关键字 :edit_box /引用编辑框2 label = &B(mm); /编辑框1的标签 edit_width = 8 ; /编辑框1的宽度key = b; /编辑框1的关键字 :edit_box label = &C(mm); edit_width = 8 ; key = c; ok_cancel;(2)抛物线绘制程序:(defun c:pwx ( ) (setq a 1 b 0 c 0) ;假设变量的值 a=1,b=0,c=0 (setq p0 (getpoint n输入坐标原点) ;在绘图板中选取坐标原点 (setq xp (car p0) yp (cadr p0) ;将坐标原点横坐标的值给xp纵坐标的值给yp (command line (list (- xp 40) yp) (list (+ xp 40) yp) ) ;画X轴(command line (list xp (- yp 40) (list xp (+ yp 40) ) ;画y轴(command pline (list (+ xp 40) yp) w 5 0 (list (+ xp 50) yp) ) ; 画X轴箭头(command pline (list xp (+ yp 40) w 5 0 (list xp (+ yp 50) ) );画 Y轴箭头(setq x0 (+ (car p0) (/ (- b) (* 2 a) ;指定抛物线顶点的横坐标(setq y0 (+ (cadr p0) (/ (- (* 4 a c) (* b b) (* 4 a);指定抛物线顶点的纵坐标 (setq d 2) (command pline (list x0 y0) (while (= d 6) (setq x1 (+ d x0) (setq y1 (+ y0 (+ (* a d d
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:用VLISP与DCL整合实现绘制抛物线(论文+图纸+答辩PPT)机械设计带图纸文档
链接地址:https://www.renrendoc.com/paper/92405475.html

官方联系方式

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

网站客服QQ:2881952447     

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

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

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