找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1752|回复: 3

[选择集] 根据选择方式自动确定基点的选择集行列排序

[复制链接]

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-9-27 09:06:03 | 显示全部楼层 |阅读模式
函数发布
函数名称: XD::Pickset:TableSortbySelect
调用格式: (XD::Pickset:TableSortbySelect ss row x)
参数说明: ;;ss - pickset
;;row --- row --- 排序方式,0 按行 1 按列,选择方式为拾取或 F 方式时无效
;;x-oper- 行方向,'< 以SS整体包围盒的0/1连线做基线(小号在下),'> 以2/3连线做基线(小号在上)
;;y-oper- 列方向,'< 以SS整体包围盒的0/3连线做基线(小号在左),'> 以1/2连线做基线(小号在右)
返回值: 排序后的选择集
函数简介: 根据选择方式自动确定基点的选择集行列排序
函数来源: 二次修改
函数作者:
适用版本: 不限 
最后更新时间: 2013-09-27
备注: -
演示图片: -

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

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

×
本帖最后由 st788796 于 2013-9-27 09:07 编辑

  1. ;;ss - pickset
  2. ;;row --- row --- 排序方式,0 按行 1 按列,选择方式为拾取或 F 方式时无效
  3. ;;x-oper- 行方向,'< 以SS整体包围盒的0/1连线做基线(小号在下),'> 以2/3连线做基线(小号在上)
  4. ;;y-oper- 列方向,'< 以SS整体包围盒的0/3连线做基线(小号在左),'> 以1/2连线做基线(小号在右)
  5. (defun XD::Pickset:TableSortbySelect (ss row x-oper y-oper / pts->dircect info el pts mod)
  6.   (defun pts->dircect (p1 p2 / an mod)
  7.     (setq an (angle p1 p2))
  8.     (cond
  9.       ((< 0. an (* pi 0.5)) ;_左下
  10.        (setq mod 0)
  11.       )
  12.       ((< (* pi 0.5) an pi) ;_右下
  13.        (setq mod 1)
  14.       )
  15.       ((< pi an (* pi 1.5)) ;_右上
  16.        (setq mod 2)
  17.       )
  18.       (t (setq mod 3))
  19.     ) ;_左上
  20.     mod
  21.   )
  22.   (setq info (ssnamex ss 0))
  23.   (if (member (car info) '(1 4)) ;_ Pick & f
  24.     (setq el (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
  25.     (progn ;_2 w & wp ; 3 c & cp
  26.       (setq pts (mapcar 'cadr (cdadr info)))
  27.       (if (= (length pts) 4)
  28. (setq mod (pts->direct (car pts) (caddr pts)))
  29. (setq mod
  30.         (pts->direct (car pts) (apply 'xdrx_points_centroid pts))
  31. )
  32.       )
  33.       (setq el (xd::pickset:tablesort ss row  mod x-oper y-oper))
  34.     )
  35.   )
  36.   el
  37. )

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

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-9-27 18:18:33 | 显示全部楼层
这个和 XD::Pickset:TableSort 有什么区别?

点评

ssget 有 pick f w c wp cp 几种选择方式,这个就是根据选择方式自动确定基点,更智能点,比如用两点F方式选择,返回由起点到终点排序的实体表  详情 回复 发表于 2013-9-27 18:24
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2013-9-27 18:24:55 来自手机 | 显示全部楼层
本帖最后由 st788796 于 2013-9-27 18:42 编辑
newer 发表于 2013-9-27 18:18
这个和 XD:ickset:TableSort 有什么区别?


ssget 有 pick f w c wp cp 几种选择方式,这个就是根据选择方式自动确定基点,更智能点,比如用两点F方式选择,返回由起点到终点排序的实体表

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2013-10-22 22:43:25 | 显示全部楼层
经仔细分析,此函数有问题,对 W C 的点信息不过哪个方向选择始终第一点是左上点
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-11 05:14 , Processed in 0.321646 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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