(defun c:test (/ ss) (princ (strcat "\n*** 将配筋率大于2%的字符显红V070528 ***")) (princ (strcat "\n [它山之石图形工作室]")) (princ) (IF (setq ss (ssget '((0 . "*TEXT") (1 . "#*-#*-*#")))) (progn (GL-SSMAP '(lambda (e / str) (setq e (vlax-ename->vla-object e) str (vla-get-textstring e) str (GL-StrParse str "-") str (apply 'max (mapcar 'atoi str)) ) (if (<= 0.2 str) (vla-put-color e 1) ) ;_ 结束if ) ;_ 结束lambda ss ) ;_ 结束mapcar ) ;_ 结束progn ) ;_ 结束IF (princ (strcat "\n《同是土木人》系列群之群⑥原创作品" "\n******* 群号:30845285 *******" ) ;_ 结束strcat ) ;_ 结束princ (princ) ) ;_ 结束defun (defun GL-SSMAP (func ss / n) (if (eq 'pickset (type ss)) (repeat (setq n (fix (sslength ss))) (apply func (list (ssname ss (setq n (1- n))))) ) ;_ 结束repeat ) ;_ 结束if ) ;_ 结束defun (defun GL-StrParse (Str Delimiter / SearchStr StringLen return n char DelimiterLen ) (setq SearchStr Str) (setq StringLen (strlen SearchStr)) (setq DelimiterLen (strlen Delimiter)) (setq return '()) (while (> StringLen 0) (setq n 1) (setq char (substr SearchStr 1 DelimiterLen)) (while (and (/= char Delimiter) (/= char "")) (setq n (1+ n)) (setq char (substr SearchStr n DelimiterLen)) ) ;_ 结束while (setq return (cons (substr SearchStr 1 (1- n)) return)) (setq SearchStr (substr SearchStr (+ DelimiterLen n) StringLen)) (setq StringLen (strlen SearchStr)) ) ;_ 结束while (reverse return) ) ;_ 结束defun ;| (GL-StrParse "7-9-10" "-") ==>("7" "9" "10") |; 这是他山的作品,请改造成点取“8-9-8”求出最大值9,然后配出钢筋3根20的钢筋。 |