669423907 发表于 2011-3-24 21:19:43

求修改标公差程序

以前在论坛下载的标公差程序:
(DEFUN C:eed()
(setvar "cmdecho" 0)
(if (= xx nil) (setq xx 0 yy 0))
(prompt "\n+(")(princ xx )(princ ")")(setq n (getreal""))
(prompt "\n-(")(princ yy )(princ ")")(setq m (getreal""))
(if (= m 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 "DIMTDEC" D2 ""))
(SETQ xx n yy m)
(PRINC ))

不知哪位大师方便帮忙改一下;
1.去掉他的记忆功能
2.不输入时默认为0
谢谢啦。

idljb 发表于 2011-3-24 21:54:44

(DEFUN C:eed()
(setvar "cmdecho" 0)
(prompt "\n+xx")(setq n (getreal""))
(prompt "\n-yy")(setq m (getreal""))
(if (= n nil) (setq n 0))
(if (= m nil) (setq m 0))
(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 "DIMTDEC" D2 ""))
(PRINC ))

ZZXXQQ 发表于 2011-3-24 21:55:16


(if (= xx nil) (setq xx 0 yy 0))
改成
(setq xx 0 yy 0)

idljb 发表于 2011-3-24 21:55:38

(DEFUN C:eed()
(setvar "cmdecho" 0)
(prompt "\n+xx")(setq n (getreal""))
(prompt "\n-yy")(setq m (getreal""))
(if (= n nil) (setq n 0))
(if (= m nil) (setq m 0))
(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 "DIMTDEC" D2 ""))
(PRINC ))

idljb 发表于 2011-3-24 21:57:42

(DEFUN C:eed()
(setvar "cmdecho" 0)
(prompt "\n+xx")(setq n (getreal""))
(prompt "\n-yy")(setq m (getreal""))
(if (= n nil) (setq n 0))
(if (= m nil) (setq m 0))
(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 "DIMTDEC" D2 ""))
(PRINC ))

ZZXXQQ 发表于 2011-3-24 21:59:40

这行错了:(if (= m nil) (setq n xx))
应改成:(if (= n nil) (setq n xx))

idljb 发表于 2011-3-24 22:00:50

(DEFUN C:eed()
(setvar "cmdecho" 0)
(prompt "\n+xx")(setq n (getreal""))
(prompt "\n-yy")(setq m (getreal""))
(if (= n nil) (setq n 0))
(if (= m nil) (setq m 0))
(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 "DIMTDEC" D2 ""))
(PRINC ))

idljb 发表于 2011-3-24 22:08:41

(DEFUN C:eed()
(setvar "cmdecho" 0)
(prompt "\n+xx")(setq n (getreal""))
(prompt "\n-yy")(setq m (getreal""))
(if (= n nil) (setq n 0))
(if (= m nil) (setq m 0))
(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 "DIMTDEC" D2 ""))
(PRINC ))

idljb 发表于 2011-3-24 22:15:12

不好意思!网速太卡了!我以没有上传上去所以传了那么多次!

669423907 发表于 2011-3-24 22:54:32

回复 idljb 的帖子

虽然还有一点小问题,
还是非常感谢你的热情帮助!谢谢!
页: [1] 2 3
查看完整版本: 求修改标公差程序