本帖最后由 作者 于 2008-5-22 16:52:03 编辑
经常要用到查看某一个标注更精确的标注,一般在属性里改标注的精度,但是找修改精度的位置比较不好找,所以就想写个小程序来设置标注的小数位数,程序一直没有调试成功!求高人指点!谢谢 (defun C:bzjd () (VL-LOAD-COM) ;;; 在模型空间中选择标注对象 (setq dimObj (car (entsel "\n选择要修改精度的尺寸标注: "))) (setq str_0 (cdr (assoc 0 (entget dimObj)))) (while (and (/= str_0 "LWPOLYLINE") (/= str_0 "DIMENSION")) (setq dimObj (car (entsel "\n所选对象不是尺寸标注,请重新选择编辑对象: "))) (setq str_0 (cdr (assoc 0 (entget dimObj)))) ) (setq dimObj (vlax-ename->vla-object dimObj)) (setq newTolerance (getint "\n输入标注新的公差精度[0~8]: ")) (if (= newTolerance "")
(setq newTolerance 0) (progn (COND ((= newTolerance 0)(setq newTolerance acDimPrecisionZero)) ((= newTolerance 1)(setq newTolerance acDimPrecisionOne)) ((= newTolerance 2)(setq newTolerance acDimPrecisionTwo)) ((= newTolerance 3)(setq newTolerance acDimPrecisionThree)) ((= newTolerance 4)(setq newTolerance acDimPrecisionFour)) ((= newTolerance 5)(setq newTolerance acDimPrecisionFive)) ((= newTolerance 6)(setq newTolerance acDimPrecisionSix)) ((= newTolerance 7)(setq newTolerance acDimPrecisionSeven)) ((= newTolerance 8)(setq newTolerance acDimPrecisionEight)) (t(progn (princ "标注精度未改变")(VL-EXIT-WITH-VALUE 0))) ) ) ) (vla-put-TextPrecision dimObj newTolerance) ; 确定公差精度的改变 ;;; 读取并显示替代标注公差精度 (setq newTolerance (vla-get-TextPrecision dimObj)) (princ "标注精度已经设定为: ")(princ newTolerance)(princ "位小数") (princ)
) |