AUTOCAD中的几个LISP程序.docVIP

  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文档。上传文档
查看更多
AUTOCAD中的几个LISP程序

AUTOCAD中的几个LISP程序 李敬 -------------------------------------------------------------------------------- 机械制图中,常常得做许多大量的重复工作。下面这几个用Lisp编写得程序,是我画图时经常使用的,节省了我的不少时间,希望也能帮助广大使用AUTOCAD的工程师们。 1.自动求和 机械制图中材料表的填写是毕不可少的,填写完后还需根据材料表求出总重量。一般一幅图中常有几十个物体,将这些重量一项一项相加个繁琐的过程,而且容易出错。使用下面这个程序,只需用鼠标选定需要相加的数,其和就会自动的显示在命令行中。 因为在AUTOCAD中没有“数”这种实体,所有的数都以实体“TEXT”存在,所以程序中使用了“atof”函数,将以字符串形式表示的数转换为实数。 (defun c:total( / cmdmode sset ssl nsset temp ssl1 total) (if *error* quit) (setq cmdmode (getvar cmdecho)) (setvar cmdecho 0) (prompt \nSelect numbers to add: ) (setq sset (ssget)) (if (null sset) (princ \nError: Nothing selected!\n) ;过滤出选中的“text”实体,并报告有多少“text”实体被选中。 (progn (setq ssl (sslength sset)) (setq nsset (ssadd)) (while ( ssl 0) (setq temp (ssname sset (setq ssl(1- ssl)))) (if (= (cdr (assoc 0 (entget temp))) TEXT) (ssadd temp nsset) ) ) (setq ssl (sslength nsset)) (print ssl) (princ text entities are found.) ;选出所有可转化为数的“TEXT”,并求和。 (setq total 0) (setq ssl1 ssl) (while ( ssl 0) (setq temp (ssname nsset (setq ssl (1- ssl)))) (setq number (atof(cdr(assoc 1 (entget temp))))) (if (= 0 number) (setq ssl1 (1- ssl1)) (setq total (+ total number)) ) ) ;显示和及加数的个数,便于用户检查是否多选或漏选。 (princ \nThe total is ) (princ total) (princ of the ) (princ ssl1) (princ numbers\n) ) ) (setvar CMDECHO cmdmode) ) (princ \n\tc:total loaded. Start command with total.) 2.自动生成递增数 用CAD作图时,常需画一些距离一定、数值递增的数。如填写材料表时,“序号”一栏就需填写由下至上的递增数。通常,我们先用“text”命令写一个数,再用“array”命令将其按一定方向阵列,最后用“edit”命令一个一个的改正。下面这个程序可将你从这单调重复的动作中解放出来。 (defun c:arn( / ent temp d a number yorn) (setq cmdmode (getvar cmdecho)) (setvar cmdecho 0) ;选择一个实体,并判断能否作为生成递增数的初始数。 (setq ent (entsel \nSelect number to arn: )) (if (null ent) (progn (princ \nError: Nothing selected!\n) (exit) ) ) (setq temp (entget (car ent))) (if (= (cdr (assoc 0 temp)) TEXT) ;输入生成递增数的个数、数间距及其方向。 (progn (setq number(getint Number of texts:)) (setq d(getdist Dist between texts:)) (setq a (atoi(cdr(assoc 1 temp))))

文档评论(0)

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

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

1亿VIP精品文档

相关文档