折叠的程序

1536547030525

折纸是一个非常令人着迷的活动,它不仅是孩子们钟意的玩具,也是设计师形式构造的一种方式,一张简单的纸通过折叠可以演变出千万种形式。那么当你灵感突现通过折纸创造了一种新奇有趣的形式时,如何快速而高效地构建计算机模型进行进一步的深化呢?Grasshopper+Kangaroo可以帮你实现一个折叠的程序。

折叠过程的构建逻辑


1536548163038

以一个简单的折纸为例,在这个折纸过程中,其基本单元是一个正方形,正方形的中心与四角的连线为凸起的边,正方形的中心与两边中点的连线为凹下的边,简化成平面图即为下图所示:

1536548667868

同样对于下图的折纸形式,其平面形式如下:

1536548920087

当我们施加力使绿线部分下凹,橙线部分上凸即形成了相应的折叠形式,而这个过程可以通过kangaroo的电池模拟出来。

一个简单折叠过程的实现


kangaroo插件已经内置在了rhino6的grasshopper中,本文电池均采用rhino6版本的grasshopper和kangaroo。我们首先用kangaroo实现一张正方形纸的对折。kangaroo的所有运算都需要用到solver运算器,其基础输入条件有作用力、力的锚固点和几何图形。

一、基础输入条件

在折叠的过程中力的作用点为折叠面的角点,而力的方向一直平行于折叠面的法线方向,因此我们首先求出折叠面的法线向量作为动态锚固点的输入参数。另外在整个折叠过程中,折叠面的边长不变,因此我们求出折叠面的各边边线输入kangaroo length(line)运算器。

1536556021279

二、折叠的实现

实现折叠的主要运算器为Hinge运算器,其几个输入参数含义如下,注意折叠角度的单位为弧度单位。

1536556525630

最终的电池图为:

1536556853772

1536556872695

更加复杂的折叠


了解折叠过程实现的基本原理之后我们就可以实现更加复杂的折叠了。相比简单的对折,复杂的折叠通常有两个方向的折叠,即凸起和凹下的折叠,因此我们区分出凸起和下凹的线,并给他们相反的折叠角度即可实现复杂折叠。

一、网格的划分

新建一个基础平面,画出折叠线后,用折叠线切割基础平面后合并成一个多重曲面,再将此多重曲面转换为网格。

1536559754847

二、区分凸起线与下凹线

根据折叠线与凸起线、下凹线的中点距离筛选出凸起的折叠线和下凹的折叠线。

1536561318720

其他的操作与之前一致,最终电池图如下:

1536561561041

1536561587933

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google photo

You are commenting using your Google account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s