明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3338|回复: 10

[求助]如何批量修改标注尺寸值同时加(或减)一个数值

[复制链接]
发表于 2009-12-3 13:14:00 | 显示全部楼层 |阅读模式
请高手帮忙,如何批量修改标注尺寸值,使选中的尺寸值同时加(或减)一个数值。谢谢
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2009-12-3 17:47:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2009-12-4 10:55:00 | 显示全部楼层
  1. (defun c:dimdd (/ measure plus real result ss text)
  2.   (vl-load-com)
  3.   (vla-endundomark
  4.     (vla-get-activedocument
  5.       (vlax-get-acad-object)
  6.     )
  7.   )
  8.   (vla-startundomark
  9.     (vla-get-activedocument
  10.       (vlax-get-acad-object)
  11.     )
  12.   )
  13.   (princ "\n★批量增减标注尺寸值 by carrot1983 [12/4/09]")
  14.   (setq plus (getreal "\n输入增值<100.>: "))
  15.   (if (and (cond ((null plus) (setq plus 100.))
  16.    ((eq plus 0) nil)
  17.    (t)
  18.     )
  19.     (setq ss (ssget '((0 . "DIMENSION"))))
  20.       )
  21.     (foreach obj
  22.    (mapcar
  23.      'vlax-ename->vla-object
  24.      (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
  25.    )
  26.       (if (and (setq text (vla-get-textoverride obj))
  27.         (setq measure (vla-get-measurement obj))
  28.         (/= text "")
  29.         (numberp (read text))
  30.    )
  31. (setq real (read text))
  32. (setq real measure)
  33.       )
  34.       (and real
  35.     (setq result (vl-princ-to-string (+ real plus)))
  36.     (vla-put-textoverride obj result)
  37.       )
  38.     )
  39.   )
  40.   (vla-endundomark
  41.     (vla-get-activedocument
  42.       (vlax-get-acad-object)
  43.     )
  44.   )
  45.   (princ)
  46. )
  47. (princ "\n本程序作者: carrot1983 转贴请注明出处、作者.")
  48. (princ "\n本程序作命令: dimdd")
发表于 2009-12-4 11:28:00 | 显示全部楼层

支持萝卜头!不错!能够满足楼主要求!

2楼的又是让加QQ?。。。。。。

发表于 2009-12-4 11:33:00 | 显示全部楼层
就是,鄙视之,好像在给QQ公司打广告。
发一个可以批量修改标注的程序,而且可以恢复默认尺寸。
  1. (setq txt_de "100")
  2. (setq dde_mrbl 1)
  3. (defun c:de (/ ss txt)
  4. (setvar "cmdecho" 0)   (princ "\n 选择需修改 文本 的标注:")
  5. (setq ss (ssget '((0 . "DIMENSION"))))
  6. (if ss (progn (princ "\n 请输入字符(空格=恢复)<"")(princ txt_de)
  7. (setq txt (getstring T "">:"))
  8. (cond ((= txt " ")(setq txt ""))
  9. ((= txt "")(setq txt txt_de))
  10. (T (setq txt_de txt)))
  11. (command "dimedit" "n" txt "p" "")
  12. ))  (SETVAR "CMDECHO" 1)(princ)
  13. )
 楼主| 发表于 2009-12-9 06:43:00 | 显示全部楼层
非常感谢大家的帮助,3楼的满足要求,只是如何修改标注精度,例如不要小数,
发表于 2009-12-10 14:03:00 | 显示全部楼层

长见识了

发表于 2011-6-28 11:58:14 | 显示全部楼层
这个很好的功能 啊
发表于 2018-1-5 09:18:33 | 显示全部楼层
如果能改标注的实际长度就好了。
发表于 2022-12-2 10:54:19 | 显示全部楼层

如果去掉增加以后数字后面的小数点及后一位啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 05:57 , Processed in 0.166057 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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