分组排序求助

大佬们 这种排序有啥思路吗

需要你发送一下这些板材的3DM模型

测试.3dm (3.8 MB)
大佬 整个模型大小超限了 只取了部分

测试.3dm (3.8 MB)


大佬这是您前两年的一个回复帖 UV排序后需要分组是什么原理

你用U分组了以后得按照V排序
这个原理应该说很直观

对照你的图,你按照 从上到下/按照行 分组以后
针对每一行 你得按照 从左到右/按照列 排序

好的大佬,我试试


大佬 这大概是哪一步错了

你不给程序也就算了
连个排序原则都不说的么?
用xyz还是uv分的?
如果是uv,uv基准曲面呢

sort.gh (12.5 KB)
sort.3dm (2.5 MB)

情况不容乐观:
首先:模型本身就已经很稀碎了,要逆向你得多手工描绘几条参考线。
其次:

是UV的 我直接拉了大方框当基准曲面 我看到您说过uv排序大概是是子曲面在基准曲面的位置 这个图只是练手的 分割的曲面都稀碎… :rofl:

我个人更喜欢用 Point Group 来处理这类问题,之前有个类似的帖子提供了思路:

需要事先准备一张曲面来做 UV 参考:

通过调整 Point Group 组件中空间点距离的容差数值来分组:

最终的效果:

大佬你原来的那个帖子我上个月看到过 没吃很透 但也能自己独立写出来了 但仅限于这种环形形状 :joy:换个就懵逼了 感谢您的指导

重点不在形状,而是借助参考面的 UV 结构来做后续的事情。

如果你划分面板之前的面 UV 结构符合后面的排序要求,那就应该保留原来的面;如果不符合,你就要创建一张适合的面,类似我前面帖子中那样的处理手段。


怎么把面板上的点放到参考面上去获取 UV 坐标信息,方法很多,这里只是提供一个思路,实际应用中应该根据具体的问题做变通,总之没有魔法能够解决所有的情况,只有选择适合的方法去解决问题。

如果这个划分的过程是一开始就在 GH 中做的,那么你应该在划分之前就要考虑后面可能产生的问题,进而规划你的程序,而不是等到这种完全乱序的阶段再去想排序的问题,这是在走弯路。

是的 大概是初学者的思维还跟不上 :rofl:

不论是用我的简单粗暴的除法取整,还是Ansen版主的point group,
都不可能从根本解决你的排序问题
因为细碎的面太多,特殊情况也很多,稍微换一种情况,你可能又得重新设计算法了。

就你这个规模来看,与其写GH,倒不如rhino手工按顺序拾取,我感觉还更快一些。

这样逆反常规的工作流,是常态吗?是的话,你就得做好准备了
因为逆向本来就是不合理的,找不到完美的逆向算法,这是非常正常的事情
只能用时间来弥补了

所以不是程序够不够强劲的问题,而是从根源上这样的问题还会不会继续冒出来

1 个赞

没 我只是在找这种例子练习排序 可能是找的例子不大合适 不大适合拿来练手 真要工作对于我来说肯定是手工了 因为不光没把握是否准确 而且时间也不允许我去折腾

应该练习的是分析和解决问题的思维方式,而不是排序本身

排序只是万千问题中的一个。你把排序的套路学会了,也只是学会了一种套路,而真正意义上的思维方式没有得到训练。因为你训练的目的不对,训练的目的是让思维打开,而不是训练“我解决X问题的能力”

从一开始为什么要分组,你就不理解
解释完以后你还是没有理解,于是生搬硬套了一下,发现结果不对
因为这个思路的关键点除了分组,还有构筑一个参照系
简单的造型参照系可以选xyz平面
复杂物体你可以从现有物体找,例如一个很大的面,或者某个面自己就是一个大面的切片(untrim即可)
如果现有物体也没有,你就得构筑

掌握了底层逻辑“参照系”,你的目的就只剩下一个
千方百计弄出这个参照系,能用现成的就用,没有现成的就构筑
甚至你可能花费90%的时间在构筑参照系,而真正编写排序gh的只有10%的时间

1 个赞

:pray:感谢 受教了