357785513 发表于 2008-12-19 21:40:00

文字或属性块连续增量拷贝程序

<p>大哥们.看看这个文字或属性块连续增量拷贝程序为什么出错呀</p><p>(defun c:nn( / asc e1 en k l p1 p2 sn st st1 st2)<br/>&nbsp; (setq *error* nil)<br/>&nbsp; (command "undo" "g") <br/>&nbsp; (princ "\n欢迎使用文字或属性块连续增量拷贝程序! GYSJY&nbsp; 2008.12.25")<br/>&nbsp; (if (setq sn (entsel "\n点取物体:"))<br/>&nbsp;&nbsp;&nbsp; (progn <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq p1 (cadr sn) p2 t sn (car sn)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (or (= "TEXT" (to 0))(and p2 (to 66)(= "INSERT" (to 0))))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (tqwz)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (tqtxt)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq l (1+ l ))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (while p2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq p2 (getpoint "\n下一点:" p1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "copy" sn "" p1 p2)&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq sn (entlast) p1 (to 10) en (entget sn))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (tqwz)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq asc (ascii st))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if p2 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (and (= (strlen st) 1) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (or (and (&gt; asc 64) (&lt; asc 90))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (and (&gt; asc 96) (&lt; asc 122))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );判断字符串是否是单个字母<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq k (if (or (= asc 78)(= asc 72))(+ asc 2)(1+ asc));排除字母I,O<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; st (chr k)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;如果字符串是单个字母,则按字母顺序增长&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq st2 (substr st l) st2 (tost2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; st (strcat st1 st2)&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) ;按数字增长<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (= "TEXT" (to 0))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq e1 (subst (cons 1 st) (assoc 1 en) en))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (entmod e1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );修改文字<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq e1 (entget (entnext (cdr (car en)))))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq e1 (subst (cons 1 st) (assoc 1 e1) e1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (entmod e1)(entmod en)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );修改属性<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (princ st)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (princ "\n&nbsp;&nbsp; ***你所点取的图元不是属性块或文字!本程序只拷贝带属性的块或文字。***") <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp; (command "undo" "e")<br/>&nbsp; (princ)<br/>)<br/></p>

ding9736 发表于 2008-12-20 17:01:00

[求助]高手请进,帮我看下这个程序

本帖最后由 作者 于 2008-12-20 17:04:12 编辑 <br /><br /> <p>楼主这是自己写的呢还是copy别人 的程式呀?</p><p>(tqwz)和 (tqtxt)子程式在哪儿呀?</p><p>若有,要放在 </p><p>(setq *error* nil)<br/>&nbsp; (command "undo" "g") </p><p>语句之前加载<br/></p>而且“to”函数在使用之前也没被定义

357785513 发表于 2008-12-20 23:45:00

<p>不行了不行了.格下真是火眼真睛.没有办法,这也让你给看出来了,</p><p>讲老实话.是我需要这样一个程序.但我自己又没有.也不会写.到网上一搜.</p><p>搜了好长时间呀,.才搜到.弄到自己电脑上.结果用不了.真没有办法.</p><p>我们做属性块时.一般都会做三到五个属性值.有时会更多.我们要改那些值,</p><p>要手动去改的话有就麻烦了.那怕一个属性块里只有一个属性值要改都改死人.更</p><p>何况我们这种属性块有多个属性值.所以就希望高手们能写一个批量改多项属性值的</p><p>的程序呀.</p>

liminnet 发表于 2008-12-21 17:18:00

357785513 发表于 2008-12-21 22:55:00

<p>没有那现在这样的程序呀,真的没有/找了好多回了</p>

gysjy 发表于 2008-12-31 18:25:00

357785513发表于2008-12-21 22:55:00static/image/common/back.gif没有那现在这样的程序呀,真的没有/找了好多回了

<p></p><p>请到<a href="http://www.xdcad.net/forum/showthread.php?s=&amp;threadid=656994&amp;perpage=15&amp;display=&amp;pagenumber=1">http://www.xdcad.net/forum/showthread.php?s=&amp;threadid=656994&amp;perpage=15&amp;display=&amp;pagenumber=1</a>下载。</p><p><img src="http://p4.xdcad.net/forum/file_upload/587631_blockcopy.gif" border="0" alt=""/></p>

上善如水 发表于 2013-11-5 14:31:51

你好,不知你这个问题解决没,我也需要这个功能的LISP,如果解决了能否将源码发到我邮箱1332982303@qq.com,谢谢!!!
页: [1]
查看完整版本: 文字或属性块连续增量拷贝程序