找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 704|回复: 8

[求助] [求助]:如何限制在一定范围内输入坐标?

[复制链接]
发表于 2005-11-7 10:48:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的目的是输入的坐标p1的x要大于0和小于100.请问while 后的判断表达式怎么写?
  (while  ((<= pm 0) (<= pm 100))
    (setq p1 (getpoint "\n请确定下一点:")
          pm (car p1)         
    )                                                   
  )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 8157个

财富等级: 富甲天下

发表于 2005-11-7 11:33:19 | 显示全部楼层
(while (or (<= pm 0) (>= pm 100))
(setq p1 (getpoint "\n请确定下一点:")
pm (car p1)
)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-7 11:50:22 | 显示全部楼层
谢谢了,我是刚学习lisp,以前学basic时有or,我查lisp函数集没有发现 or,就以为or在lisp里不能用.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-7 11:50:51 | 显示全部楼层
屏幕缩放到x=0~100区域,你就不会画出去了:)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-7 12:00:04 | 显示全部楼层
狂刀先生说的也是一个解决的方法,但是在输入过程中为了看清图像而放大或缩小图像时就不起作用了,
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 111个

财富等级: 日进斗金

发表于 2005-11-7 12:04:33 | 显示全部楼层
(while (progn (setq p1 (getpoint "\n请确定下一点:")
                        pm (car p1)
                  )
                  (not (and (>= pm 0) (<= pm 100)))
           )
       (princ (strcat "\n所选取点P1的X坐标为:" (rtos pm)  ",不在0 ~100范围内,请重新选取P1!"))
    )
或者:
(while (progn (setq p1 (getpoint "\n请确定下一点:")
                        pm (car p1)
                  )
                  (or (< pm 0) (> pm 100))
           )
       (princ (strcat "\n所选取点P1的X坐标为:" (rtos pm)  ",不在0 ~100范围内,请重新选取P1!"))
    )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-7 14:00:03 | 显示全部楼层
  1. [FONT=courier new]
  2. (defun c:test (/ p1)
  3.   (while (= p1 nil)
  4.     (setq p1 (getpoint "\n请确定下一点 : ")
  5.           pm (car p1)
  6.     )
  7.     (if        (or (<= pm 0) (>= pm 100))
  8.       (setq p1 nil)
  9.     )
  10.   )
  11.   p1
  12. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-7 17:32:37 | 显示全部楼层
晓东里的热心人真多,我一定要好好向大家学习,争取编一个实用的程序贴上来回报大家的帮助.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-7 20:45:36 | 显示全部楼层
(while (not(< 0 (car (setq pt (getpoint "\n选点(x范围0~100):"))) 100)))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-28 19:03 , Processed in 0.193007 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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