- 积分
- 5394
- 明经币
- 个
- 注册时间
- 2018-10-27
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
20明经币
请教:论坛上找的调整标注基本尺寸单位小数位数的程序,为何要选择两次?
使用时命令行提示如下:
命令: tt
请输入精度<保留小数点的位数>[0位,1位,2位,3位,4位,5位,6位,7位,8位]0
选择对象: 指定对角点: 找到 4 个
选择对象:
选择对象:
nil
希望达到效果:
1. 先选择标注对象,再输入命令“tt”时不再提示选择对象;
2. 先输入命令“tt”再先择对象时只需回车一次且命令行无“nil”提示
肯请大佬帮助
;;代码如下:
(defun c:tt (/ ss n cnt# enlst)
(vl-load-com)
(setq jidulst (list 'acDimPrecisionZero
'acDimPrecisionOne
'acDimPrecisionTwo
'acDimPrecisionThree
'acDimPrecisionFour
'acDimPrecisionFive
'acDimPrecisionSix
'acDimPrecisionSeven
'acDimPrecisionEight
))
(initget 5 "0 1 2 3 4 5 6 7 8")
(setq int# (getint "\n请输入精度<保留小数点的位数>[0位,1位,2位,3位,4位,5位,6位,7位,8位]"))
(while (setq ss (ssget '((0 . "DIMENSION"))))
(setq n (sslength ss )
cnt# n
)
(repeat n
(setq ename^ (ssname ss (setq cnt# (1- cnt#))))
(setq enameobj (vlax-ename->vla-object ename^ ))
(vlax-put-property enameobj 'PrimaryUnitsPrecision (eval (nth int# jidulst))))
)
)
|
最佳答案
查看完整内容
或者这样吧
(defun c:tt (/ cnt# ename^ enameobj enlst int# jidulst n ss)
(vl-load-com)
(setq ss (cadr (ssgetfirst)))
(setq jidulst (list 'acDimPrecisionZero
'acDimPrecisionOne
'acDimPrecisionTwo
'acDimPrecisionThree
'acDimPrecisionFour
'acDimPrecisionFive
'acDimPrecisionSix
'acDimPrecisionSeven
'acDimPrecisionEi ...
|