明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3838|回复: 11

快速批量更改标注数字

  [复制链接]
发表于 2009-12-17 09:04:00 | 显示全部楼层 |阅读模式
如何快速的把尺寸标注数字修改成如下格式呢,请大侠给帮助一下: 就是选中的标注,里面的各个标注尺寸A/B/C……等自动加上一个20后,变成A~A+20,B~B+20…… 例如:原来如果是数据300,运行后就变成300~320. 如图:谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2009-12-17 10:39:00 | 显示全部楼层

(defun c:mm()
(setq ss (ssget '((0 . "DIMENSION"))))
(setq n 0)

(command "undo" "begin")
(repeat (sslength ss)
(setq ent (ssname ss n))
(setq dxf (entget ent))
(setq bzz (assoc 42 dxf))
(setq bz (cdr bzz))
(setq xin (strcat (rtos bz 2 0) "~" (rtos (+ bz 20) 2 0)))
(command "dimedit" "n" xin ent "")
(setq n (+ 1 n))
)

(command "undo" "end")
)

 楼主| 发表于 2009-12-17 10:47:00 | 显示全部楼层

快速批量更改标注数字

phoenixdjq也太高了,这么短的时间就有了回答,谢谢!

不过测试了一下,运行错误啊

发表于 2009-12-17 12:02:00 | 显示全部楼层

phoenixdjq 的程序

在AUTOCAD 2008 运行

非常O.K. 没出现错误情况

是否有版本的问题啊!

发表于 2009-12-17 13:33:00 | 显示全部楼层

呵呵:)

我用的是06,也没有问题,测试过了

别的版本没有测试

 楼主| 发表于 2009-12-17 14:04:00 | 显示全部楼层

程序没有问题,就是那个计算的参数取值有问题啊

例如:原始标注尺寸为35的,运行后为2~22,应该为35~55啊

 楼主| 发表于 2009-12-17 14:41:00 | 显示全部楼层

组码错误应该如下:

(defun c:mm()
(setq ss (ssget '((0 . "DIMENSION"))))
(setq n 0)

(command "undo" "begin")
(repeat (sslength ss)
(setq ent (ssname ss n))
(setq dxf (entget ent))
(setq bzz (assoc 1 dxf))
(setq bz (cdr bzz))
(setq b (atof bz))
(setq xin (strcat (rtos b 2 0) "~" (rtos (+ b 20) 2 0)))
(command "dimedit" "n" xin ent "")
(setq n (+ 1 n))
)

(command "undo" "end")
)


发表于 2009-12-17 16:18:00 | 显示全部楼层

当标注文字被修改过

(1 . "35")
(42 . 35.0)

当标注文字未修改过

(1 . "")
(42 . 35.0)

执行mm.lsp程序结果 不一样喔!

 楼主| 发表于 2009-12-17 17:03:00 | 显示全部楼层
那怎样判断是不是被修改过呢?
发表于 2009-12-17 17:46:00 | 显示全部楼层

;;;想选中被替换掉值的标注                                 
(ssget '((0 . "DIMENSION")(1 . "~<>")(1 . "~")))

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-15 19:05 , Processed in 0.201245 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表