用gh提取导入的实体模型的表皮面,是否有更好的逻辑

在钣金软件中建的实体钣金件,因为专业钣金件做工艺切口等方便,但是没有批量展开编号处理功能等,为此导到犀牛用GH编程解决,但是碰到一个问题,实体模型建模都是封闭BREP,在GH中展开是要提取表皮的,这样就需要删除侧边和内表面,数量多不想手工复制,为此专门找了些逻辑,写了个程序,基本能解决问题,但是有些形状,这种思路是提不出表皮的,发上来,希望老师和高手给于指导优化,如果能找到更好的普遍适用的逻辑最好.做的过种中,发现多个BREP,如果有面面挨在一起,间距为零,炸开成面后,
用犀牛GH提取导入的实体模型的外表面.gh (233.7 KB)


软件会把多个重叠在一起的面当一个面处理,这个问题比较复杂,请看程序

外表面.gh (155.2 KB)

我删除了其中2个物体


一个物体模型本身就有问题,就不讨论了,模型修改完毕了自然成功
Snipaste_2022-08-29_17-44-10
另一个模型有一个内侧的转角面边长刚好是1.6
这个你可以自己发挥再去增加逻辑

你的GH总体思路清晰,不过还是有很多电池不熟,建议再把所有运算器过一遍。

好的,谢谢,电池确实还在练习学习中

数字和布尔可以互相做强制转换

数字转化为布尔的原则是:0转换为false,其他转换为true,包括负数也都是true
布尔也可以转化为数字,原则是:false转化为0,true转化为1

利用这个原则可以节约很多运算器,例如我这里mass addition的用法

好的,感谢,经过老师的指点,又提高了

针对你文件中的这些模型,我也提供一种偏定制化的思路:
根据壁厚曲面的结构线特性:短方向的结构线长度和钣金壁厚值非常接近。

由这个特性规划出的方案是:随机抽离每块曲面的结构线,通过测量短方向结构线的长度来筛选出侧边面,将剩余的曲面重新组合后即可得到想要的结果,和预期效果会比较接近。


回头又看了一眼上面的程序,感觉还是有一些不够完善的地方,这里再做个简单的补充:

↓第1部分 剔除边角碎面

↓第2部分 筛选壁厚曲面,这个和之前的思路是一样的

↓第3部分 组合其他的曲面,筛选出需要的表皮

2 个赞

非常谢谢Ansen!老师提供的这个方法,我照此先做一个,堪称完美,再多找几个模型试试,彻底搞清楚后,再来发贴

谢谢Ansen 老师的再次优化,特别是可视化,和一些细节的优化,对于模型完美,就是标准答案.但是我发现一个问题,对于内部曲面有问题有重叠有交叉,但外表面完好的模型,还是需要另找方案,我昨天晚上想到把圆弧和平面分开处理,对平面想通过找面的法线,通过测法线方向,内外二点距离,另外通过包围盒取出立方体中心点,再和面的中心点比较区分内外,来提取内部面直接删除,还没成熟,等我做一个大概再发上来

是的,没有完美的程序,所以需要多考虑各种可能的情况来优化程序。

模型有问题的情况下就着重解决模型的问题,将问题分离。
先让模型变规范变正确,然后套入后面的算法

1 个赞

提取钣金外表皮.gh (131.4 KB)

想增加一个曲面连续的判断功能 ,好像只能提取结构线再判断