热门标签

打印 上一主题 下一主题

[教学] Grasshopper提取单元边线的顺序一致性分析

[复制链接]
查看: 17332|回复: 2

11

主题

37

帖子

217

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
217
跳转到指定楼层
楼主
发表于 2018-1-8 10:14:30 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

我们的 Rhino3D原厂课堂 (QQ群:308638931) 有学员反应:GH的“Brep Edges ”工具提取曲面的4个边缘顺序不一致。

初步思考怀疑这是一个Bug,所以需要进一步测试找出错误点并反馈给GH开发工程师修复,我们做了两块最简单的四边面单元进行一些测试。
1.检查曲面单元的UV方向是否一致
首先这两个曲面的UV方向必须保持一致是前提,否则边线是否一致就无从谈起了。我们先写一个简单的程序检查两块曲面的UV方向。这里简叙过程思路,不做具体的GH组件的说明。
在两块曲面单元上通过“Evaluate Surface ”组件的UV定位找到曲面上对应的位置点,例如图中两块面的左下角的一个点。
“Evaluate Surface ”可以输出UV坐标位置的一系列几何数据,包括我们需要的UV坐标的矢量方向,因此右边部分把UV两个方向的矢量显示出来即可。
结果可以从图中看到,两个曲面单元对应点位置的UV方向是完全一致的(如图中的箭头)

“刚开始接触Rhino和GH的用户并不能准确的理解UV坐标的概念,简单理解为曲面上的XY坐标即可。所以下图中“Evaluate Surface ”组件的UV并不是输入一个“点”而是输入点在曲面上的定位“坐标

2.检查曲面单元的UV方向是否一致
把这两块曲面单元输入“Brep Edges ”提取边线。如下图,因为有2块面因此各提取出4条边线,输出结果为2个列表,每个列表里4条线。
提取出边线后开始检查边线的顺序是否一致,思路就是从每条边线上取出一个点(一般用中点)然后根据列表的顺序标出数字1,2,3,4.....这样就可以看到每块面提取出的四条边线在列表里的顺序了,程序如上图。可以看到虽然两块测试的面UV方向一致,但提取的边线顺序并不一致。

“通过测试可以确认“Brep Edges ”组件提取的边线顺序的确不一致。但这就能说明这是一个BUG么?我们最后再分析,首先我们先通过别的办法解决提取的边线顺序不一致的问题”

3.换一个思路解决问题
如果用户对Rhino里曲面的结构概念了解,那么其实对于这种完整的四边面,他的四个边其实就是曲面边缘的ISO线(等参数线),因此我们可以借助"Iso Curve "组件获取曲面边缘线。
这里可以通过定位UV坐标为 {0,0} 和{1,1}来提取到边缘线,可以看下面的gif动画帮助理解为什么。

曲线提取出后合并为一个列表即可,这里需要做一点数据处理,需要用户了解GH的数据控制的基本法则,作为思路分享的文章这里就不讲太具体了,最终的结果就是两块面对应输出两个列表,每个列表里就是对应的四条边,则个程序的结果通过右边的顺序分析可以看到现在每个单元的4个边顺序就完全一致了。



文章写到这里差不多该结束了,但是尴尬的是,我这时候才注意到:其实直接有另外两个组件就可以做到,如下图所示这两个组件可以直接提取单元的边线而且顺序是一致的。其实“Brep Edges ”本来就不是用来以顺序提取边线的工具,它更主要的作用是根据边缘的几何属性做分类提取,所以从程序设计上来说这并不是这个组件的BUG,换句话说如果对提取的线有明确的顺序一致性要求那么根本不该用这个工具来做。


所以前面的内容算是白做了吗?

GH这种参数化理念的设计软件本身就是为了突破传统软件的功能的限制,因此如果GH提供的工具无法直接达到设计想要的效果,换一个思路绕过去即可。所以解决问题的过程中介绍的思路和方法才是对学习者最有价值的部分,你注意到了吗?


尊重版权   坚持原创
扩展阅读
Rhino 6 新功能介绍视频发布...
Rhino原厂视频教学离线版正式发布...
Robert McNeel & Associates  ---   Rhino原厂
Rhino教育版的价值...


收藏1 分享
[db:签名]
回复

使用道具 举报

10

主题

20

帖子

408

积分

中级会员

Rank: 3Rank: 3

积分
408
QQ
沙发
发表于 2018-1-16 10:19:24 | 只看该作者
DIXON老师,我也测试了,发现无论是brep wireframe,deconstruct brep,brep edges都没有按正常的曲面uv排序。
只有iso curve,自己提取结构线,然后再排序可以,问题是,线的起始端点也没有排序。而对与joincurve的连接排序规律,猜测与第一条直线为准,但也不能确定起始点以及顺逆方向。
程序详见附件:

四种排序方式如下图:


关于几种提取面边线顺序的问题.zip

24.99 KB, 下载次数: 1171

回复

使用道具 举报

0

主题

5

帖子

18

积分

新手上路

Rank: 1

积分
18
板凳
发表于 2018-1-16 11:05:31 | 只看该作者
本帖最后由 白师兄 于 2018-1-16 11:07 编辑

为毛俺的是一样的呢?不管原始曲面的UV是一致还是不一致俺这都是一致的结果


回复

使用道具 举报

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

本版积分规则

精彩推荐

Rhino 6 的授权管理模式的调整与转换

2020-08-20 图文教学

2020冬季 Rhino 建筑造型系统面授课程

2020-03-21 面授课程

课程介绍|Rhino工业/艺术设计曲面造型高级

2020-03-20 面授课程

2020暑期 Grasshopper参数化系统面授课程

2020-03-20 面授课程

VisualARQ 2.7 发布更新

2020-02-17 新闻

VisualARQ 2.6 发布更新

2019-12-12 新闻

ShapeMap–复杂形体的表面纹理贴合参数化插

2019-11-04 新闻

图文教学 | Rhino 6 细分建模 BARCELONA 椅

2019-06-30 图文教学

Rhino3D(犀牛)中文网

  • 深圳:0755-29642189
  • 上海:021-56496412
  • 成都:028-61592400
  • support@shaper3d.com

关注我们

Copyright   ©2007-2017  Rhino3D犀牛中文网  Powered by©Discuz!     ( 粤ICP备12051517号-5