路过的高手,帮帮忙啊!
<p><font face="Verdana">;;;修改 文本、属性块、尺寸<br/>(defun c:SZ (/ e1) <br/>(setvar "cmdecho" 0)(setvar "pickbox" 21)<br/>(setq e1 (entget (car (setq s1 (entsel "选择编辑对象:")))))<br/>(if (= (cdr (assoc 0 e1)) "TEXT") (command "DDEDIT" s1))<br/>(if (= (cdr (assoc 0 e1)) "MTEXT") (command "DDEDIT" s1))<br/>(if (= (cdr (assoc 0 e1)) "INSERT") (command "DDATTE" s1))(princ))</font></p><font face="Verdana"><p><br/>我只想达到这样的目的: <br/>(setq e1 (entsel "\n请选择需要编辑的文本、属性块、尺寸:"))<br/>如果选择的对象为文本,则(command "DDATTE" );<br/>如果选择的对象为块,则(command "DDATTE" );<br/>这个程序谁能帮忙加个尺寸类型的选择啊,<br/>就是说如果我选择的类型是“尺寸”哦: '((0 . "DIMENSION")) </p>
<p>那么我就执行以下这些代码:<br/>(defun TDZ (/ e1 ds)<br/>(SETQ DS (getstring (strcat "\n 输入替代值:" )))<br/>(if (= DS nil ) (command "dim1" "new" (strcat DS "<>{}{}") e1 ""))<br/>(if (/= DS nil ) (command "dim1" "new" (strcat DS "{}{}") e1 ""))<br/>(princ))</font></p> <p><font face="Verdana">用cond判断比较好!如:</font></p>
<p><font face="Verdana">(cond ((= (cdr (assoc 0 e1)) "DIMENSION")<br/> (TDZ)<br/> )</font></p>
<p>((= (cdr (assoc 0 e1)) "TEXT")</p>
<p>...</p>
<p>)</p>
<p>((= (cdr (assoc 0 e1)) "MTEXT")</p>
<p>...</p>
<p>)</p>
<p>)<br/></p> 本帖最后由 作者 于 2010-10-11 18:37:28 编辑 <br /><br /> <p><em><strong>谢谢你我又学到一个好方法</strong></em></p> <p>再问个弱智的问题,如果我(setq e1 (entsel "\n请选择需要编辑的文本、属性块、尺寸:"))<br/>故意回车或空格(空选),则<font face="Verdana">(if(= e1 nil ) (TDZ)).说明一下,这里的(TDZ)可是另一个程序。</font></p>
<p><font face="Verdana">该如何改动啊<br/></p></font> <p><font face="Verdana">(cond ((= (cdr (assoc 0 e1)) "DIMENSION")<br/> (TDZ)<br/> )</font></p>
<p>((= (cdr (assoc 0 e1)) "TEXT")</p>
<p>...</p>
<p>)</p>
<p>((= (cdr (assoc 0 e1)) "MTEXT")</p>
<p>...</p>
<p>)</p>
<p>((= e1 nil ) </p>
<p>(TDZ)</p>
<p>)</p>
<p>)<br/></p><br/> <p><font face="Verdana"> 我空选时还是一样啊 !Error: 参数类型错误: lentityp nil</font></p>
<p> </p>
<p>另一个TDZ 代码如下:</p>
<p><font face="Verdana">(defun TDZ ()<br/>(setvar "pickbox" 21)</font></p>
<p><font face="Verdana"><font face="Verdana">(setvar "PICKSTYLE" 1);</font></font></p>
<p><font face="Verdana">(command "GROUP")</font></p>
<p><font face="Verdana">(princ))</font></p> <p>把</p>
<p>((= e1 nil ) </p>
<p>(TDZ)</p>
<p>)</p>
<p> </p>
<p>放在cond第一项判断</p> <p>我就是这样做的<font face="Verdana">((= e1 nil ) (TDZ))</font></p>
<p>但是就不能继续下去 Error: 参数类型错误: lentityp nil</p>
<p> </p> <p><font face="Verdana">把这句拆开!</font></p>
<p><font face="Verdana">(setq e1 (entget (car (setq s1 (entsel "选择编辑对象:")))))<br/>为:</font></p>
<p><font face="Verdana">(setq e1 (car (setq s1 (entsel "选择编辑对象:"))))</font></p>
<p><font face="Verdana">(if e1 (setq e1 (entget e1)))<br/></p></font> <table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div id="textstyle_3" style="FONT-SIZE: 12pt; OVERFLOW: hidden; WORD-BREAK: break-all; TEXT-INDENT: 0px; WORD-WRAP: break-word">
<p><img title="明经通道" alt="" src="http://bbs.mjtd.com/images/emot/em306.gif" align="middle" border="0"/><em><strong>谢谢你我又学到一个好方法</strong></em></p></div></td></tr></tbody></table>
页:
[1]