设为首页收藏本站

晓东CAD家园-论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2144|回复: 6

[选择集] (XD::Pickset:TableSortAtEcs) 基于行列的基于UCS的实体排序函数

[复制链接]

签到天数: 1370 天

连续签到: 6 天

[LV.10]以坛为家III

点击这里给我发消息

已领礼包: 144个

财富等级: 日进斗金

发表于 2013-10-25 11:19:53 | 显示全部楼层 |阅读模式
函数发布
函数名称: XD::Pickset:TableSortAtEcs
调用格式: (XD::Pickset:TableSortAtEcs ss ecs row basePt x-oper y-oper)
参数说明: 基于行、列的(支持UCS)的实体任意排序函数
参数:

ss ---- 选择集
ecs ---实体名 or X轴向量
row --- 排序方式,0 按行 1 按列
basePt- 实体的基点(包围盒4个角点, 0- 左下 1-右下 2-右上 3-左上)
x-oper- 行方向,'< 以SS整体包围盒的0/1连线做基线(小号在下),'> 以2/3连线做基线(小号在上)
y-oper- 列方向,'< 以SS整体包围盒的0/3连线做基线(小号在左),'> 以1/2连线做基线(小号在右)
返回值:
函数简介: XD::Pickset:TableSort函数的增强版,适合UCS下的表格类实体排序
函数来源: 原创
函数作者: XDSoft
适用版本: XDRX API 
最后更新时间: 2013-10-25
备注: -
演示图片: -

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

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

x
  1. ;|
  2. 基于行、列的(支持UCS)的实体任意排序函数
  3. 参数:

  4. ss ---- 选择集
  5. xAxis---实体名 or  X轴向量
  6. row --- 排序方式,0 按行 1 按列
  7. basePt- 实体的基点(包围盒4个角点, 0- 左下 1-右下 2-右上 3-左上)
  8. x-oper- 行方向,'< 以SS整体包围盒的0/1连线做基线(小号在下),'> 以2/3连线做基线(小号在上)
  9. y-oper- 列方向,'< 以SS整体包围盒的0/3连线做基线(小号在左),'> 以1/2连线做基线(小号在右)
  10. |;
  11. (defun XD::Pickset:TableSortAtEcs (ss xAxis row basePt x-oper y-oper / baseline baseline1 box ents ents1 oper p1 p2 p3 x x1 x2)
  12.   (defun _tt (ents basePt baseline oper / ents1 x x1 x2)
  13.     (setq ents1 (mapcar
  14.                   '(lambda (x)
  15.                      (cons x (XD::Entity:BoxAtEcs x xAxis))
  16.                    )
  17.                   ents
  18.                 )
  19.     )
  20.     (setq ents1 (mapcar
  21.                   '(lambda (x)
  22.                      (cons (abs (apply
  23.                                   'XD::Pnt:Dist2Line
  24.                                   (cons (nth basePt (cdr x)) baseline)
  25.                                 )
  26.                            ) (list (car x))
  27.                      )
  28.                    )
  29.                   ents1
  30.                 )
  31.     )
  32.     (setq ents1 (XD::List:MergeItemByNumKey ents1))
  33.     (setq ents1 (mapcar
  34.                   'cdr
  35.                   (vl-sort ents1 '(lambda (x1 x2)
  36.                                     (eval (list oper (car x1) (car x2)))
  37.                                   )
  38.                   )
  39.                 )
  40.     )
  41.   )
  42.   (if (= (type ss) 'PICKSET)
  43.      (setq ents (xdrx_pickset->ents ss))
  44.      (setq ents ss)
  45.   )
  46.   (setq ss (XD::Entity->Pickset ents))
  47.   (setq box (XD::Entity:BoxAtEcs ss xAxis)
  48.         p1 (car box)
  49.         p2 (cadr box)
  50.         p3 (last box)
  51.   )
  52.   (if (= row 0)
  53.     (progn
  54.       (setq baseline (list p1 p2))
  55.       (setq baseline1 (list p1 p3))
  56.     )
  57.     (progn
  58.       (setq baseline (list p1 p3))
  59.       (setq baseline1 (list p1 p2))
  60.     )
  61.   )
  62.   (setq ents1 (_tt ents basePt baseline x-oper))
  63.   (setq ents1 (mapcar
  64.                 '(lambda (x)
  65.                    (_tt x basePt baseline1 y-oper)
  66.                  )
  67.                 ents1
  68.               )
  69.   )
  70.   (mapcar
  71.     '(lambda (x)
  72.        (apply
  73.          'append
  74.          x
  75.        )
  76.      )
  77.     ents1
  78.   )
  79. )


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

签到天数: 2 天

连续签到: 1 天

[LV.1]初来乍到

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

使用道具 举报

签到天数: 77 天

连续签到: 1 天

[LV.6]常住居民II

已领礼包: 141个

财富等级: 日进斗金

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

使用道具 举报

签到天数: 85 天

连续签到: 1 天

[LV.6]常住居民II

已领礼包: 1个

财富等级: 恭喜发财

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

使用道具 举报

签到天数: 196 天

连续签到: 5 天

[LV.7]常住居民III

已领礼包: 35个

财富等级: 招财进宝

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

使用道具 举报

签到天数: 196 天

连续签到: 5 天

[LV.7]常住居民III

已领礼包: 35个

财富等级: 招财进宝

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

使用道具 举报

签到天数: 45 天

连续签到: 10 天

[LV.5]常住居民I

已领礼包: 75个

财富等级: 招财进宝

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2018-10-20 07:48 , Processed in 0.070460 second(s), 39 queries , Gzip On, WinCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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