zm880928 发表于 2024-10-25 14:09:35

执行某一个命令前,自动设标准3位精度,完成 后返回之前的精度

比如半径标注DIMRADIUS   直径标注DIMDIAMETER,还有很多。标注的时候,我需要是3位精度,标注完成后,返回之前的设置

自贡黄明儒 发表于 2024-10-25 14:14:08

你要新建一个标注样式,设置它的精度就是三位的。其它标注样式你需要切换,也可以用“替代”

zm880928 发表于 2024-10-25 14:15:50

自贡黄明儒 发表于 2024-10-25 14:14
你要新建一个标注样式,设置它的精度就是三位的。其它标注样式你需要切换,也可以用“替代”

那岂不是要来回切换,我希望是自动的:lol

自贡黄明儒 发表于 2024-10-25 14:22:01

zm880928 发表于 2024-10-25 14:15
那岂不是要来回切换,我希望是自动的

好像是办不到的。

菜卷鱼 发表于 2024-10-25 14:40:07

哪个版本的CAD

xj6019 发表于 2024-10-25 14:42:40

(defun C:NM (/ ent)
        (command "dimradius" pause pause)
        (Vlax-Put-Property (Vlax-Ename->Vla-Object (entlast)) 'PrimaryUnitsPrecision 3)               
        (princ)
)


其他类似!!!!!!!!!!

zm880928 发表于 2024-10-25 15:21:45

菜卷鱼 发表于 2024-10-25 14:40
哪个版本的CAD

这个跟CAD还有关系吗,我目前用的是2024

菜卷鱼 发表于 2024-10-25 16:18:48

本帖最后由 菜卷鱼 于 2024-10-25 16:30 编辑

zm880928 发表于 2024-10-25 15:21
这个跟CAD还有关系吗,我目前用的是2024
是高版本的话,给你搞个反应器


(or *precision1*
    (setq *precision1*
   (vlr-command-reactor
       nil
       '(
         (:vlr-commandWillStart . precisionget)
         (:vlr-commandEnded . precisionset)
         (:vlr-commandcancelled . precisionset)
      )
   )
    )
)
(defun precisionget (x1 x2 / a1 a2 )
(setqa1 x1
a2 x2
)
(if (and (wcmatch (car a2) "DIM*")
   (not (wcmatch (car a2) "DIMSTYLE*"))
      )
    (progn
      (setq *preset (getvar "dimdec")) ;;;记录正在使用的精度
      (setvar "dimdec" 3);;;;;这里是设置3位精度
    )
)
)
(defun precisionset (x1 x2 / a1 a2)
(setqa1 x1
a2 x2
)
(if (and (wcmatch (car a2) "DIM*")
   (not (wcmatch (car a2) "DIMSTYLE*"))
      )
    (setvar "dimdec" *preset);;;;恢复之前使用的精度
)
)

zm880928 发表于 2024-10-25 16:39:07

菜卷鱼 发表于 2024-10-25 16:18
是高版本的话,给你搞个反应器

这个牛逼,但是有个问题,我如果要添加的命令不是DIM开头的,该如何添加呢

Andyhon 发表于 2024-10-25 16:49:03

不是DIM开头
if 條件判斷式加 'or
页: [1] 2
查看完整版本: 执行某一个命令前,自动设标准3位精度,完成 后返回之前的精度