726613 发表于 2014-11-16 11:07:12

公差标注改善问题


                              图一


                     图二

源程序如下

(DEFUN c:wt()
(setvar "cmdecho" 0)
   (if (= xx nil) (setq xx 0.01 yy 0.00))
   (prompt "\n-->目前上差为:(" )(princ xx )(princ ")" )
             (setq n (getreal "请输入新值: " ))
   (prompt "\n-->目前下差为:(" )(princ yy )(princ ")" )
             (setq m (getreal "请输入新值: " ))
   (if (= n nil) (setq n xx))
   (if (= m nil) (setq m yy))
(setq k 0)
(while (<= k 5)
(setq a (fix (* (EXPT 10 (- 5 K)) n)))
(setq b (* 10 (fix (* (expt 10 (- 4 k)) n))))
(setq k1 (- 5 k))
(IF (= a b) (SETQ K (+ K 1)) (setq K 6)))
(setq k 0)
(while (<= k 5)
(setq a (fix (* (EXPT 10 (- 5 K)) M)))
(setq b (* 10 (fix (* (expt 10 (- 4 K )) M))))
(SETQ K2 (- 5 k))
(IF (= a b) (SETQ K (+ K 1)) (setq K 6)))
(setQ d2 (max K1 K2))
   (if (= n m) (setq c 1) (setq c 0.6))
(if (and (= n 0) (= m 0))
   (COMMAND "_DIMOVERRIDE" "dimtol" "off" "")
   (COMMAND "_DIMOVERRIDE" "dimtp" n "DIMTM" M "DIMTOL" "ON" "DIMTFAC" c "DIMTZIN" 8"")
)
   (SETQ xx n yy m)
(PRINC)
)

源程序只能实现图一的效果,程序如何修改能达到图二要求,请高手们指点



HGQ8888 发表于 2014-11-16 11:54:19

不用改,输入负公差时加"-"号即可为正
页: [1]
查看完整版本: 公差标注改善问题