; Marc'Antonio Alessi, Italy
; http://xoomer.virgilio.it/alessi
;
; Function: ALE_SsGetFilter
;
; Version 1.00 - 22/02/2005
; Version 1.01 - 04/03/2006 - added (setvar "ERRNO" 0)
;
; Description:
; Ssget with filter list
;
; Arguments:
; PrmStr = User prompt [STR]
; FltLst = ssget filter list
;
; Example:
; (ALE_SsGetFilter "Select attibuted block(s)" '((0 . "INSERT") (66 . 1)))
;
; Return Values:
; [PICKSET] Selection set
; nil if user press 'Return' or 'Space'
;
(defun ALE_SsGetFilter (PrmStr FltLst / FlgSlt SelSet)
(setvar "ERRNO" 0)
(princ "\n_ ")
(prompt (setq PrmStr (strcat "\n" PrmStr ": ")))
(if
(while (not FlgSlt)
(if (setq SelSet (ssget FltLst))
(not (setq FlgSlt T))
(if (= 52 (getvar "ERRNO"))
(setq FlgSlt T)
(prompt (strcat "\nNo objects selected or valid, try again!"
PrmStr))
)
)
)
(not (princ "\nFunction cancelled. "))
SelSet
)
)