- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (defun kg:SsgetFilterReal ()
- '(
- (1 . "~*[~-.0-9]*") ; only minus signs, decimal points and numbers allowed
- (1 . "*`.*") ; there must be one decimal point
- (1 . "~*`.*`.*") ; only one decimal point allowed
- (-4 . "<OR")
- (1 . "~*-*") ; there is no minus sign
- (-4 . "<AND")
- (1 . "-*") ; the minus sign must be the first character
- (1 . "~*-*-*") ; only one minus sign allowed
- (-4 . "AND>")
- (-4 . "OR>")
- )
- )
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (defun c:Comp (/ ent ss i lst)
- (if
- (and
- (setq ent (entsel "\nPlease select a text for style, layer and text height filtering: "))
- (setq ent (entget (car ent)))
- (or
- (equal '(0 . "TEXT") (assoc 0 ent))
- (prompt "\nNot a text ")
- )
- (or
- (setq ss
- (ssget
- "_X"
- (vl-list*
- '(0 . "TEXT")
- (assoc 7 ent) ; style of digit text
- (assoc 8 ent) ; selected layer name
- (assoc 40 ent) ; selected text height
- (assoc 410 ent) ; current tab only
- ;; numerical text filtering:
- (kg:SsgetFilterReal)
- )
- )
- )
- (prompt "\nNo selection ")
- )
- )
- (mapcar
- '(lambda (a) (cdr (assoc 1 (entget a))))
- (repeat (setq i (sslength ss))
- (setq lst (cons (ssname ss (setq i (1- i))) lst))
- )
- )
- )
- )
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
通过对DXF 1使用更少的滤波器可以轻松实现这一点[me/less-codes]。但话说回来,我不确定,除非我们看到“其他”条件是什么。
我只是说 |