lisp限制负数判断负数输入,while循环判断输入

  • A+
所属分类:CAD二次开发

很久没发文了,最近加班没啥时间来研究这个,lsp怎么像系统自带的偏移那样了,输入偏移距离的时候,只支持正数,不支持负数或者零了, 肯定是可以自己编写出来的。直接使用while循环语句几句可以达到这个功能,在循环里面判断输入的数是否满足条件即可,要是条件不对,循环重新输入即可。

直接上例子吧。

;判断负数输入禁止输入负数循环输入
(defun c:hj(/ hjj hj_of )
(setq hjj F)
(setq hj_off 1)
(while (not hjj)
(setq hj_of (getreal (strcat "\n-->>>请输入偏移距离<" (rtos hj_off ) ">:") ))

(if (<= hj_of 0)
(progn
(setq hjj F);小于0或者等于0重新输入
(princ "\n俺不接受零或负数,大侠请重新输入!")
)
(progn
(princ "\n请继续...")
(setq hjj T)
(princ hj_of );输入正确后返回值
)
))
)

复制

很简单吧。要是限制字母或只允许某字符输入,这个就复杂了哦,直接使用下面的即可

 (initget "y n Y N")
(setq hj_de (getkword "\n<是否保存原对象,Y:保存/N:删除>: <N>"))

复制

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: