院长的程序问题是当一行单行文字没有数字序号时,也自动给加上了序号,为了更好的说明程序作用, 现把程序思路再写一下,这段程序基本构架已经好了,只是排序函数还待研究 (defun C:test (/ ss s1) (setq ss (ssget '((0 . "TEXT"))));选择多个单行文字 (setq k -1) (setq nss (ssadd)) (repeat (sslength ss) (setq en (ssname ss (setq k (1+ k)))) (setq s1 (substr en 1 1));提取每个单行文字的第一个字 (if (= s1 "~*[~`--9]*");假如第一个是数字,则参与排序 (ssadd s1 nss) ;把第一个是数字的文字组成一个新选择集 ) ) (setq S2 (SORT-SE nss 1 nil nil nil)) (setq i -1) (repeat (sslength s2) (princ (cdr (assoc 1 (entget (ssname S2 (setq I (1+ I))))))) ) )
|