◤01 笔者最近在网上闲逛的时候,偶然间看到了一个很有趣的墨西哥的竹木结构社区公共建筑Luum Temple。该建筑整体呈五星形,竹子之间通过结构三角形网格相互搭接支撑,共同编织成了五面悬链线的结构造型, 这五个悬链线角相互支撑,共同在建筑中心立柱处汇交。为了实现优美顺滑的建筑效果,要求三角形的每部分区域的网格线条尽量规整一致。
笔者最近在网上闲逛的时候,偶然间看到了一个很有趣的墨西哥的竹木结构社区公共建筑Luum Temple。该建筑整体呈五星形,竹子之间通过结构三角形网格相互搭接支撑,共同编织成了五面悬链线的结构造型, 这五个悬链线角相互支撑,共同在建筑中心立柱处汇交。为了实现优美顺滑的建筑效果,要求三角形的每部分区域的网格线条尽量规整一致。
图片来自网络
那么对于这种异形的空间曲面,如何实现其杆件能够尽量规整均匀呢?怀揣着这样的疑问,笔者开始了在曲面找形方面的实践探索。在之前的文章《探讨空间自由曲面结构找形-以大英博物馆及荷兰航海博物馆为例》中已经大致介绍了自由曲面找形的逻辑理论方法,在今天的这篇文章中,我们来初步探索下grasshopper中的kangaroo的找形应用方法。
◤02
下面笔者根据一个简单的异形三角形网格曲面(见下图),运用grasshopper中的kangaroo插件进行一个简单网格重构的初步摸索学习。
首先我们看一下这个网格各构件的尺度,根据length电池可以测出每个网格线的长度,进而求出其平均值。可以看到杆件的长度平均值约在4.02m。每根杆件长度与平均长度之比多在0.88左右,网格的大部分杆件还是比较规整一致的,但还是有一定可以优化的空间。
接下来我们确定一下优化的思路,目标是使三角形网格更加均匀化,即内部的三角形网格各节点在保证曲面尽量不大幅度变动的情况下(这里允许曲面有细微的调整),可以自由地变换。边界条件先初步设定为曲面最外边框保持不变,其内部杆件可以允许改变。
kangaroo的下载及安装教程请见Food4Rhino网站,这里不再赘述。整个kangaroo包括很多种电池以实现各种功能,其中最核心的运算器 – KangarooPhysics,它包括Force objects、AnchorPoints、Gemetry、SimulationReset这几个核心的数据输入端,我们需要将网格模型、约束点、优化目标等全部集中到这个运算器中。
第一步,在GH里读取原始网格之后,使用Mesh Edges这个电池,我们可以提取出这个曲面的边界以及其内部的网格线条。
将上方输出的naked edges边界曲线的各点提取出来施加约束—即接入到运算器的AnchorPoints端。将内部曲线interior edges接入到核心运算器的Gemetry作为待优化的模型。
同时需要通过UnaryForce这个电池对折现待优化的曲线交点处施加一个竖直向下的变形力。
考虑到我们的目标是使网格尽量均匀化,下面这个Equalize电池的主要作用就是使输入线段等长,可以帮助我们更好的实现网格均匀化的效果。
主要的几个部分如上所述,整个优化找行形的大致流程如下图:
开始运算得到最终的网格重构结果:
优化后的结果
最后我们以数据的形式输出优化后各网格边的长度:
与未优化前对比一下:
◤ 03
可以看到优化后平均值大致是没变化的,但是三角形网格分布更加的均匀了,比例基本都在0.97-1.00之间,而优化前基本是在0.88-1.03左右,优化后各边与平均值的离散程度更小。
由于笔者才刚刚开始学习此部分内容,上述的内容大致只是简单尝试应用kangaroo插件,此案例肯定存在许多不足与未考虑之处,大家若有不同的意见和好想法欢迎讨论交流,共同学习共同进步~