本帖最后由 树櫴希德 于 2023-8-6 11:08 编辑
关于选择含数字文字
- (ssget '((0 . "text,mtext") (1 . "*[0-9]*") ) ) ;选择字母数字结合文字和数字
- (ssget '((0 . "text,mtext") (1 . "~[0-9]*") ) ) ;选择非纯数字文字和字母数字结合文字
- (ssget '((0 . "text,mtext") (1 . "~*[0-9]*") ) ) ;选择纯非数字文字
- (ssget '((0 . "text,mtext") (1 . "~*[~--9]*") ) ) ;选择纯数字文字=====这个才是 用于求和
- (ssget '((0 . "text,mtext") (1 . "[-1-9]*") ) ) ;选择纯数字文字(含负数)
- ;;功能:带提示、关键字、过滤表、选择错误时的提示并且会亮显所选对像的entsel
- ;;用法:( clh-entsel 提示信息 关键字 过滤表 选择错误时提示)
- ;;举例:(clh-entsel "\n请选择一个圆:" "A B C" '((0 . "circle")) "\n所选对像不符合要求!请重新选择:")
- ;(clh-entsel "\n请选择一个数字:" "A B C" '((0 . "TEXT")(1 . "~*[~-1-9]*")) "\n所选对像不符合要求!请重新选择:")
- ;;说明:过滤表与ssget的过滤表相同;函数由CLH521,2009.6.7参考了一些网上资料整理编写
- (defun clh-entsel (msg key fil ermsg / el ss)
- (while (and (setvar "errno" 0)
- (not (and (setq el (apply '(lambda (msg key) (initget key) (entsel msg)) (list msg key)))
- (if (= (type el) 'str)
- el
- (if (setq ss (ssget (cadr el) fil))
- ss
- (progn (princ ermsg) (setq ss nil))
- );if
- );if
- );and
- );not
- (/= (getvar "errno") 52)
- );and
- );while
- (if (= (type el) 'list) (redraw (car el) 3));亮显选中的对像
- el
- )
- ;clh-entsel函数完毕========================================================
|