[求助]如何批量修改标注尺寸值同时加(或减)一个数值
请高手帮忙,如何批量修改标注尺寸值,使选中的尺寸值同时加(或减)一个数值。谢谢(defun c:dimdd (/ measure plus real result ss text)
(vl-load-com)
(vla-endundomark
(vla-get-activedocument
(vlax-get-acad-object)
)
)
(vla-startundomark
(vla-get-activedocument
(vlax-get-acad-object)
)
)
(princ "\n★批量增减标注尺寸值 by carrot1983 ")
(setq plus (getreal "\n输入增值<100.>: "))
(if (and (cond ((null plus) (setq plus 100.))
((eq plus 0) nil)
(t)
)
(setq ss (ssget '((0 . "DIMENSION"))))
)
(foreach obj
(mapcar
'vlax-ename->vla-object
(vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
)
(if (and (setq text (vla-get-textoverride obj))
(setq measure (vla-get-measurement obj))
(/= text "")
(numberp (read text))
)
(setq real (read text))
(setq real measure)
)
(and real
(setq result (vl-princ-to-string (+ real plus)))
(vla-put-textoverride obj result)
)
)
)
(vla-endundomark
(vla-get-activedocument
(vlax-get-acad-object)
)
)
(princ)
)
(princ "\n本程序作者: carrot1983 转贴请注明出处、作者.")
(princ "\n本程序作命令: dimdd")
<p>支持萝卜头!不错!能够满足楼主要求!</p><p>2楼的又是让加QQ?。。。。。。</p> 就是,鄙视之,好像在给QQ公司打广告。
发一个可以批量修改标注的程序,而且可以恢复默认尺寸。
(setq txt_de "100")
(setq dde_mrbl 1)
(defun c:de (/ ss txt)
(setvar "cmdecho" 0) (princ "\n 选择需修改 文本 的标注:")
(setq ss (ssget '((0 . "DIMENSION"))))
(if ss (progn (princ "\n 请输入字符(空格=恢复)<\"")(princ txt_de)
(setq txt (getstring T "\">:"))
(cond ((= txt " ")(setq txt ""))
((= txt "")(setq txt txt_de))
(T (setq txt_de txt)))
(command "dimedit" "n" txt "p" "")
))(SETVAR "CMDECHO" 1)(princ)
)
非常感谢大家的帮助,3楼的满足要求,只是如何修改标注精度,例如不要小数, <p>长见识了</p> 这个很好的功能 啊 如果能改标注的实际长度就好了。 carrot1983 发表于 2009-12-4 10:55
如果去掉增加以后数字后面的小数点及后一位啊?
页:
[1]
2