ak50 发表于 2005-12-15 10:02:00

求助对齐(有源程序)请多帮忙啊

本帖最后由 作者 于 2005-12-15 14:55:02 编辑 <br /><br /> <P>(defun c:xg1(S EE SS / DAT DAT0&nbsp; EN ES N PT PT10 PTX )&nbsp; <BR>(setq s(getstring "\n选择对齐方式[左对齐(l)/垂直对齐(a)/水平对齐(h)]:"))&nbsp; <BR>&nbsp;&nbsp; (if(setq ee (entsel "\n选择要对齐的基准线:"))<BR>&nbsp;&nbsp; (if (setq ss (SSGET '((0 . "TEXT"))))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (cond<BR>&nbsp;((= s "h")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((COMMAND "_justifytext" (SSGET "X" '((0 . "TEXT"))) "" "mc")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq es(car ee) dat0 (entget es) pty (caddr (assoc 11 dat0)) n 0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (repeat (sslength ss)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq en (ssname ss n) n (1+ n) dat (entget en)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pt10 (assoc 11 dat) pt (cdr pt10)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dat (subst (cons 11 (list (car pt) pty)) pt10 dat)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (entmod dat)<BR>&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;)<BR>&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((= s "a")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((COMMAND "_justifytext" (SSGET "X" '((0 . "TEXT"))) "" "mc")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq es (car ee) dat0 (entget es) ptx (cadr (assoc 11 dat0)) n 0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (repeat (sslength ss)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq en (ssname ss n) n (1+ n) dat (entget en)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pt10 (assoc 11 dat) pt (cdr pt10)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dat (subst (cons 11 (list ptx (cadr pt))) pt10 dat)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (entmod dat)<BR>&nbsp;&nbsp;)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((= s "l")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((COMMAND "_justifytext" (SSGET "X" '((0 . "TEXT"))) "" "l")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq es (car ee) dat0 (entget es) ptx (cadr (assoc 10 dat0)) n 0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (repeat (sslength ss)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq en (ssname ss n) n (1+ n) dat (entget en)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pt10 (assoc 10 dat) pt (cdr pt10)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dat (subst (cons 10 (list ptx (cadr pt))) pt10 dat))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (entmod dat)<BR>&nbsp;&nbsp;)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp; )<BR>&nbsp;) <BR>)<BR>&nbsp; )<BR>各位高手看看哪出现问题了 </P>

ak50 发表于 2005-12-15 13:42:00

为什么总说参数太少啊?

ak50 发表于 2005-12-15 15:03:00

如果我把全局变量和局部变量全部删掉,为什么第一遍执行不成功,再执行一次就可以呢?

ak50 发表于 2005-12-15 16:58:00

<P>问题已解决:)我把全局变量和局部变量全删掉了,不过这样有什么后果吗?</P>

lazybug 发表于 2005-12-15 17:10:00

<P>我想后果就是执行完程序之后,这些变量的值仍驻留在内存里。</P>
<P>如果你在同一幅图中再执行含有同样变量名的程序时,如果程序中没有给它们赋初值就会出错。</P>

ak50 发表于 2005-12-16 08:07:00

<P>是这样啊,那是不是我划分的全局变量和局部变量不对啊?</P>

蓝云 发表于 2005-12-16 10:36:00

<P>c:xg1(S EE SS / DAT DAT0&nbsp; EN ES N PT PT10 PTX ) 应改为:</P>
<P>defun c:xg1( / DAT DAT0&nbsp; EN ES N PT PT10 PTX&nbsp; S EE SS)</P>
<P>“/”前面是参数,后面是变量,不定义就是全局变量</P>
页: [1]
查看完整版本: 求助对齐(有源程序)请多帮忙啊