乐筑天下

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

[编程交流] ssget函数的包装器

[复制链接]

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-5 18:23:38 | 显示全部楼层 |阅读模式
;; ssget-李Mac
;; ssget函数的包装器,允许使用自定义选择提示
;; 消息-[str]选择提示
;; arg-[lst]ssget参数列表
 
  1. (defun LM:ssget ( msg arg / sel )
  2.    (princ msg)
  3.    (setvar 'nomutt 1)
  4.    (setq sel (vl-catch-all-apply 'ssget arg))
  5.    (setvar 'nomutt 0)
  6.    (if (not (vl-catch-all-error-p sel)) sel)
  7. )

 
 
为什么ssget需要包装?
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-5 18:47:11 | 显示全部楼层
 
这个“包装器”允许您快速提供自定义选择过滤器和用户提示,而无需在每个例程中重复代码;包装器只是一个子函数。
 
干杯
 
 
 
[编辑]-快速示例:
 
  1. (defun c:SelectCircles (/ ss)
  2. (if (setq ss (LM:ssget "\nSelect circles: " '(((0 . "CIRCLE")))))
  3.    (prompt
  4.      (strcat
  5.        "\nYou selected "
  6.        (itoa (setq ss (sslength ss)))
  7.        " circle"
  8.        (if (= 1 ss)
  9.          ""
  10.          "s "
  11.        )
  12.      )
  13.    )
  14. )
  15. (prompt "\nNothing selected ")
  16. (princ)
  17. )
  18. (defun c:SelectLines (/ ss)
  19. (if (setq ss (LM:ssget "\nSelect lines: " '(((0 . "LINE")))))
  20.    (prompt
  21.      (strcat
  22.        "\nYou selected "
  23.        (itoa (setq ss (sslength ss)))
  24.        " line"
  25.        (if (= 1 ss)
  26.          ""
  27.          "s "
  28.        )
  29.      )
  30.    )
  31. )
  32. (prompt "\nNothing selected ")
  33. (princ)
  34. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 19:20:25 | 显示全部楼层
 
因为标准AutoLISP函数不允许使用自定义选择提示,如代码标题中所述。
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-5 19:31:22 | 显示全部楼层
我懂了。。。
 
1.试图了解诺穆特如何影响提示。。。但是,当塞纳里奥真的与众不同时,就不能真正上演一场塞纳里奥。
2.用简单的英语,这段代码实际上在说什么?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 19:48 , Processed in 0.547482 second(s), 60 queries .

© 2020-2025 乐筑天下

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