刷同标注时如何保证不增加小数点
以下为论坛某个刷标注相同的源码,使用下来发现刷同后会在标注值后面增加3位小数,请问,如果实现刷同标注后标注精度不发生改变呢?;;标注刷同
(DEFUN c:bzst ()
(setvar "cmdecho" 0)
(command ".undo" "be")
(prompt "\n请选择样本标注")
(setq s1 (entsel ))
(setq len_data (entget(car s1) ))
(setq ss1 (cdr (assoc 42 len_data)))
(setq ss2(cdr (assoc 1 len_data)))
(setq oldzim (getvar "DIMZIN"))
(setvar "DIMZIN" 1)
(if (= ss2 "")
(setq SS2 (rtos SS1))
)
(setvar "DIMZIN" oldzim)
(princ ss2)
(prompt "\n请选择要改写的标注")
(setq s2 (ssget '((0 . "dimension"))))
(setq i 0)
(repeat (sslength s2)
(setq len_data (entget (ssname s2 i)))
(setq len_data (subst (cons 1ss2)
(assoc 1 len_data)
len_data
)
)
(entmod len_data)
(setq i (1+ i))
)
(command ".undo" "e")
(setvar "cmdecho" 1)
(princ)
)
(defun c:tt ()
"尺寸标注刷"
(if (progn (setq s1 (car (entsel "\n请选择样本标注: ")))
(prompt "\n请选择要改写的标注")
(setq s2 (ssget '((0 . "dimension"))))
)
(progn
(setq en (entget s1)
d42 (cdr (assoc 42 en))
d1 (cdr (assoc 1 en))
d1 (if (= d1 "")
(rtos d42 2 0)
d1
)
i -1
)
(repeat (sslength s2)
(setq en (entget (ssname s2 (setq i (1+ i))))
en (subst (cons 1 d1)
(assoc 1 en)
en
)
)
(entmod en)
)
)
)
(princ)
) xyp1964 发表于 2022-12-19 13:41
(defun c:tt ()
"尺寸标注刷"
(if (progn (setq s1 (car (entsel "\n请选择样本标注: ")))
院长出手就是牛啊 试 了下你发的源码,没有你说的后面有小数点,标注设置里面的问题吧,改下设置就可以了应该 完整武器 发表于 2022-12-18 10:59
试 了下你发的源码,没有你说的后面有小数点,标注设置里面的问题吧,改下设置就可以了应该
好的,下次试试,谢谢 你在代码后边加上精度控制变量就可以了,这样保证你的精度 zhangcan0515 发表于 2022-12-18 15:40
你在代码后边加上精度控制变量就可以了,这样保证你的精度
盼赐教,能详细说一下或帮改一下吗? 注册 发表于 2022-12-18 19:29
盼赐教,能详细说一下或帮改一下吗?
帮你测试了,你自身的代码有问题啊。加了那个变量更新后没有反应。需要重新写 CAD的原有命令:ma,就能实现该功能{:1_1:} _aidimprec 修改标注精度 liunian0524 发表于 2022-12-19 07:58
_aidimprec 修改标注精度
谢谢兄台,貌似还是不行
页:
[1]
2