hanyu_gis 发表于 2007-8-2 19:57:00

这个程序怎么不能完美运行???

<p>;;<br/>;;;&nbsp; 解冻指定冻结的图层<br/>;;;</p><p>(defun *error*(msg)<br/>&nbsp;(princ "\n你按了取消键,")<br/>&nbsp;(princ msg) (princ "!")<br/>&nbsp;(princ)<br/>)</p><p></p><p><br/>(defun c:layfrzon(/ layname layerentname ennewtable)<br/>&nbsp; (setvar "cmdecho" 0)<br/>&nbsp; (setq layname (getstring "\n请输入想要解冻的图层名&lt;ESC退出&gt;:"))<br/>&nbsp;(tblnext "layer" T)<br/>&nbsp;(if (/= "" layname) <br/>&nbsp; &nbsp;(progn (setq layerentname (tblobjname "layer" layname))<br/>&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;(setq&nbsp; ennewtable (entget layerentname))<br/>&nbsp; &nbsp;&nbsp;(if (= (cdr (assoc '70 ennewtable)) 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(progn&nbsp;(entmod (subst (cons 70 0) (assoc '70 ennewtable) ennewtable))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(COMMAND "REGENALL")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(princ (strcat "\n图层&lt;" layname "&gt;已经解冻!!!"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(princ)<br/>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;)<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (progn (princ (strcat "\n你输入的图层&lt;" layname "&gt;不是冻结状态!!!"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(princ)<br/>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;)<br/>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;)<br/>&nbsp;&nbsp; &nbsp;&nbsp;)<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;(progn &nbsp;(PRINC "\n没有输入图层名或指定的图层名不存在,请输入正确的图层名,退出按ESC键!!!")<br/>&nbsp;&nbsp; &nbsp;&nbsp;(princ)<br/>&nbsp;&nbsp;)<br/>&nbsp;)<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;<br/>&nbsp;<br/>)</p><p></p><p></p><p>这个程序本来是想根据用户输入解冻指定的图层,但现在问题是:</p><p>解冻操作时,也都可以解冻,但只有第一个可以显示出来,以后其它的都不能显示出来。</p><p>请高手帮我看下, 这是怎么回事。</p><p>在此表示感谢了!</p>

王咣生 发表于 2007-8-2 21:41:00

<p>;;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (entmod (subst (cons 70 0) (assoc '70 ennewtable) ennewtable))</p><p>替换为<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "layer" "t" layname "")</p>

hanyu_gis 发表于 2007-8-5 20:50:00

<p>可以告诉我为什么吗?</p><p>我想用内部函数啊。</p><p>如果用命令,前面也不要这样麻烦了啊。</p><p>唉。</p>
页: [1]
查看完整版本: 这个程序怎么不能完美运行???