autocad lisp函数 ssname 框选的对象,怎么设置使的所选的对象依次从左至右的排序

函数ssname(ssn)框选的对象,(比如有一行数据12345。。。)怎么使的所选的对象依次从左至右的顺序输入到excel中(可以输入到excel中,但是不是原(123... 函数 ssname(ss n) 框选的对象,(比如有一行数据 1 2 3 4 5 。。。)怎么使的所选的对象依次从左至右的顺序输入到excel中(可以输入到excel中,但是不是原(1 2 3 4 5。。。)的顺序,怎么办? 展开
 我来答
朱06CAD
2014-04-09 · 知道合伙人软件行家
朱06CAD
知道合伙人软件行家
采纳数:4172 获赞数:18079
高中,熟悉AutoCAD。会autolisp及VBA程序。

向TA提问 私信TA
展开全部
;;设置空表ss3
(setq ss3 '())
;;循环提取ss的对象
;;取得数据对象,提取坐标@p1及内容#k;
(setq i 0 ss1 (ssname ss i) ss2 (entget ss1) @p1 (cdr (assoc 10 ss2)) #k (cdr (assoc 1 ss2)) i (+ i 1))
;;设置空表ss3,坐标及内容为一个表加入ss3

(setq ss3 (cons (list @p1 #k)ss3))
;;循环结束得到ss3
;;对表ss3排序
(setq ss3 (vl-sort ss3 (function (lambda (x y)(< (car (car x)) (car (car y)))))));;X排序从左到右
(setq ss3 (vl-sort ss3 (function (lambda (x y)(> (cadr (car x)) (cadr (car y)))))));;Y排序从上到下
追问
我的原意是按原来顺序输出,通过选择集选中后,但输出的顺序改变了,怎样保持原样输出?
(setq p1 (getpoint "\nz") p2 (getpoint"\ny") ss (ssget"w" p1 p2 ) ss_s (sslength ss) )
...
追答
提问补充完整。仔细研究函数lambda的功能,把这个功能放在里面。
http://zhidao.baidu.com/question/616365442069963132.html?sort=6&old=1#here
这个是文字排序功能,使其从左到右,从上到下,并写入表格。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式