AUTOLISP编程心得_2.pdfVIP

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

[转帖]Autolisp编程心得 养成良好的书写习惯 众所周知,Lisp是一种表结构语言,括号必须成对出现,在调试时往往为 遗漏了一个括号大费周折,所以,养成一个好的编程习惯是学好Lisp所必须的。 ⑴选择一个较好的编辑器,这是一个基本条件,建议使用VisualLisp编辑 器或Lisplink等专用编辑器,此类编辑器可以对函数突出显示。 ⑵按Lisp (DCL)专有格式书写,并经常对程序进行 “格式化”,及时发现 语法错误,并有利于调试是查找错误。 ⑶使用自定义函数,并辅助以适当得注释,在较大程序中按功能使用自定义 函数可以使得程序条理化。 函数中循环与转移的使用 在高级语言中一般有类似 “goto”的语句实现转移,在AutoLisp 中没有转 移的函数。我们可以使用自定义函数实现转移,用if及cond辅助实现条件转移。 当我们需要实现在满足一定条件时进行循环的功能,一般使用while函数,但有 时需要判断的条件较复杂时,使用while函数往往不能实现或使得程序不够简 洁。这时我们可以使用 “转移”,将需要实现的功能作为 (子)函数,使用恰当, 可以在程序中任意 “转移”。一般认为,当一段代码在不同处重复使用时,我们 才会使用子函数定义,其实,利用函数的更大的优点是使得程序更加结构化。这 就使得我们不必拘泥于程序中的循环语句,而使用函数的循环调用,辅助适当的 判断,实现 “转移”,如A-B-A。当然也可以进行自身调用,构成一个 “标准 的”循环。如例一中,“程序执行完毕返回”与 “空选返回”两种情况如果使用 循环语句,其条件是完全不同的,而将函数本身作为子函数调用,程序简洁明了。 3.initget函数中关键字 “”(空格)的使用 空格可以被用作关键字,一般多用来定义鼠标右键退出。 ⑴当用户输入函数不支持控制位 (如entsel、nentsel、nentselp)时,可 直接使用 “(initget )”。 ⑵当用户输入函数支持控制位 (如getpoint等)时,可使用“(initget1 )”禁止空输入,而将回车等空输入作为关键字使用。 ⑶当同时使用其它关键字时,应该将空格作为一系列关键字的最后一个,用 “(initget C )”(两个空格)调用,否则无效。见例一。 ************************************************ ;;例一 (defun ett_ct() (initget C ) ;关键字 “C”及空格 (setq s0 (entsel \n设置颜色C / 选取文本:)) (cond ( ( s0 C) (ett_col)) ;转设置颜色子函数 ( ( s0 ) nil) ;空格退出 ( (and ( (type s0) LIST) ;选择实体 ( (cdr (assoc 0 (entget (car s0)))) TEXT) ;判别文本 ) ... ;操作内容 (ett_ct) ;编辑后返回选择 ) (t (ett_ct)) ;空选返回选择 ) ) ************************************************ 有时需要进行复杂的判断,使用如 “( s0 )”语句可能不能准确判别输 入的空格关键字与空选择,可以使用 “( (type s0) STR)”语句。 4.Lisp 的暂停与while的特殊使用 Lisp一般在交互输入时才会暂停,如果只需要实现屏幕显示暂停,可使用 grread函数,grread函数对所有合法的输入设备均会作出反应,有时我们只希 望对键盘有反应,可使用while函数进行循环。 ******************* (princ \nPress ENTER to continue:) (while (/ (car (grread)) 2)) ******************* while 用于满足一定条件的循环,其标准语法为:(while testexpr [expr...]) 其中expr解释为 “在testexpr为nil之前要求值的一个或多个表 达式”,为可选项(在R14之前没有方括号,

文档评论(0)

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

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

1亿VIP精品文档

相关文档