把尺寸作为块来编辑,更新后,再复制尺寸,尺寸就恢复了
如题,把尺寸作为块来编辑。entupd 后 ,尺寸值虽然变了,但是再复制一次,此尺寸值就又变回来了。
见图和代码。
(defun c:bas ()
(setq dimen (car (entsel)))
(setq blkEn (TBLOBJNAME "block" (cdr (assoc 2 (entget dimEn)))))
(setq MtextEn (repeat 5 (setq blken (entnext blken))))
(if (/= MtextEn nil)
(progn
(setq oldDimValue (atof (cdr (assoc 1 (entget MtextEn)))))
(setq newDimVal (rtos(+ oldDimValue value) 2 2) )
(setq newEn (subst (cons 1 newDimVal) (assoc 1 (entget MtextEn)) (entget MtextEn)))
;;;;更新
(entmod newEn)
(entupd blken)
;;; (entupd dimen)
))
(command "regen")
)
请教楼主 什么用途,有何意义? 回帖是一种美德!感谢楼主的无私分享 谢谢 shh1980 发表于 2017-10-24 09:22
请教楼主 什么用途,有何意义?
批量刷尺寸,将选中的尺寸增减一个值 最好能+-*/,顶出来 一定要顶出来 (defun c:de3 ( / en n ob1 ptx ptx1 ptx2 ss)
(prompt "\n<<框选欲-3的标注>>")
(setq ss (ssget '((0 . "DIMENSION"))))
(setq n 0)
(repeat (sslength ss)
(setq en (ssname ss n))
(setq ob1 (vlax-ename->vla-object en))
(setq ptx (vla-get-Measurement ob1))
(setq ptx1 (rtos (- ptx 3) 2 2)
ptx2 (strcat "<>" "-3=" ptx1))
(vla-put-TextOverride ob1 ptx2)
(setq n (1+ n))
)
(prin1)
)
真尺寸改成假尺寸了
页:
[1]