找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 32700|回复: 242

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

 火... [复制链接]

已领礼包: 604个

财富等级: 财运亨通

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

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

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

×
本帖最后由 /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. ;;*****************************************************************************通用点表排序

评分

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

查看全部评分

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

已领礼包: 862个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 685个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 837个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

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

使用道具 举报

已领礼包: 1034个

财富等级: 财源广进

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

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

使用道具 举报

已领礼包: 3394个

财富等级: 富可敌国

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

使用道具 举报

已领礼包: 3919个

财富等级: 富可敌国

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

使用道具 举报

已领礼包: 363个

财富等级: 日进斗金

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

已领礼包: 6881个

财富等级: 富甲天下

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 04:08 , Processed in 0.511482 second(s), 57 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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