菜鸟冒充老鸟A 发表于 2017-10-23 22:15:17

把尺寸作为块来编辑,更新后,再复制尺寸,尺寸就恢复了

如题,把尺寸作为块来编辑。
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:29

请教楼主 什么用途,有何意义?

pengfei2010 发表于 2017-10-25 09:24:10

回帖是一种美德!感谢楼主的无私分享 谢谢

菜鸟冒充老鸟A 发表于 2017-10-26 17:20:31

shh1980 发表于 2017-10-24 09:22
请教楼主 什么用途,有何意义?

批量刷尺寸,将选中的尺寸增减一个值

fsafaffa 发表于 2017-10-27 11:34:17

最好能+-*/,顶出来

天下逍遥 发表于 2017-10-27 11:57:57

一定要顶出来

vlisp2012 发表于 2017-10-27 16:16:17

(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)
)

shh1980 发表于 2017-10-28 10:03:50

真尺寸改成假尺寸了
页: [1]
查看完整版本: 把尺寸作为块来编辑,更新后,再复制尺寸,尺寸就恢复了