明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: CADghost

输入错误的回退问题

  [复制链接]
发表于 2004-6-15 19:04:00 | 显示全部楼层
(setq tf t)


(while tf                       


         (setq a (getint "\n请输入一个整数:"))


         (cond


                 ((< a        5) (setq tf nil))


         ((> a 5) (princ "\n你输入了 ")(princ a) (princ " 重新输入!"))


         (t)


)


)
发表于 2004-6-15 19:42:00 | 显示全部楼层
改进一下mccad的思路:不断提问,数值按最后一次输入,并回车确认
  1. (setq a (getint "输入一个数:"))
  2. (while
  3.    (progn
  4.      (setq b (getint "输入一个数/<确认>:"))
  5.      (if b (setq a b) nil)
  6.      )
  7. )a
发表于 2004-6-15 19:54:00 | 显示全部楼层
呵呵,无兄的这一段有点象注册时输入密码的提示一样。
发表于 2004-6-15 19:55:00 | 显示全部楼层
贴一个自己用的输入小程序一起讨论: ;=================================================
;本程序是为写入大量数据而编写的输入程序。
;输入 "+"---------写入上一次的文本
;输入 "++"--------修改上一次的文本
;回车-------------输入空行
;编程 ljc 2004.4.16 唐山
;=================================================
(defun c:bl()
(setq p1 (getpoint "请选择表格左上角点:"))
(setq p2 (getpoint "请选择表格右下角点:"))
(setq osmode(getvar "osmode"))
(setq tc(getvar "clayer" )) (setq p1y (cadr p1))
(setq p1x (car p1))
(setq p2y (cadr p2))
(setq bg(- p1y p2y))
(setq zg (* 4.5( getvar "dimscale")))
(setq p3y(/ ( + p1y p2y) 2))
(setq p3x(+ (car p1) (/ zg 2)))
(setq p3(list p3x p3y)) (setq p1y (- p1y bg))
(setq p1 (list p1x p1y 0.0))
(setq p2y (- p2y bg))
(setq p22x (+ p1x (* bg 22)))
(setq p22(list p22x p2y))
(COMMAND "ZOOM" "W" (polar P1 pi (* 20 zg)) P22)

(setq shuzhi(getstring "请输入字符:"))
(while shuzhi
(cond
((= shuzhi "+")
(progn
(command "layer" "s" "text" \n) (SETVAR "OSMODE" 0)
(command "text" "j" "ml" p3 zg 0 shuzhip "")
(SETVAR "OSMODE" osmode)
(setvar "clayer" tc)
(setq p1y (- p1y bg))
(setq p1 (list p1x p1y 0.0))
(setq p2y (- p2y bg))
(setq p22x (+ p1x (* bg 22)))
(setq p22(list p22x p2y))
(COMMAND "ZOOM" "W" (polar P1 pi (* 20 zg)) P22)

(setq p3y(- p3y bg))
(setq p3(list p3x p3y))
(setq shuzhi(getstring "请输入字符:")) )
)
((= shuzhi "++") (progn
(setq shuzhip shuzhi)
(setq a(getstring "文本修改为:"))
(setq d(entget (entlast)))
(setq d(subst (cons 1 a) (assoc 1 d) d))
(entmod d)
(setq shuzhip a)
(setq shuzhi(getstring "请输入字符:"))

)
)
( t
(progn
(setq shuzhip shuzhi)
(command "layer" "s" "text" \n) (SETVAR "OSMODE" 0)
(command "text" "j" "ml" p3 zg 0 shuzhi "")
(SETVAR "OSMODE" osmode)
(setvar "clayer" tc)
(setq p1y (- p1y bg))
(setq p1 (list p1x p1y 0.0))
(setq p2y (- p2y bg))
(setq p22x (+ p1x (* bg 22)))
(setq p22(list p22x p2y))
(COMMAND "ZOOM" "W" (polar P1 pi (* 20 zg)) P22) (setq p3y(- p3y bg))
(setq p3(list p3x p3y))
(setq shuzhi(getstring "请输入字符:"))

)
)

)
)

)
 楼主| 发表于 2004-6-16 10:11:00 | 显示全部楼层
Ea 你这段程序只能事先控制数字,假如我想输入3,却按了2不就没有办法了吗? 老无的程序我觉得是不是不如(initget 1)来的快啊 ljgq的挺强,我再好好看看 谢谢各位了
发表于 2004-6-16 22:32:00 | 显示全部楼层
我的程序不是只为(initget “1”)准备的。而是为你“反悔”上次输入(无论是什么)而准备的:)
 楼主| 发表于 2004-6-16 22:43:00 | 显示全部楼层
哦?刚才还真没注意,我再好好看看,
发表于 2004-10-17 01:54:00 | 显示全部楼层
(initget "Undo")
(setq p1 (getpoint "\n 点取单元下一节点or[Undo]:")) 可以试试~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-18 11:20 , Processed in 0.146591 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表