CAD二次开发电子教案-第2章数据类型函数.pptVIP

CAD二次开发电子教案-第2章数据类型函数.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CAD二次开发电子教案-第2章数据类型函数

【例2-1】定义一个加10函数,源代码如下: (defun add10(x) (setq x(+ 10 x)) ) 或者: (defun add10(x) (+ 10 x) ) 该函数的函数名是add10,只有一个变元x,没有局部变量说明,它返回表达式(setq x(+ 10 x))或(+ 10 x)的值(二者是相等的)。 【例2-2】定义一个已知圆柱体的半径和高度,计算其体积的函数。源代码如下: (defun volume(r h / v) (setq v(* r r pi h)) ) 该函数的函数名是volume ,有两个变元r(半径)和h(高度),有一个局部变量v,它返回表达式(setq v(* r r pi h))的值。 2.5.2 调用AutoLISP函数 AutoLISP以表的形式调用函数,其格式如下: (函数名 [变元]…) 表的第一个元素是函数名,其余是该函数所要求的变元,变元的数量可能为0,也可能任意多个,这取决于具体函数。例如, (sqrt 4),调用的函数名为sqrt(求平方根),函数的变元是4、只有一个变元; (+ 1 2 3),调用的函数名为“+”(加),函数的变元是1、2、3,共有3个变元。 每个变元还可以是一个表达式。例如: (sqrt (+ 1 2 3))。 每调用一个函数,都会得到函数的返回值。例如, (sqrt 4) , 返回2 (+ 1 2 3) , 返回6 有些函数返回逻辑常数T或nil,例如, ( 1 2), 返回T; (not 1),返回nil。 调用自定义的函数与调用系统提供的函数的格式相同。例如, (add10 3) (setq y(add10 (+ 2 3))) (volume 12.5 20)1) 2.5.3 递归调用AutoLISP函数 AutoLISP可以在一个函数的内部定义另一个函数,可以递归定义和调用函数。 【例2-3】定义阶乘函数 阶乘的定义是,0的阶乘等于1,n的阶乘等于n?(n-1)的阶乘。程序的源代码如下: (defun factorial(x) (if (= x 0) 1 (* x (factorial (- x 1))) ) ) 2.5.4 调用AutoCAD命令 AutoLISP用command函数调用AutoCAD命令,其格式如下: (command “AutoCAD命令” 命令所需的数据 …) 【例2-4】绘制以(2,4)为圆心,5为半径的圆。 (command circle 2,4 5)或者 (command circle (2 4) 5) 【例2-5】已知p1、p2、p3为不在同一直线上的三个点,利用这三个点画圆。 (command circle 3p p1 p2 p3) 【例2-6】画从点p1(0,0)到点p2(10,0)的一段直线。 (command line 0,0 10,0 )或者 (command line (0 0) (10 0) )或者 (command line (list 0 0) (list 10 0) )或者 (command line“ p1 p2 );假定p1、p2是两个点 注意:因为绘制直线时用空回车或空格响应 “Specify next point or [Undo]:”提示才能结束line命令,所以在最后一个点的后面要增加两个双引号,代表一个回车或空格。 2.5.5 定义AutoCAD命令 定义AutoCAD命令用defun函数。格式如下: (defun C:AutoCAD命令名 (/ 局部变量... )表达式 ...) 定义AutoCAD命令与定义函数基本相同,不同之处是: ① 命令名前加“C:”。 ② 没有变元,但可以有局部变量说明。 此外要注意所定义的AutoCAD命令不应与现有的AutoCAD命令同名。 【例2-7】定义输入矩形的对角点绘制矩形的命令。 源代码如下: (defun c:rect1( / p1 p2 p3 p4) ;p1、p2、p3、p4是局部变元 (setq p1 (getpoint \n输入矩形的一个角点 )) (setq p3 (getcorner p1 \n输入矩形的另一个角点: )) (se

文档评论(0)

zijingling + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档