明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2637|回复: 7

按 X, Y, Z 排序坐标表(AutoLISP, VisualLISP解决方案):

[复制链接]
发表于 2004-4-1 11:59 | 显示全部楼层 |阅读模式
按 X, Y, Z 排序坐标表(AutoLISP, VisualLISP解决方案):


                 1) 用AutoLISP实现的代码:






                 2) 用VisualLISP(vl-sort函数)实现的代码:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2004-4-1 12:47 | 显示全部楼层
发表于 2004-4-2 20:41 | 显示全部楼层
这个程序也不错,只可惜只能对一维表排序. (defun c:px(/ ab)
(setq ab (list 2 5 -5 3 9 1 5 0))
(xl_sort ab >)
) (defun xl_sort (lst fun / k nlst lst2)
(foreach n lst
(setq k T
lst2 (apply 'append (mapcar '(lambda (x)
(if (and K ((eval fun) n x))
(progn (setq k nil) (list n x))
(list x))) nlst))
nlst (if K (append lst2 (list n)) lst2)))
)
发表于 2004-4-2 21:03 | 显示全部楼层
这个程序好象就是我的链接里的一个程序,不过作者将它删了。。。


如果你知道VL扩展函数vl-sort的用法,你就不会这么说了(只适用一维),任意列表都可以适用的,只是你不会用罢了。。。


(xl_sort '((1 3 4) (5 6 3) (3 4 2) (2 3 6)) (lambda(e1 e2) (< (car e1) (car e2))))
发表于 2004-4-2 21:05 | 显示全部楼层
老兄,贴我的程序怎么也不在程序中声明一下?


一维弄好了,多维排序还不好办么?
发表于 2004-4-2 21:44 | 显示全部楼层
sorry,我菜鸟嘛.
发表于 2004-4-2 21:50 | 显示全部楼层
谢谢,太精辟了.致敬.
 楼主| 发表于 2004-4-5 09:31 | 显示全部楼层

ok

收获的...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-19 22:18 , Processed in 2.177390 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表