乐筑天下

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

[编程交流] 提示输入默认值

[复制链接]

12

主题

44

帖子

32

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-5 16:35:57 | 显示全部楼层
哎呀。它就在那里。一定是我不能马上翻译的短语之一(英语不是我的母语,你可能已经猜到了),而且被认为不重要。很抱歉我有时也这么做。
尽管如此,我还是不明白为什么我必须在每个条件下使用两个括号。也许答案是“因为它是一个条件,而不是一个参数,条件必须在括号中,即使它是每种情况下唯一的东西”。但如果是这样,最后一个条件。。。默认条件。。。那么为什么它没有括号呢?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 16:39:51 | 显示全部楼层
 
别担心;不需要道歉。
 
 
不一定,这取决于条件是原子还是表达式,因为测试参数可能是任何AutoLISP数据类型。
 
例如,考虑以下人为示例:
  1. (defun c:test ( / a b c )
  2.    (cond
  3.        (   (progn
  4.                (initget "Red Blue Green")
  5.                (setq a (getkword "\nWhat's your favourite colour? [Red/Blue/Green] <more>: "))
  6.            )
  7.        )
  8.        (   (progn
  9.                (initget "Yellow White Black")
  10.                (setq b (getkword "\nWhat's your favourite colour? [Yellow/White/Black] <more>: "))
  11.            )
  12.        )
  13.        (   (progn
  14.                (initget "Orange Purple Brown")
  15.                (setq c (getkword "\nWhat's your favourite colour? [Orange/Purple/Brown] <I don't know!>: "))
  16.            )
  17.        )
  18.    )
  19.    (princ
  20.        (strcat "\nYour favourite colour is "
  21.            (cond
  22.                (    a    )
  23.                (    b    )
  24.                (    c    )
  25.                ("unknown")
  26.            )
  27.        )
  28.    )
  29.    (princ)
  30. )

 
测试或/和函数也是如此-使用用户输入的getpoint:LMB返回值或RMB返回nil。
回复

使用道具 举报

12

主题

44

帖子

32

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-5 16:47:24 | 显示全部楼层
返回您的代码
 
  1. (defun C:test ( / a )
  2. (cond
  3.    ( (setq a (getpoint "\nFirst try <enter to skip>: ")) (alert "First point specified.") )
  4.    ( (setq a (getpoint "\nSecond try  <enter to skip>: ")) (alert "Second point specified.") )
  5.    ( (setq a (getpoint "\nThird try  <enter to skip>: ")) (alert "Third point specified.") )
  6.    ( (alert "\nYou didn't tried enough - all I wanted was a point!") )
  7. ); cond
  8. (princ)
  9. ); defun C:test
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 16:48:59 | 显示全部楼层
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:56:27 | 显示全部楼层
back to your code
 
  1. ((= s "Y") 1) ;if s equals "Y", then it'll return 1((= s "y") 1) ;if s equals "y", then it'll return 11 line only needed((= (strcase s) "Y") 1) ;if s equals "Y", then it'll return 1
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 21:02 , Processed in 0.469256 second(s), 71 queries .

© 2020-2025 乐筑天下

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