liminnet
发表于 2008-6-17 19:50:00
hzj526
发表于 2008-6-18 11:13:00
楼主这是什么意思?
pipi2
发表于 2008-6-18 11:47:00
?????没搞懂
liminnet
发表于 2008-6-18 17:28:00
caoyin
发表于 2008-6-18 17:45:00
<p> (COND<br/> ((= newTolerance 0)(setq newTolerance acDimPrecisionZero))<br/> ((= newTolerance 1)(setq newTolerance acDimPrecisionOne))<br/> ((= newTolerance 2)(setq newTolerance acDimPrecisionTwo))<br/> ((= newTolerance 3)(setq newTolerance acDimPrecisionThree))<br/> ((= newTolerance 4)(setq newTolerance acDimPrecisionFour))<br/> ((= newTolerance 5)(setq newTolerance acDimPrecisionFive))<br/> ((= newTolerance 6)(setq newTolerance acDimPrecisionSix))<br/> ((= newTolerance 7)(setq newTolerance acDimPrecisionSeven))<br/> ((= newTolerance 8)(setq newTolerance acDimPrecisionEight))<br/> (t(progn (princ "标注精度未改变")(VL-EXIT-WITH-VALUE 0)))<br/> )</p><p>上面的代码为什么这么复杂,直接改为</p><p> (if (not (and newTolerance<br/> (>= newTolerance 0)<br/> (<= newTolerance 8)<br/> ))<br/> (progn (princ "标注精度未改变")(VL-EXIT-WITH-VALUE 0))<br/> )</p><p>就可以了,因为</p><p>acDimPrecisionZero=0</p><p>acDimPrecisionOne=1</p><p>...</p>
caoyin
发表于 2008-6-18 17:47:00
本帖最后由 作者 于 2008-6-18 18:03:23 编辑
学会怎么将选择集转换为图元列表,自己就可以改了
liminnet
发表于 2008-6-18 17:53:00
ZZXXQQ
发表于 2008-6-18 22:57:00
本帖最后由 作者 于 2008-6-20 16:15:23 编辑
(defun C:djd ()
(VL-LOAD-COM)
(princ"\n程序功能:标注尺寸中数字的小数位精度"); 在模型空间中选择标注对象
(if (and (setq newTolerance (getint "\n输入标注新的公差精度: "))
(<= 0 newTolerance 8)) (progn
(princ "标注精度已经设定为: ")
(princ newTolerance)
(princ "位小数")
(if (and (princ "\n选择要修改精度的尺寸标注: ")
(setq ss (ssget '((0 . "DIMENSION"))))) (progn
(setq i 0)
(repeat (sslength ss)
(setq dimObj (ssname ss i) i (1+ i))
(setq dimObj (vlax-ename->vla-object dimObj))
(vla-put-PrimaryUnitsPrecision dimObj newTolerance); 确定公差精度的改变
(vla-put-SuppressTrailingZeros dimObj :vlax-false);;; 读取并显示替代标注公差精度
(setq newTolerance (vla-get-PrimaryUnitsPrecision dimObj))
)
))
)
(princ "标注精度未改变")
)
(princ)
)
liminnet
发表于 2008-6-20 10:15:00
danxingpen
发表于 2008-6-20 15:01:00
(>= 8 newTolerance 0)