求助对齐(有源程序)请多帮忙啊
本帖最后由 作者 于 2005-12-15 14:55:02 编辑 <br /><br /> <P>(defun c:xg1(S EE SS / DAT DAT0 EN ES N PT PT10 PTX ) <BR>(setq s(getstring "\n选择对齐方式[左对齐(l)/垂直对齐(a)/水平对齐(h)]:")) <BR> (if(setq ee (entsel "\n选择要对齐的基准线:"))<BR> (if (setq ss (SSGET '((0 . "TEXT"))))<BR> (cond<BR> ((= s "h")<BR> ((COMMAND "_justifytext" (SSGET "X" '((0 . "TEXT"))) "" "mc")<BR> (setq es(car ee) dat0 (entget es) pty (caddr (assoc 11 dat0)) n 0)<BR> (repeat (sslength ss)<BR> (setq en (ssname ss n) n (1+ n) dat (entget en)<BR> pt10 (assoc 11 dat) pt (cdr pt10)<BR> dat (subst (cons 11 (list (car pt) pty)) pt10 dat)<BR> )<BR> (entmod dat)<BR> )<BR> )<BR> )<BR> ((= s "a")<BR> ((COMMAND "_justifytext" (SSGET "X" '((0 . "TEXT"))) "" "mc")<BR> (setq es (car ee) dat0 (entget es) ptx (cadr (assoc 11 dat0)) n 0)<BR> (repeat (sslength ss)<BR> (setq en (ssname ss n) n (1+ n) dat (entget en)<BR> pt10 (assoc 11 dat) pt (cdr pt10)<BR> dat (subst (cons 11 (list ptx (cadr pt))) pt10 dat)<BR> )<BR> (entmod dat)<BR> )<BR> )<BR> )<BR> ((= s "l")<BR> ((COMMAND "_justifytext" (SSGET "X" '((0 . "TEXT"))) "" "l")<BR> (setq es (car ee) dat0 (entget es) ptx (cadr (assoc 10 dat0)) n 0)<BR> (repeat (sslength ss)<BR> (setq en (ssname ss n) n (1+ n) dat (entget en)<BR> pt10 (assoc 10 dat) pt (cdr pt10)<BR> dat (subst (cons 10 (list ptx (cadr pt))) pt10 dat))<BR> (entmod dat)<BR> )<BR> )<BR> )<BR> )<BR> ) <BR>)<BR> )<BR>各位高手看看哪出现问题了 </P> 为什么总说参数太少啊? 如果我把全局变量和局部变量全部删掉,为什么第一遍执行不成功,再执行一次就可以呢? <P>问题已解决:)我把全局变量和局部变量全删掉了,不过这样有什么后果吗?</P> <P>我想后果就是执行完程序之后,这些变量的值仍驻留在内存里。</P><P>如果你在同一幅图中再执行含有同样变量名的程序时,如果程序中没有给它们赋初值就会出错。</P> <P>是这样啊,那是不是我划分的全局变量和局部变量不对啊?</P> <P>c:xg1(S EE SS / DAT DAT0 EN ES N PT PT10 PTX ) 应改为:</P>
<P>defun c:xg1( / DAT DAT0 EN ES N PT PT10 PTX S EE SS)</P>
<P>“/”前面是参数,后面是变量,不定义就是全局变量</P>
页:
[1]