Grasshopper是否可以做结构分析的动画?

关注
Grasshopper是否可以做结构分析的动画?www.shan-machinery.com

Grasshopper做结构分析肯定是很直观的,配合动态来演示简直一目了然。至于做动画的画,更适合讲解像卡拉特拉瓦,Thomas Heatherwick的动态结构建筑。我们以伞这种常见结构作为案例来看看用Grasshopper制作的动画如何阐释动态结构的运转原理。

伞作为一个具有保护功能和意向的元素,在建筑和景观设计中经常被作为方案概念。有的是拥有遮风避雨的空间的建筑,比如塞维利亚的都市阳伞。也有真的做出伞的开合机械运动的动态建筑,如麦地那广场太阳伞。可开合的伞状构筑物配合采光和遮阳挡雨的需求可以灵活开闭,实现建筑功能的转换,在越来越多的新设计中出现。

▼都市阳伞 Metropol Paraso - 西班牙 塞维利亚

都市阳伞 Metropol Paraso - 西班牙 塞维利亚麦地那广场太阳伞 - 沙特Al Bahr Towers - 阿布扎比

伞状的构筑物背后是严谨的参数化思维。尤其是设计出可开合伞状建筑,必然要先对普通伞的机械原理非常了解。下面将通过分析伞开闭时的机械运动以及基本几何关系来了解伞的设计原理,并通过Grasshopper模拟出伞的开合机械运动。在GH中实践过后,就能对伞的构造有比较深入的理解。

1.伞的几何原理

一直以来伞对我都有一种魔力。

除了平时人们用来遮雨防晒之外,伞还蕴藏着机械感的张力,“嚯”地一下,从一个瘦长的,甚至短小的物体,在手中瞬间长大成一个能遮蔽人的临时庇护所。

这种机械感的魅力在习以为常的日常使用中渐渐被淡化。潜意识里觉得,伞就骨架撑起了一块布而已。但当仔细去思考伞的结构时,不禁想知道,是什么力量可以让这块布能被反复撑成蘑菇形的?为什么不能是个完整的平面圆伞,或者撑开后骨架间的伞面不是一块一块平整的三角形?

这些问题除了因为功能需求的考虑外,构件的机械运动原理是伞成为现在我们常见的造型的重要原因。

不管我们用什么工具研究伞的结构和机械运动,我们都要先了解伞开合时各部件的运动逻辑。

伞基本单元结构

伞在开启时的机械运动主要分为两部分。第一部分是由内支撑杆件聚集在主杆件上的控制模块(也就是我们开伞时首推上去的那个部件)朝向主杆顶端方向移动,内支撑杆件另一端连接着的外伞骨就被同时向外推开。

在这个过程中内支撑与外伞骨以及主杆件相交的三点一直保持着等腰三角形的状态,两腰的长度保持不变,而底的长度(主杆件相交部分)不断缩小。

第二部分是当控制模块快到主杆件顶部的时候,外伞骨再继续往外张开就和主杆件成90度了,这样一来伞面就会变成一大张平的!所以这时需要有个作用力把外伞骨拉住,限制他们继续向上了。但是外伞骨之间并没有多余的连接件了,他们是怎么互相牵制住的呢?

一开始我把伞开合的机械运动当作是纯粹的杆件连接变形运动,只分析杆件,便出现前面的疑惑。仔细观察了伞面后发现,牵制外伞骨继续扩张的力是由伞面材料产生的,因为伞面平铺时的形状和面积是固定的,伞继续外开的话就超出了固定面积以及周长。这时手推控制模块就会收到阻力,再稍微用力一点使控制模块卡入卡槽,开伞的机械运动就完成了,伞面也由于和杆件的相互推力形成了蘑菇形。

平时看到伞面受到破坏掉的伞结构总是会像散架了一样结构杆件到处乱甩,其实就是因为柔软的伞面是维持结构整体性的重要元素。没了伞面就失去了张力。

2.Grasshopper模拟基本单元

策略:同样根据机械运动原理分为两部分,称之为等腰三角形阶段蘑菇阶段

控制伞开合的主要输入参数这里我选择用外伞骨与主杆件的夹角值。还有另一个思路,可以用控制模块的点在主杆件上的移动距离作为输入控制主参数,毕竟现实中人们就是这么使用伞的。

首先根据常见的伞设定结构尺寸,主杆件1000mm,外伞骨750mm,内支撑杆300mm。外伞骨与主杆件的夹角活动范围设定在3°和72°之间,并把60°作为区分等腰三角形阶段和蘑菇阶段的临界值

等腰三角形阶段开合控制

30°与60°时的状态。腰长b不变,底a和高h不变。

蘑菇阶段张拉状态模拟

外伞骨的曲线外端点E保持在60°时的位置,而交点T还在继续被往上撑。

在临界点交接的时候比较Tricky的就是如何转换弧线的末端输入点。这里使用了Pick n' Choose这个工具,可以根据输入的主控制角度参数是否大于60°临界值而选择不一样的点,达到转换的目的。

3.旋转复制出完整结构线

以主杆件为轴旋转复制成12份

建立旋转角度值合集的时候可以用等差数列series,也可以用Range。这里选择用Range,因为是旋转最大值360°已经确定了的情况,然后伞面分成几份可以通过控制Steps的值灵活调整。

4.添加伞面细节

制作伞面的基本策略是把结构线条loft起来即可。但在此之前,为了让伞面收合的效果更加真实,应该先分析伞面结构线在开合时的变形情况。

在模拟伞面的布面松弛效果时,主要的策略是用Catenary工具让结构线的距离保持一样长,这样也就做到了伞面面积一致。但在构建Catenary需要的方向信息时我做了多次的尝试才想清楚逻辑。一开始我以为由于重力的原因,伞面收合时是竖直向下垂的,所以统一给了一个向下的Z向量。撑开的时候效果看似还可以,但在快完全收合的时候就发现不对,意识到闭合时伞的布面应该是折叠向外散开,于是我又尝试了构建一个放射方向的向量合集。向外放射的松弛方向会导致伞面在快完全撑开时呈现一朵花的轮廓,也不符合常理。

花一般的小洋伞,好像也没有不行

方向向量内外上下又反复转了几下都不理想,我决定好好思考一下这个问题。

仔细观察之后我发现重力都布面松弛方向的影响并不大,所以布面的变形方向应该是折叠后往垂直于外伞骨的方向向外变形了。

现在要获得这种类似于曲面法线方向的向量信息,并做到和要处理的曲线一一对应。我选择回到单元中提取出向量合集,再把他们旋转到和曲线对应的位置上,应该是相对简单的方法。

垂直与外伞骨方向的单元向量合集有了结构线之后就可以把布面Loft出来了

当曲线的合集多而且分支复杂的时,loft操作容易出现各种问题。在本案例中就需要先连接FLip Data,再连Loft电池。同时还应该注意Loft Options里面选择align sections,以及是否flatten或者graft数据,逐步排查确保生成正确图形。

5.模型细化

细节的添加就可以看各自的喜好去细化了,我主要添加了外伞骨收口构件,主杆件顶部突出的金属,还有主杆件上用于推拉的滑动控制模块。有兴趣的话甚至可以做出节点上的旋转关节。

再设置一些金属材质和半透明材质分别给杆件和伞面,一个相对真实的动态伞模型就基本完成了。关于材质和光影的设置还可以点击参考之前的这篇回答grasshopper如何做动画?

Grasshopper在建模上是个高效的软件。通过添加一些主要的构件细节和材质设定,可以使画面快速从分析图变成真实感强的模型。

通过对伞的结构和开合运动的模拟,以后想要运用类似结构在建筑或景观上,心里就比较有底了。对其他细节感兴趣的朋友可以到我的微信公众号 术TheTRICK 后台留言进行交流。

想要文中Grasshopper文件的朋友也可以关注我的微信公众号 术TheTRICK 留邮箱,公众号专攻各种建筑相关的动画技术,干货众多,欢迎交流。

https://www.shan-machinery.com