AutoLISP编程实例.doc
16页计算机辅助设计课程设计说明书 第 2 页 共 16 页目 录一、引言…………………………………………… ………………………………2二、总体设计1、实现的方法和主要技术路线………………………………………………32、绘制阀体二维工程图………………………………………………………33、程序流程图…………………………………………………………………4三、详细设计1 定义函数名…………………………………………………………………52 设置图层……………………………………………………………………53 设定参数……………………………………………………………………64 由参数选择图框并填写标题栏……………………………………………65 绘制俯视图…………………………………………………………………76 添加倒圆……………………………………………………………………87 绘制主视图…………………………………………………………………88 左视图………………………………………………………………………99 剖面填充……………………………………………………………………1010 添加螺纹……………………… …………………………… ……………1011 尺寸标注……………………………………………………………………1012 粗糙度的标注………………………………………………………………1213 标注形位公差………………………………………………………………1314 技术要求……………………………………………………………………14四、结论………… …………………………………………………………………14五、心得体会………………… ……………………………………………………15六、使用说明…………………… …………………………………………………16七、参考文献…………………… …………………………………………………16计算机辅助设计课程设计说明书一、引言AutoCAD二次开发的应用之一 —— 典型零件的参数化设计在产品设计中发挥了越来越重要的作用,而参数化设计的重要环节是程序的编写,其在设计开发中占要想当大的比重,是参数化设计的核心,是整个设计任务的最精华的部分。
本文的程序设计以阀体的零件图做了程序的设计参数化设计中有两个必须理解的问题:一、计算机辅助设计中需要对语句命令做参照,并做出优化选择这对计算机的运行速度等都很重要另外,对数学方法也必须有较好的理解,以求的一个好的计算方法二、对图纸参数的选择要做出合理的选择这对于以后的变参操作的正确性和应用性很重要该次设计中采用的AutoCAD二次开发的语言为LISP语言它是AutoCAD中自带的一种高级语言并对用户来是掌握起来比较容易,所以在当今比较流行LISP(Lisp Processing Language)是人工智能领域中广泛采用的一种程序设计语言主要用于人工智能、机器人、专家系统、博弈、定理证明等领域LISP也称为符号语言,因为它处理的对象是符号表达式LISP语言的程序和数据都以符号表达式的形式来表示,因此,一个LISP程序可以把另一个LISP程序作为它的数据来处理参数化设计是CAD中最为重要的研究领域之一参数化技术使得设计者可以通过修改设计参数来驱动零件产品的几何模型与传统的建模方式比较,参数化设计将设计者从琐碎的拼凑几何元素的操作中解放出来,大大简化了用户生成和修改零件模型的操作,提高了设计效率。
AutoCAD是一个通用CAD平台,它不仅具有强大的绘图、编辑功能,而且具有开放的体系结构,允许用户对其进行二次开发,参数化设计在其中占有很重要的比重这其中对基础知识和基本技能都有一定的要求才能灵活运用好编程语言其中包括要求在AutoCAD环境下,可以通过命令行方式、菜单方式(下拉菜单或图标菜单)、工具栏方式实现常规零件的参数化设计过程;所设计的二维工程图,要求实现图层设置、线型线宽设置、颜色设置、尺寸标注、形位公差、粗糙度等常规二维工程图的要求;基本命令如镜像,偏移的灵活使用,等等二、总体设计1、实现的方法和主要技术路线首先用AutoCAD绘制出阀体的二维工程视图,再参照二维工程视图,用AutoCAD的高级语言Auto LISP语言编写程序,实现对阀体的参数化设计编完程序,并修改正确后,用户可在Visual LISP集成开发环境中,也可以在AutoCAD环境中加载、运行Auto LISP程序其实现介绍如下:1) 一旦在Visual LIS的文本编辑器中编写了程序或打开已有的程序就可以加载并运行了运行时需在控制台窗口中,在$提示符后输入用括号括起来的函数名后按Enter键即可2) 在Visual LISP集成开发环境中编写Auto LISP程序并加载、运行证明程序正确后,就可以脱离Visual LISP环境,在AutoCAD环境中运行了。
2、绘制二维工程图图1 二维工程图3、程序流程图设定合适图幅参数绘制主视图、左视图及俯视图剖面填充、尺寸标注、粗糙度及标注图框及标题栏设置定义函数(函数名24hg)设置需求的视图参数图2 程序框图三、详细设计 AutoCAD二次开发的应用之一 —— 典型零件的参数化设计在产品设计中发挥了越来越大的优势,而参数化设计的重要环节是程序的编写,其在设计开发中占要想当大的比重,是参数化设计的核心,是整个设计任务的最精华的部分现将本次开发阀体的参数化设计的程序的详细设计作如下介绍:1、 定义函数名例如:(defun c:24hg( ) )2、 设置图层 根据所选的阀体工程图,需建立中心线、粗实线、细实线、标注线四个图层,分别定义其层名、线型、线宽、颜色,实现方法是在Auto LISP中调用AutoCAD的图层命令,命令格式举例如下:(command "layer" "n" "中心线" "c" 4 "中心线" "l" "center" "中心线" "lw" 0.3 "中心线" "") (command "layer" "n" "粗实线" "c" 7 "粗实线" "l" "continuous" "粗实线" "lw" 0.6 "粗实线" "") (command "layer" "n" "细实线" "c" 1 "细实线" "l" "continuous" "细实线" "lw" 0.3 "细实线" "")(command "layer" "n" "标注线" "c" 3 "标注线" "l" "continuous" "标注线" "lw" 0.3 "标注线" "")当画不同的线型时需调用其对应的图层,其调用有多种命令,现提供两种可供参考,命令如下:(command "layer" "s" "细实线" "")(command "layer" "s" "粗实线" "") (command "layer" "n" "标注线" "")(command "layer" "n" "中心线" "")3、 设定参数 为得到不同的阀体结构,可设定阀体的总长L、总高H、总宽W、进油口内径d1、出油口内径d2等参数。
其命令格式可参考下例:(setq d1 (getreal"\n 输入进油口内径<15>:")) 而对不合理的参数可用if语句来判定并给与提示,其实现命令格式如下: (setq d1 (getreal"\n 输入进油口内径<15>:"))(setq d2 (getreal"\n 输入出油口内径<15>:"))(if (< d1 (distance z3 z4))(princ "ok")(setq d1 (* (distance z3 z4) (/ 15 40))))(if (< d2 (distance z11 z12))(princ "ok")(setq d2 (* (distance z11 z12) (/ 15 30))))4、 由参数选择合适作图图框并填写标题栏 可由参数选择最合适图框,用户输入参数后由计算机再根据参数按比例处理 图框的绘制可用绘制四边形的命令来实现,且全屏显示如:(command "layer" "s" "细实线" "") (setq width (getreal"\n输入图幅宽度(297):")) (setq highty (getreal"\n输入图幅高度(210):")) (command "limits" '(0 0) p0 "zoom" "a") ;全屏显示 (command "rectang" '(0 0) p0) (command "offset" "5" p0 "@-20,-20" "") 而标题栏的绘制可用直线及偏移命令来实现例如:(command "line" p5 p6 p7"") (command "offset" 20 p9 p4 "") (command "offset" 45 p9 p4 "") (command "offset" 15 p8 p3 "") (command "offset" 30 p8 p3 "") (command "offset" 55 p8 p3 "") (command "line" p4 p3 "") (command "line" p9 "@-60,0" "") (command "line" p8 "@55,0" "")标题栏填写之前须对文字样式进行定义及转化可由如下命令实现:(command "style" "hz" "仿宋_GB2312" 7 0.7 0 "n" "n" "n")标题栏文字的填写可用如下命令:(command "style" "hz" "仿宋_GB2312" 7 0.7 0 "n" "n" "n") (command "mtext" p1 "j" "mc" p6 " " "") (command "mtext" p5 "h" 4 "j" "mc" "@15,-8" "比 例" "") (command "mtext" p8 "h" 4 "j" "mc" "@15,-8" "1 : 1" "") (command "mtext" "from" p5 "@15,0" "h" 4 "j" "mc" "@15,-8" "数 量" "")5、绘制俯视图为得到合理的视图布局,可俯视图画起,取其中间圆心的点(f0)来确定,再确定工程各视图上的基点(z0),可由下述程序实现:(setq p10 '(0 0))(setq x1 (/ (* 90 width) 297) y1 (/ (* 48 highty) 210))(setq f0 (polar (list 0 0) (angle (list 0 0) (list x1 y1)) (distance (list 0 0) (list x1 y1)))) 再由该基点定义主、左视图上各个点,为了方便,对对称的图形可定义一半的点,再由镜像来完成另一半,例如程序:(command "line" f7 f6 "") (command "line" f6 f5 "")(command "line" f8 f9 "") (command "lin。





