清华大学CAD二次开发电子教案第9章.ppt

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

(defun c:ccolor (/ oldcolor newcolor new_cl e el old_cl layname laytab laycolor) (setq oldcolor (getint \n输入待改变的颜色号: )) (setq newcolor (getint \n输入新的颜色号: )) (setq new_cl (cons 62 newcolor)) ;构造新颜色子表 (setq e (entnext)) ;得到第一个图元名 (while e ;当图元的名字有定义时 (setq el (entget e)) ;得到一个图元表 (if(= LINE (cdr (assoc 0 el)));判断该图元是否是直线 (progn ;是直线 (setq old_cl (assoc 62 el)) ;得到老颜色子表(点对) (if (null old_cl);判断颜色子表是否为空 (progn ;没有颜色子表,即颜色随层 (setq layname (cdr (assoc 8 el))) ;得到图层名 (setq laytab (tblsearch LAYER layname)) ;得到指定图层名的图层表 (setq laycolor (cdr (assoc 62 laytab))) ;得到图层的颜色号 (if(= oldcolor laycolor);判断图层的颜色是否与待改的颜色相同 (progn ;相同,该层颜色为被改色 (setq el (cons new_cl el)) ;插入颜色子表 (entmod el);更新图形数据库的el图元表 ))) (progn ;有颜色子表,即颜色独立于图层 (if(= oldcolor (cdr old_cl));判断图元的颜色是否与待改的颜色相同 (progn ;相同,该层颜色为被改色 (setq el (subst new_cl old_cl el)) ;颜色替换 (entmod el) ; 更新图形数据库的el图元表 )))))) (setq e (entnext e));令e等于e的下一个图元的名字 )) 第9章 访问和修改图形数据库 9.1 获取图元的名字 AutoCAD的图形是由多个图形对象组成的,最基本的图形对象称作图元。图元之间是以链表的形式存储的。每个图元都有一个用16进制表示的唯一的名字。 entnext函数可以获取图形库第一个图元的名字或指定图元的下一个图元的名字。 entlast函数可以获取图形库最后一个,即最新生成的图元的名字。 通过entnext函数,可以访问到图形库的每一个图元。 假定本作业依次绘制了一条直线、一个圆和一个圆弧。 (setq e1(entnext));返回图形库第一个图元即这条直线的图元名Entity name: 7ef6ce88,并将其赋给了变量e1。 (setq e2(entnext e1));返回图形库e1的下一个图元即这个圆的图元名Entity name: 7ef6ce90,并将其赋给了变量e2。 (setq e3(entnext e2));返回图形库e2的下一个图元即即这个图弧的图元名Entity name: 7ef6ce98,并将其赋给了变量e3。 (setq e4(entlast));返回图形库最后一个图元即这个图弧的图元名Entity name: 7ef6ce98,并将其赋给了变量e1。 因为圆弧既是第3个图元,也是最后一个图元,所以e3和e4记录的是同一图元的名字。 【例9-1】绘制下图所示的4个带有中心线的螺纹孔。要求首先获取中心线的螺纹孔的图元名,然后复制这些指定名字的图元。 以下表达式首先生成了两条中心线和1个螺纹孔。在生成这些图元的同时获取并保存了这些图元的名字为e1、e2、e3和e4。 (command layer m zhongxin l center ) (command line -5,0 5,0 ) (setq e1(entlast)) (command line 0,-5 0,5 ) (setq e2(entlast)) (command layer m cuxian lw 0.3 ) (command circle 0,0 3) (setq e3(entlast)) (command layer m xixian ) (command arc -3.5,0 0,3.5 0,-3.5) (setq e4(entlast)) 以下表达式调用AutoCAD的copy命令,复制3个带有中心线的螺纹孔。 (command copy e1 e2

文档评论(0)

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

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

1亿VIP精品文档

相关文档