明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2214|回复: 5

关于getkword

[复制链接]
发表于 2005-4-9 12:57:00 | 显示全部楼层 |阅读模式
我需要用getkword指令,但如果回车的话就是某一个答案,可以什样做呢?


(initget "Add Substract")


(setq ans (getkword "\nAdd or Substract : "))


(if (= ans nil) (setq ans "ADD"))                 <-- 好像不能这样做


(cond ((= ans "ADD") (....))


                                                                         :


请版主及高手们指教, 谢谢
发表于 2005-4-9 13:18:00 | 显示全部楼层

reply

可以这样做?有什么不对?
发表于 2005-4-9 13:19:00 | 显示全部楼层
是不是这个意思: (if (= ansd nil)
(setq ansd "ADD")
)
(initget "Add Substract")
(setq ans (getkword (strcat "\nAdd or Substract <" ansd "> : ")))
(if (= ans nil) (setq ans ansd))
(setq ansd ans)
(cond ((= ans "ADD") (....))
 楼主| 发表于 2005-4-9 15:09:00 | 显示全部楼层
为什么... (initget "Add Sub")
(setq ans (getkword "\ninput word : "))

(if (= ans nil) (princ "\nanswer is nil"))
(if (= ans "add") (princ "\nanswer is add"))
(if (= ans "sub") (princ "\nanswer is sub")) 是没有问题的,下面这个为什么不行呢 ? (initget "Add Substract Define")
(setq setoff_ans (strcase (getkword "\nDefine OFF layers : ")))  
(if (= setoff_ans nil) (setq SetOff_Ans "ADD"))
(cond ((= setoff_ans "DEFINE") (Define_Off_Layers))
((= setoff_ans "ADD") (Add_Off_Layers))
((= setoff_ans "SUBSTRACT") (Substract_Off_Layers)) ) 我会车时就出来 “; error: bad argument type: stringp nil" 应该跟"strcase"没有关系吧,我把它除掉也是一样的。
发表于 2005-4-9 15:46:00 | 显示全部楼层
原来我意思理解错了。 你这个函数用的位置错了。应该改成 (initget "Add Substract Define")
(setq setoff_ans (getkword "\nDefine OFF layers : "))  
(if (= setoff_ans nil) (setq SetOff_Ans "ADD"))
(setq setoff_ans (strcase setoff_ans))
(cond ((= setoff_ans "DEFINE") (Define_Off_Layers))
((= setoff_ans "ADD") (Add_Off_Layers))
((= setoff_ans "SUBSTRACT") (Substract_Off_Layers)) )
发表于 2005-4-9 18:24:00 | 显示全部楼层
这个可能更加实用、方便:
  1. (defun c:test()
  2.      (setq tx1 (ukword 1 "1 2 3 4 5" "\n1-上/2-下/3-左/4-右/5-中" tx1))   
  3.    )(defun ukword (bit kwd msg def / inp)
  4.    (if (and def (/= def ""))
  5.        (setq msg (strcat "\n" msg "<" def ">:")
  6.      bit (* 2 (fix (/ bit 2)))
  7.        )
  8.        (setq msg (strcat "\n" msg ":"))
  9.    )
  10.    (initget bit kwd)
  11.    (setq inp (getkword msg))
  12.    (if inp
  13.        inp
  14.        def
  15.    )
  16. )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 10:04 , Processed in 0.170369 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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