逐月飞鸿 发表于 2009-12-17 09:04:00

快速批量更改标注数字

如何快速的把尺寸标注数字修改成如下格式呢,请大侠给帮助一下: 就是选中的标注,里面的各个标注尺寸A/B/C……等自动加上一个20后,变成A~A+20,B~B+20…… 例如:原来如果是数据300,运行后就变成300~320. 如图:谢谢!

phoenixdjq 发表于 2009-12-17 10:39:00

<p>(defun c:mm()<br/>(setq ss (ssget '((0 . "DIMENSION"))))<br/>(setq n 0)</p><p>(command "undo" "begin")<br/>(repeat (sslength ss)<br/>(setq ent (ssname ss n))<br/>(setq dxf (entget ent))<br/>(setq bzz (assoc 42 dxf))<br/>(setq bz (cdr bzz))<br/>(setq xin (strcat (rtos bz 2 0) "~" (rtos (+ bz 20) 2 0)))<br/>(command "dimedit" "n" xin ent "")<br/>(setq n (+ 1 n))<br/>)</p><p>(command "undo" "end")<br/>)<br/></p>

逐月飞鸿 发表于 2009-12-17 10:47:00

快速批量更改标注数字

<p><strong><font color="#61b713" face="Verdana">phoenixdjq也太高了,这么短的时间就有了回答,谢谢!</font></strong></p><p><strong><font color="#61b713" face="Verdana">不过测试了一下,运行错误啊</font></strong></p>

yoyoho 发表于 2009-12-17 12:02:00

<p><strong><font face="Verdana" color="#61b713">phoenixdjq 的程序</font></strong></p><p><strong><font face="Verdana" color="#61b713">在AUTOCAD 2008 运行</font></strong></p><p><strong><font face="Verdana" color="#61b713">非常O.K. 没出现错误情况</font></strong></p><p><strong><font face="Verdana" color="#61b713">是否有版本的问题啊!</font></strong></p>

phoenixdjq 发表于 2009-12-17 13:33:00

<p>呵呵:)</p><p>我用的是06,也没有问题,测试过了</p><p>别的版本没有测试</p>

逐月飞鸿 发表于 2009-12-17 14:04:00

<p>程序没有问题,就是那个计算的参数取值有问题啊</p><p>例如:原始标注尺寸为35的,运行后为2~22,应该为35~55啊</p>

逐月飞鸿 发表于 2009-12-17 14:41:00

<p>组码错误应该如下:</p><p>(defun c:mm()<br/>(setq ss (ssget '((0 . "DIMENSION"))))<br/>(setq n 0)</p><p>(command "undo" "begin")<br/>(repeat (sslength ss)<br/>(setq ent (ssname ss n))<br/>(setq dxf (entget ent))<br/>(setq bzz (assoc 1 dxf))<br/>(setq bz (cdr bzz))<br/>(setq b (atof bz))<br/>(setq xin (strcat (rtos b 2 0) "~" (rtos (+ b 20) 2 0)))<br/>(command "dimedit" "n" xin ent "")<br/>(setq n (+ 1 n))<br/>)</p><p>(command "undo" "end")<br/>)</p><p><br/></p>

yoyoho 发表于 2009-12-17 16:18:00

<p>当标注文字被修改过</p><p>(1 . "35")<br/>(42 . 35.0)</p><p>当标注文字未修改过</p><p>(1 . "")<br/>(42 . 35.0)</p><p>执行mm.lsp程序结果 不一样喔!</p>

逐月飞鸿 发表于 2009-12-17 17:03:00

那怎样判断是不是被修改过呢?

yoyoho 发表于 2009-12-17 17:46:00

<p>;;;想选中被替换掉值的标注&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>(ssget '((0 . "DIMENSION")(1 . "~&lt;&gt;")(1 . "~")))</p>
页: [1] 2
查看完整版本: 快速批量更改标注数字