删除文字字母前后缀?
(vl-list->string(vl-remove-if-not '(LAMBDA (x) (and(<= x 57) (>= x 45)) )(vl-string->list "a-12345.635asx")))
"-12345.635"
本帖最后由 树櫴希德 于 2023-8-6 11:08 编辑
关于选择含数字文字
(ssget '((0 . "text,mtext") (1 . "**") ) ) ;选择字母数字结合文字和数字
(ssget '((0 . "text,mtext") (1 . "~*") ) ) ;选择非纯数字文字和字母数字结合文字
(ssget '((0 . "text,mtext") (1 . "~**") ) ) ;选择纯非数字文字
(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函数完毕========================================================
这个函数很有作用
页:
[1]