第7章 二维几何建模方法.ppt

  1. 1、本文档共72页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 二维几何建模方法

5 defun函数 (有 2 种用法) 用作用户自定义函数 格式: (defun 函数名 形参表 表达式 ?) 函数名是所定义函数的名字; 形参表是该函数的变量列表; 表达式是用户所定义的函数的内容 例如: 编程求解:F=a0+a1x+a2x2+a3x3 其中:a0=a1=a2=a3=x=1 代码如下: (defun c:lwx() (defun lcx (a0 a1 a2 a3 x) ;;函数定义 (+ a0 (* a1 x) (* a2 (* x x)) (* a3 (expt x 3))) ) (command (lcx 1 1 1 1 1)) ;;调用函数 ) 执行:在AutoCAD命令行:lwx 返回 4 定义AutoCAD的新命令 格式 (defun C:函数名 (形参表) 表达式 ?) 如上例:定义了新的 lwx 命令 又如:通过三点绘圆弧和三角形 (defun c:Mydraw() (setq p1 (getpoint \n输入第一点:)) (setq p2 (getpoint \n输入第二点:)) (setq p3 (getpoint \n输入第三点:)) (command arc p1 p2 p3) ;通过3点,即起点、终点和圆心绘圆 (command “line” p1 p2 p3 “c”) ;通过3点绘三角形 ) 函数还有很多,请参考有关书籍 1) 用AutoLISP实现参数化绘图 对一类几何形状相同而大小尺寸常变的图形,利用给出图形充要尺寸参数,由AutoCAD自动完成图形绘制的方法称为参数化绘图。它使得多种设计方案的对比工作能够高效率的完成。也使得调用零件图库可参数化进行(给参数后由程序自动画出零件,而不是事先画好零件后调用图形)。图1参数化绘图的例图 如图1,矩形的变参数有L、W,只要给出L、W,矩形的形状大小就确定了。此矩形画在何位置需给出一个基点bp。   AutoLISP程序如下:   (defun box(bp l w / sp)  (command pline bp    (setq sp (polar bp 0 l ))   (setq sp (polar sp (/ pi 2.0) w))   (setq sp (polar sp pi l))    c ) 图1 参数化绘图的例图 编写和使用AutoLISP应用程序 启动AutoCAD并在【工具】菜单下依次选择【AutoLISP】|【VisualLISP编辑器】进入VLISP集成开发环境,再选择【文件】|【新建文件】将程序输入,再选择【文件】|【加载文件】出现对话框如图2所示。在【查找范围】下拉列表中选定保存文件的位置,在【文件名】文本框中键入“box”后单击【打开】按钮将文件保存。完成了LISP源程序的编辑与保存任务,如何调用这个程序呢?【关闭】VLISP返回到AutoCAD, 在命令提示行键入: (box ’(100 100) 200 150)↙ 屏幕上自动画出以点(100,100)为左下角的一个200×150的矩形。 试试改变上面的参数会得到一系列不同的矩形。    图2 保存文件对话框 2)给AutoCAD增加命令 用LISP给AutoCAD增加一条命令实在是轻而易举, 只要在defun函数定义中遵守如下两条规则即可: (1) 函数名写成C:XXX的形式,XXX即为AutoCAD命令名。 (2) 函数定义中不允许带有形参,只允许有局部变量或为空表。 【例14.1】 现在我们就将前面定义的box函数修改为AutoCAD的一条命令。 首先,重新编辑box程序如下: (defun C:box(/ bp l w sp) (setq bp (getpoint “输入基点:”)) (setq l (getreal “输入矩形边长:”)) (setq w (getreal “输入矩形另一边长:”)) (command pline bp (setq sp (polar bp 0 l )) (setq sp (polar sp (/ pi 2.0) w)) (setq sp (polar sp pi l)) c ) ) 由于不能通过实参与形参的对应来传递数值, 改为直接键盘输入了。 之后,要在AutoCAD中使用此函数,还需经过

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档