sf_elite 发表于 2008-6-12 09:08:00

怎样在LISP中修改标注样式

怎样在LISP中修改标注样式,是修改不是样式替代!就是说关了以后整个CAD图中的标注全部自动更新,替代不会自动更新,只会在以后的标注中起作用。请问怎么才能用LISP实现,不打开那个烦死的对话框!比如说我想把文字尺寸由3.0改为2.0,怎么编程,谢谢!

yxp 发表于 2008-6-12 09:54:00

<p>;;试试我写的这个程序,可以轻松修改标注内容</p><p>;;支持批量修改哦。</p><p>(setq txt_de "100")<br/>(defun c:de (/ ss txt)<br/>&nbsp;(setvar "cmdecho" 0)&nbsp;&nbsp; (princ "\n 选择需修改的标注:")<br/>&nbsp;(setq ss (ssget))<br/>(if ss (progn (princ "\n 请输入字符(空格=恢复)&lt;\"")(princ txt_de)<br/>&nbsp;(setq txt (getstring T "\"&gt;:"))<br/>(cond ((= txt " ")(setq txt ""))<br/>&nbsp;((= txt "")(setq txt txt_de))<br/>&nbsp;(T (setq txt_de txt))<br/>)<br/>(command "dimedit" "n" txt "p" "")<br/>))(princ)<br/>)<br/>(princ "标注修改程序 命令de")(princ)</p>

sf_elite 发表于 2008-6-12 10:18:00

谢谢老兄回复,不是我想要的结果,继续等待中。。。。。。。

yxp 发表于 2008-6-12 10:54:00

<p>简单修改一下就成了,等现成的啊。</p>

sf_elite 发表于 2008-6-12 11:26:00

可能你理解错了,我意思是说把所有标注高度为3.0的尺寸全部改为标注高度为2.0的尺寸,不是把3.0改为2.0,我当然知道打开那个标注样式可以改了,怎么在不打开那个框的情况下用LISP实现,而且要在图面上立马更新成功,不用dim-update那个命令,谢谢

huguhu2000 发表于 2008-6-18 11:49:00

<p>(defun c:changdim()<br/>&nbsp;&nbsp; (setq currentLay (getvar "dimstyle"))</p><p>;;设置标注变量<br/>;;本例仅设置字体大小的变量,如要修改其他变量,在此处添加<br/>&nbsp; (setvar "DIMTXT"&nbsp; (getreal "\n请输入需更改的标注尺寸:"))</p><p>&nbsp; (command ".-DIMSTYLE" "S" currentLay)<br/>&nbsp; (command "_Y" ))</p><p></p><p>加载后命令行输入changdim即可,也可加入自已的程序段中</p>

huguhu2000 发表于 2008-6-18 12:33:00

<p>补充:虽然可实现变更,但一般不建议做这样的修改。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 因为这样未指定的项(如箭头大小、引线粗细)等并不会变化,单字体变大会显得不协调。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最佳的办法是修改全局变量!</p>

userzhl 发表于 2008-6-18 16:18:00

试试利德行工具,命令DG
页: [1]
查看完整版本: 怎样在LISP中修改标注样式