请问在lisp中如何按照编号后面的数字大小顺序来提取图元名称
本帖最后由 fangmin723 于 2017-7-26 13:52 编辑请教一下,想C1、C2、C3、C4、C5、C6、C7…………,把这些编号全部选中创建一个选择集,然后要怎么样才能按照后面数字的顺序在选择集中提取图元名称,请问在lisp中该如何操作,谢谢!
读取编号内容,编号与图元对应,建立一个表。然后表按顺序排列。(defun c:tes ( / &k1 &kw1 &ss1 &str1 x y)
(vl-load-com)
(princ "\n请选择编号文字")
(if (setq &kw1 (ssget '((0 . "TEXT") (1 . "C*,c*"))))
(progn
(setq &ss1 '());建立表
(while (setq &k1 (ssname &kw1 0))
(setq &kw1 (ssdel &k1 &kw1) &str1 (cdr (assoc 1 (entget &k1))));提取文字内容
(setq &str1 (atof (substr &str1 2)));去掉字母C变数值
(setq &ss1 (cons (list &str1 &k1) &ss1))
);while
(setq &ss1 (vl-sort &ss1 '(lambda (x y) (< (car x) (car y)))));按数值从小到大排列
;(princ &ss1)
(setq &ss1 (mapcar 'cadr &ss1));表里面去掉数值,只有图元
;(princ &ss1)
)
)
(princ)
)
页:
[1]