执行某一个命令前,自动设标准3位精度,完成 后返回之前的精度
比如半径标注DIMRADIUS 直径标注DIMDIAMETER,还有很多。标注的时候,我需要是3位精度,标注完成后,返回之前的设置你要新建一个标注样式,设置它的精度就是三位的。其它标注样式你需要切换,也可以用“替代” 自贡黄明儒 发表于 2024-10-25 14:14
你要新建一个标注样式,设置它的精度就是三位的。其它标注样式你需要切换,也可以用“替代”
那岂不是要来回切换,我希望是自动的:lol zm880928 发表于 2024-10-25 14:15
那岂不是要来回切换,我希望是自动的
好像是办不到的。 哪个版本的CAD (defun C:NM (/ ent)
(command "dimradius" pause pause)
(Vlax-Put-Property (Vlax-Ename->Vla-Object (entlast)) 'PrimaryUnitsPrecision 3)
(princ)
)
其他类似!!!!!!!!!! 菜卷鱼 发表于 2024-10-25 14:40
哪个版本的CAD
这个跟CAD还有关系吗,我目前用的是2024 本帖最后由 菜卷鱼 于 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);;;;恢复之前使用的精度
)
)
菜卷鱼 发表于 2024-10-25 16:18
是高版本的话,给你搞个反应器
这个牛逼,但是有个问题,我如果要添加的命令不是DIM开头的,该如何添加呢 不是DIM开头
if 條件判斷式加 'or
页:
[1]
2