找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2968|回复: 11

[每日一码] 选择集排序(按坐标)

[复制链接]

已领礼包: 604个

财富等级: 财运亨通

发表于 2013-7-6 10:16:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
  1. ;;;******************************************************选择集SS排序
  2. ;;1 图元列表->选择集
  3. ;;2 选择集排序->图元列表
  4. ;;3 选择集排序->选择集
  5. ;;"D->U"从下到上;"U->D"从上到下;"L->R"从左到右;"R->L"从右到左
  6. ;;示例(setq ss (ssget)) (SS_Sort ss "D->U" "L->R")下到上,左到右
  7. ;;自贡黄明儒 2012.8.28
  8. ;;1 [功能] 图元列表->选择集 By caiqs
  9. (defun lst->ss (lst / SS X)
  10.   (setq ss (ssadd))
  11.   (last (mapcar '(lambda (x) (ssadd x ss)) lst))
  12. )
  13. ;;2 [功能] 选择集排序->图元列表
  14. (defun SS_Sort_list (SS Sort1 Sort2 / E LST N PT10)
  15.   ;;2.1 表 排序
  16.   (defun Sort_pList (PLIST Sort1 Sort2 / SYMBOL1 SYMBOL2)
  17.     (cond
  18.       ((member Sort1 (list "L->R" "R->L"))
  19.        (cond ((equal Sort1 "L->R") (setq Symbol1 '>))
  20.              (T (setq Symbol1 '<))
  21.        )
  22.        (cond ((equal Sort2 "D->U") (setq Symbol2 '>))
  23.              (T (setq Symbol2 '<))
  24.        )
  25.        (vl-sort
  26.          PLIST
  27.          '(lambda (p1 p2)
  28.             (cond (((eval Symbol1) (car (car p1)) (car (car p2))) T)
  29.                   ((and        (= (car (car p1)) (car (car p2)))
  30.                         ((eval Symbol2) (cadr (car p1)) (cadr (car p2)))
  31.                    )
  32.                    T
  33.                   )
  34.             )
  35.           )
  36.        )
  37.       )
  38.       (T
  39.        (cond ((equal Sort1 "D->U") (setq Symbol1 '>))
  40.              (T (setq Symbol1 '<))
  41.        )
  42.        (cond ((equal Sort2 "L->R") (setq Symbol2 '>))
  43.              (T (setq Symbol2 '<))
  44.        )
  45.        (vl-sort
  46.          PLIST
  47.          '(lambda (p1 p2)
  48.             (cond (((eval Symbol1) (cadr (car p1)) (cadr (car p2))) T)
  49.                   ((and        (= (cadr (car p1)) (cadr (car p2)))
  50.                         ((eval Symbol2) (car (car p1)) (car (car p2)))
  51.                    )
  52.                    T
  53.                   )
  54.             )
  55.           )
  56.        )
  57.       )
  58.     )
  59.   )
  60.   ;;2.2 选择集SS排序 主程序
  61.   (repeat (setq n (sslength ss))
  62.     (setq e (ssname ss (setq n (1- n))))
  63.     (setq pt10 (cdr (assoc 10 (entget e))))
  64.     (setq lst (cons (cons pt10 e) lst))
  65.   )
  66.   (mapcar 'cdr (Sort_pList lst Sort1 Sort2))
  67. )
  68. ;;3 [功能] 选择集排序->选择集
  69. (defun SS_Sort (SS Sort1 Sort2)
  70.   (lst->ss (SS_Sort_list SS Sort1 Sort2))
  71. )
  72. ;;;******************************************************选择集SS排序

评分

参与人数 1D豆 +6 贡献 +1 收起 理由
XDSoft + 6 + 1

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2013-7-6 10:33:27 来自手机 | 显示全部楼层
支持一个,排序很难用通用,大多数根据需要自己改造来自: Android客户端
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1742个

财富等级: 堆金积玉

发表于 2013-7-6 17:23:32 | 显示全部楼层
根据组码来排序的大多可以通用
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2018-1-27 17:31:07 | 显示全部楼层
谢谢分享谢谢分享谢谢分享谢谢分享谢谢分享谢谢分享
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2020-5-31 13:32:21 | 显示全部楼层
感谢楼主,学习学习。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 102个

财富等级: 日进斗金

发表于 2020-9-3 01:14:21 | 显示全部楼层
感谢楼主,学习学习。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2020-9-3 14:32:50 | 显示全部楼层
不错不错,正是我需要的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2020-9-3 15:46:43 | 显示全部楼层
谢谢分享谢谢分享
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 79个

财富等级: 招财进宝

发表于 2020-11-26 09:50:24 | 显示全部楼层
谢谢分享,正在学习!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

发表于 2020-11-26 15:34:47 | 显示全部楼层
好程序,学习了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2023-4-18 15:20:22 | 显示全部楼层
很好用,谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2023-5-6 09:50:13 | 显示全部楼层
感谢楼主,学习学习。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-26 18:23 , Processed in 0.404491 second(s), 51 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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