tnvsb 发表于 2022-7-5 17:50:57

查找时需要紧急帮助

亲爱的朋友们:,
 
我正在尝试开发一个代码,该代码应该接受用户输入,然后它应该匹配指定的列表值,然后它应该将输出作为警报框。
下面是代码,我写道。但不起作用。请帮帮我。。
 
(定义C:LSTBRKER()
 
(setq BRKLST(列表
(列出“SM”6 16 32 64 100)
(列表“MED”125 160 200 250 315 400)
(列出“HVY”600 800 950 1000 1500 2000 3000)
(列表“HY+”3500 4500 5700 6200 8500)
)
 
(setq RQBLST(getstring“\n请输入所需的断路器类别=”))
(SETQ REQCAP(STRCASE RQBLST))
(如果(=(REQCAP)(assoc BRKLST列表))
(程序
(Princ(assoc BRKLST))
)
)
)
 
高级谢谢

Tharwat 发表于 2022-7-5 18:02:11

欢迎来到CADTutor。
 
这就是你想要的吗?
 

(defun c:test(/ lst st f)
(setq lst '(("SM" 6 16 32 64 100)
             ("MED" 125 160 200 250 315 400)
             ("HVY" 600 800 950 1000 1500 2000 3000)
             ("HY+" 3500 4500 5700 6200 8500))
       )
(if (and (/= ""
            (setq st
                     (getstring
                     "\n Please Enter the Required Breaker Catogories = ")))
          (setq f (assoc (strcase st) lst))
          )
   (alert (vl-princ-to-string f))
   )
(princ)
)

David Bethel 发表于 2022-7-5 18:07:52

在这些类型的场景中,我更喜欢(getkword):
 

(defun c:lstbrker (/ brklst input data)

(setq brklst '(
   ("SM" 6 16 32 64 100)
   ("MED" 125 160 200 250 315 400)
   ("HVY" 600 800 950 1000 1500 2000 3000)
   ("HY+" 3500 4500 5700 6200 8500)))

(initget 1 "Sm Med hVy Hy+")
(setq input (strcase (getkword "\n Please Enter the Required Breaker Catogories - Sm/Med/hVy/Hy+ ")))
(setq data (assoc input brklst))
(terpri)
(prin1 data)

(prin1))

 
-大卫

BIGAL 发表于 2022-7-5 18:18:10

我现在最喜欢的是使用列表框函数see lee mac。com仅强制正确拾取。
 

(LM:listbox "Please pick" '("SM" "MED" HVY" "HY+") 1)

tnvsb 发表于 2022-7-5 18:25:56

您好,非常感谢您的快速支持和准确回复。。。。。。

tnvsb 发表于 2022-7-5 18:30:51

非常感谢Tharwat的快速回复。。很好的解决方案。。。

Tharwat 发表于 2022-7-5 18:36:27

 
非常欢迎你。

tnvsb 发表于 2022-7-5 18:50:06

嗨,大卫·贝瑟尔,非常感谢你的宝贵意见,看起来很不错。您的选择使lisp代码输出很棒。它还显示了所需的输入。。。太棒了。。。。再次感谢。。

David Bethel 发表于 2022-7-5 18:57:54

 
哈哈,我想我更像是一个键盘手而不是鼠标手
页: [1]
查看完整版本: 查找时需要紧急帮助