找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: dyjwyqz5221

[已解决] 直线如何按连续性分组

[复制链接]

已领礼包: 20个

财富等级: 恭喜发财

发表于 2018-6-8 19:03:50 | 显示全部楼层
dyjwyqz5221 发表于 2018-6-8 18:02
“再分组,分组的规则是你求出直线特征点到 包围盒的距离,距离排序后的分组,你就把同一行的,不挨着的 ...

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

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2018-6-8 21:49:51 | 显示全部楼层
当年消重线就是这么写的。

直线都是 y=kx+b ,k相同的时候,其实直接排序x就可以(除垂直线)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

 楼主| 发表于 2018-6-11 07:55:22 | 显示全部楼层
我试一下,感觉不一定能分开的样子。

点评

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

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2018-6-11 07:59:56 | 显示全部楼层
dyjwyqz5221 发表于 2018-6-11 07:55
我试一下,感觉不一定能分开的样子。

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

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

 楼主| 发表于 2018-6-11 09:06:09 | 显示全部楼层
我按你们的说法,水平直线的中点到选择集包围盒左竖直边的距离进行索引,结果一行内的断开直线还是在一个表内。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2018-6-11 09:08:35 | 显示全部楼层
dyjwyqz5221 发表于 2018-6-11 09:06
我按你们的说法,水平直线的中点到选择集包围盒左竖直边的距离进行索引,结果一行内的断开直线还是在一个表 ...

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

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

 楼主| 发表于 2018-6-11 09:10:14 | 显示全部楼层
再有我写的那段程序只适合于水平方向及垂直方向的直线,斜直线恐怕有问题

点评

斜线也没有问题,选包围盒做边界只是正交时候的一个选择,如果你斜的,你就选这个角度垂直方向一个无限远的距离做参照就够,你只要保证所有要排序的位于这个参照一侧就行了。  详情 回复 发表于 2018-6-11 09:15
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

 楼主| 发表于 2018-6-11 09:13:58 | 显示全部楼层
本帖最后由 dyjwyqz5221 于 2018-6-11 10:09 编辑

我发出来,大家看看,给优化一下,使用范围要包括斜直线。
这个找不到,后面的程序就无法进行了,卡在这里了。
(setq ss (ssget '((0 . "line")(8 . "S_NET")))
        box (XD::Entity:box ss)
        pt1 (car box)
        pt2 (cadr box)
        pt4 (last box)
)

(setq lst1 (xd::list:groupbyindex
                    (mapcar '(lambda (x)
                                (setq pts (xdrx_getpropertyvalue x "startpoint" "endpoint" "midpoint"))
                                (setq ang (angle (car pts) (cadr pts)))
                                (if (equal ang 0.0 1e-1)
                                        (progn
                                                  (setq baseline (list pt1 pt4))
                                                (list ang (list (cadr #startpoint) (list (abs (xdrx_point_dist2Line #midpoint (car baseline) (cadr baseline))) x)))
                                        )
                                        (progn
                                                (setq baseline (list pt1 pt2))
                                                (list ang (list (car #startpoint) (list (abs (xdrx_point_dist2Line #midpoint (car baseline) (cadr baseline))) x)))
                                        )      
                                )
                         )
                           (xdrx_pickset->ents ss)
                    )
                1e-3
        )
)
(setq lst2
        (mapcar
                '(lambda(x)
                        (xd::list:groupbyindex (cdr x) 1e-1)
                )
                lst1
        )
)

;;;仅对x方向直线按直线的中点到选择集ss包围盒box左垂直边的距离进行排序
(setq lst3-x
        (mapcar
                '(lambda(x)
                        (xd::list:groupbyindex (cdr x) 1e-1)
                )
                (car lst2)
        )
)







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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 06:15 , Processed in 0.208731 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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