- 积分
- 1923
- 明经币
- 个
- 注册时间
- 2011-10-2
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
;;; 屏幕内快速选择
(defun c:ff (/ *error* SS1 I ENS EL FL FLL FLS SS2)
(defun *error* (msg)
(or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*,*中断,*取消*,*退出*") (princ msg))
)
(or (setq SS1 (cadr (ssgetfirst))) (setq SS1 (ssget)) (exit))
(repeat (setq I (sslength SS1)) (setq ENS (cons (ssname SS1 (setq I (1- I))) ENS)))
(foreach en ENS
(setq EL (entget en))
(setq FL (append '((-4 . "<AND"))
(vl-remove 'nil (mapcar '(lambda (i) (assoc i EL)) '(0 8 62))) ;DXF组码匹配(0 8 62)
'((-4 . "AND>"))
)
)
(or (member FL FLL) (setq FLL (cons FL FLL)))
)
(setq FLS (append '((-4 . "<OR")) (apply 'append FLL) '((-4 . "OR>"))))
(cond ((setq SS2 (ssget "_W" (getvar 'VSMIN) (getvar 'VSMAX) FLS))
(sssetfirst nil SS2)
(foreach x (list "\n选择了" (sslength SS2) "个。") (princ x))
)
((foreach x (list "\n无匹配选择对象,保留原选择集的" (sslength SS1) "个对象。") (princ x)))
)
(princ)
)
|
|