设为首页收藏本站

晓东CAD家园-论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 11414|回复: 159

[源码] 点表排序、图元坐标点排序--------通吃------最终版2014.3.22

  [复制链接]

签到天数: 1400 天

连续签到: 1 天

[LV.10]以坛为家III

已领礼包: 604个

财富等级: 财运亨通

发表于 2013-9-9 08:34:33 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 /db_自贡黄明儒_ 于 2014-3-22 14:46 编辑

;;最终版
游客,如果您要查看本帖隐藏内容请回复

  1. ;;*****************************************************************************通用点表排序
  2. ;;ssPts: 1 选择集,返回图元列表
  3. ;;           2 点表(1到n维 1维时key只能是x或X),返回点表
  4. ;;          3 图元列表,返回图元列表
  5. ;;Key: "xyzXYZ"任意组合,例如"yX",y在前表示y坐标优先,小y表示从小到大(注:二维点时,不能有z)
  6. ;;FUZZ: 允许误差
  7. ;;注:点表可以1到n维混合,Key长度不大于点的最小维数。
  8. ;;示例1 (HH:ssPts:Sort (ssget) "YxZ" 0.5);返回(<Entity name: 7ef7b3a8> <Entity name: 7ef7b3a0>)
  9. ;;示例2 (HH:ssPts:Sort (list '(2 3) '(3 5)) "Yx" 0.5);返回((3 5) (2 3))
  10. ;;示例3 (HH:ssPts:Sort '(<Entity name: 7ef79a28> <Entity name: 7ef79a10>) "YxZ" 0.5)
  11. ;;本程序是在fsxm的扩展 自贡黄明儒 2013年9月9日
  12. (defun HH:ssPts:Sort (ssPts KEY FUZZ / E EN FUN LST N SORTPTS SORTSS)
  13.   ;;1 点列表排序
  14.   (defun sortpts (PTS FUN xyz FUZZ)
  15.     (vl-sort pts
  16.              '(lambda (a b)
  17.                 (if (not (equal (xyz a) (xyz b) fuzz))
  18.                   (fun (xyz a) (xyz b))
  19.                 )
  20.               )
  21.     )
  22.   )
  23.   ;;2 排序
  24.   (defun sortpts1 (PTS KEY FUZZ)
  25.     (setq Key (vl-string->list Key))
  26.     (foreach xyz (reverse Key)
  27.       (cond ((< xyz 100)
  28.              (setq fun >)
  29.              (setq xyz (nth (- xyz 88) (list car cadr caddr)))
  30.             )
  31.             (T
  32.              (setq fun <)
  33.              (setq xyz (nth (- xyz 120) (list car cadr caddr)))
  34.             )
  35.       )
  36.       (setq Pts (sortpts Pts fun xyz fuzz))
  37.     )
  38.   )
  39.   ;;3 本程序主程序
  40.   (cond        ((= (type ssPts) 'PICKSET)
  41.          (repeat (setq n (sslength ssPts))
  42.            (if (and (setq e (ssname ssPts (setq n (1- n))))
  43.                     (setq en (entget e))
  44.                )
  45.              (setq lst (cons (append (cdr (assoc 10 en)) (list e)) lst))
  46.            )
  47.          )
  48.          (mapcar 'last (sortpts1 lst KEY FUZZ))
  49.         )
  50.         ((Listp ssPts)
  51.          (cond ((vl-consp (car ssPts)) (sortpts1 ssPts KEY FUZZ))
  52.                ((= (type (car ssPts)) 'ENAME)
  53.                 (foreach e ssPts
  54.                   (if (setq en (entget e))                     
  55.                     (setq lst (cons (append (cdr (assoc 10 en)) (list e)) lst))
  56.                   )
  57.                 )
  58.                 (mapcar 'last (sortpts1 lst KEY FUZZ))
  59.                )
  60.          )
  61.         )
  62.   )
  63. )
  64. ;;*****************************************************************************通用点表排序

评分

参与人数 2D豆 +20 贡献 +2 收起 理由
xshrimp + 10 + 1 很给力!经验;技术要点;资料分享奖!
XDSoft + 10 + 1

查看全部评分

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

签到天数: 374 天

连续签到: 1 天

[LV.9]以坛为家II

已领礼包: 849个

财富等级: 财运亨通

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

使用道具 举报

签到天数: 607 天

连续签到: 1 天

[LV.9]以坛为家II

点击这里给我发消息

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

使用道具 举报

签到天数: 974 天

连续签到: 1 天

[LV.10]以坛为家III

已领礼包: 836个

财富等级: 财运亨通

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

使用道具 举报

签到天数: 1036 天

连续签到: 4 天

[LV.10]以坛为家III

点击这里给我发消息

已领礼包: 1256个

财富等级: 财源广进

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

使用道具 举报

签到天数: 820 天

连续签到: 1 天

[LV.10]以坛为家III

已领礼包: 1034个

财富等级: 财源广进

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

使用道具 举报

签到天数: 1199 天

连续签到: 58 天

[LV.10]以坛为家III

已领礼包: 40个

财富等级: 招财进宝

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

使用道具 举报

签到天数: 1402 天

连续签到: 2 天

[LV.10]以坛为家III

已领礼包: 2992个

财富等级: 家财万贯

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

使用道具 举报

签到天数: 1539 天

连续签到: 9 天

[LV.Master]伴坛终老I

已领礼包: 2002个

财富等级: 金玉满堂

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

使用道具 举报

签到天数: 507 天

连续签到: 1 天

[LV.9]以坛为家II

已领礼包: 349个

财富等级: 日进斗金

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

使用道具 举报

签到天数: 78 天

连续签到: 1 天

[LV.6]常住居民II

点击这里给我发消息

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

使用道具 举报

签到天数: 332 天

连续签到: 1 天

[LV.8]以坛为家I

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

使用道具 举报

签到天数: 1644 天

连续签到: 7 天

[LV.Master]伴坛终老I

点击这里给我发消息

已领礼包: 4587个

财富等级: 富可敌国

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

使用道具 举报

签到天数: 28 天

连续签到: 1 天

[LV.4]偶尔看看III

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

使用道具 举报

签到天数: 159 天

连续签到: 1 天

[LV.7]常住居民III

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2018-12-18 18:38 , Processed in 0.202819 second(s), 60 queries , Gzip On, WinCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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