
- ;;;=============================================================================
- ;;;改进后:模糊查询
- (defun C:TT (/ CMD_OLD E I LST NAME PT SS STR)
- (princ "\n**在"TEXT"对象中模糊查询**")
- ;;
- (setq CMD_OLD (getvar "CMDECHO"))
- (setvar "CMDECHO" 0)
- ;;
- (if (and (/= (setq NAME (getstring "\n请输入查询内容:")) "")
- (or (setq SS (ssget "x"
- (list (cons 0 "TEXT") (cons 1 NAME))
- )
- )
- ;;; (setq SS (ssget "x"
- ;;; (list (cons 0 "TEXT")
- ;;; (cons 1 (strcat NAME "*"))
- ;;; )
- ;;; )
- ;;; )
- ;;; (setq SS (ssget "x"
- ;;; (list (cons 0 "TEXT")
- ;;; (cons 1 (strcat "*" NAME))
- ;;; )
- ;;; )
- ;;; )
- (setq SS (ssget "x"
- (list (cons 0 "TEXT")
- (cons 1 (strcat "*" NAME "*"))
- )
- )
- )
- )
- )
- (progn
- ;;组建排序表
- ;;其格式为:((字符长度 字符 点位)()...)
- (setq LST '()
- I 0
- )
- (repeat (sslength SS)
- (setq E (ssname SS I)
- STR (cdr (assoc 1 (entget E)))
- PT (cdr (assoc 10 (entget E)))
- )
- (setq LST (cons (list (strlen STR) STR PT E) LST))
- (setq I (1+ I))
- ) ;_结束repeat
- ;;排序
- (setq LST (vl-sort LST
- (function (lambda (E1 E2)
- (< (car E1) (car E2))
- )
- )
- )
- )
- ;;逐个显示
- (foreach N LST
- (progn
- (command "._pan" (caddr N) (getvar "VIEWCTR"))
- (redraw (last N) 3)
- (princ "\n找到内容: "")
- (princ (cadr N))
- (getstring "" 请按空格键继续...: ")
- (redraw (last N)4)
- )
- ) ;_结束foreach
- )
- (princ "\n没有找到!")
- )
- ;;
- (setvar "CMDECHO" CMD_OLD)
- (princ)
- );_结束defun
代码着色显示效果,见:http://zml84.blog.sohu.com/64529687.html |