ssget函数的包装器
;; ssget-李Mac;; ssget函数的包装器,允许使用自定义选择提示
;; 消息-选择提示
;; arg-ssget参数列表
(defun LM:ssget ( msg arg / sel )
(princ msg)
(setvar 'nomutt 1)
(setq sel (vl-catch-all-apply 'ssget arg))
(setvar 'nomutt 0)
(if (not (vl-catch-all-error-p sel)) sel)
)
为什么ssget需要包装?
这个“包装器”允许您快速提供自定义选择过滤器和用户提示,而无需在每个例程中重复代码;包装器只是一个子函数。
干杯
[编辑]-快速示例:
(defun c:SelectCircles (/ ss)
(if (setq ss (LM:ssget "\nSelect circles: " '(((0 . "CIRCLE")))))
(prompt
(strcat
"\nYou selected "
(itoa (setq ss (sslength ss)))
" circle"
(if (= 1 ss)
""
"s "
)
)
)
)
(prompt "\nNothing selected ")
(princ)
)
(defun c:SelectLines (/ ss)
(if (setq ss (LM:ssget "\nSelect lines: " '(((0 . "LINE")))))
(prompt
(strcat
"\nYou selected "
(itoa (setq ss (sslength ss)))
" line"
(if (= 1 ss)
""
"s "
)
)
)
)
(prompt "\nNothing selected ")
(princ)
)
因为标准AutoLISP函数不允许使用自定义选择提示,如代码标题中所述。 我懂了。。。
1.试图了解诺穆特如何影响提示。。。但是,当塞纳里奥真的与众不同时,就不能真正上演一场塞纳里奥。
2.用简单的英语,这段代码实际上在说什么?
页:
[1]