乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 44|回复: 5

[编程交流] 使用if初始化getkword(&G)

[复制链接]

95

主题

477

帖子

383

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
475
发表于 2022-7-5 17:29:13 | 显示全部楼层 |阅读模式
我试图用if和语句让用户选择一个对象,然后我问用户一个问题。我试图用默认选项提示,并且只允许最大值/最小值。然而,当我将initget语句放在(if)之前时,它似乎工作不正常
  1. (initget "Maximum mInimum")
  2. (if
  3.    (and
  4.      (setq ent (selectif "\nSelect structure type to test: " prd))
  5.      (setq *dropans*
  6.             (cond
  7.               (
  8.                (getkword
  9.                  (strcat "\nDo you want to test for [Maximum/mInimum] drop <"
  10.                          (setq *dropans*
  11.                                 (cond (*dropans*)
  12.                                       ("Maximum")
  13.                                 )
  14.                          )
  15.                          ">: "
  16.                  )
  17.                )
  18.               )
  19.               (*dropans*)
  20.             )
  21.      )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 17:52:35 | 显示全部楼层
我建议如下:
  1. (if (setq ent (selectif "\nSelect structure type to test: " prd))
  2.    (progn
  3.        (or *dropans* (setq *dropans* "Maximum"))
  4.        (initget "Maximum mInimum")
  5.        (if (setq tmp (getkword (strcat "\nDo you want to test for [Maximum/mInimum] drop <" *dropans* ">: ")))
  6.            (setq *dropans* tmp)
  7.        )
  8.    )
  9. )

不需要在if语句的测试表达式中包含第二个提示,因为第二个提示不能返回null。
回复

使用道具 举报

95

主题

477

帖子

383

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
475
发表于 2022-7-5 17:58:35 | 显示全部楼层
谢谢李!我将它包含在and语句中的唯一原因是,我将有第三个提示,可以返回null。如果我理解正确,我需要两个If语句,一个在另一个里面?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:08:10 | 显示全部楼层
 
这是实现它的一种方法;否则,在测试第三个提示符返回的值之前,可以在测试表达式中使用progn语句来计算许多表达式。
回复

使用道具 举报

95

主题

477

帖子

383

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
475
发表于 2022-7-5 18:24:16 | 显示全部楼层
啊,这是个好主意!我忘了可以在and语句中使用progn函数。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:35:00 | 显示全部楼层
不客气您可以在任何地方使用progn函数,因为这只是一个S表达式,就像任何其他AutoLISP函数的求值一样。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 03:58 , Processed in 0.434465 second(s), 64 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表