注册 发表于 2022-12-18 09:59:48

刷同标注时如何保证不增加小数点

以下为论坛某个刷标注相同的源码,使用下来发现刷同后会在标注值后面增加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)
)

xyp1964 发表于 2022-12-19 13:41:36

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

注册 发表于 2022-12-19 16:32:29

xyp1964 发表于 2022-12-19 13:41
(defun c:tt ()
"尺寸标注刷"
(if (progn (setq s1 (car (entsel "\n请选择样本标注: ")))


院长出手就是牛啊

完整武器 发表于 2022-12-18 10:59:00

试 了下你发的源码,没有你说的后面有小数点,标注设置里面的问题吧,改下设置就可以了应该

注册 发表于 2022-12-18 13:03:21

完整武器 发表于 2022-12-18 10:59
试 了下你发的源码,没有你说的后面有小数点,标注设置里面的问题吧,改下设置就可以了应该

好的,下次试试,谢谢

zhangcan0515 发表于 2022-12-18 15:40:47

你在代码后边加上精度控制变量就可以了,这样保证你的精度

注册 发表于 2022-12-18 19:29:53

zhangcan0515 发表于 2022-12-18 15:40
你在代码后边加上精度控制变量就可以了,这样保证你的精度

盼赐教,能详细说一下或帮改一下吗?

zhangcan0515 发表于 2022-12-18 23:11:48

注册 发表于 2022-12-18 19:29
盼赐教,能详细说一下或帮改一下吗?

帮你测试了,你自身的代码有问题啊。加了那个变量更新后没有反应。需要重新写

cds15980954301 发表于 2022-12-19 00:23:27

CAD的原有命令:ma,就能实现该功能{:1_1:}

liunian0524 发表于 2022-12-19 07:58:47

_aidimprec 修改标注精度

注册 发表于 2022-12-19 08:04:54

liunian0524 发表于 2022-12-19 07:58
_aidimprec 修改标注精度

谢谢兄台,貌似还是不行
页: [1] 2
查看完整版本: 刷同标注时如何保证不增加小数点