Grasshopper 之 Graph Mapper 运算器(一)

要画一个二次抛物线,想着用函数来解决,后来发现了 Graph Mapper 这个运算器中的 Parabola。

用 Parabola 可以生成二次抛物线。

调用 Parabola 需要在 Graph Mapper 上单击鼠标右键,在菜单中选择 Graph types,再选择 Parabola。

Graph Mapper 还有很多函数类型,以后用到再做记录。

在选取 Parabola 之后,再双击 Graph Mapper 运算器,调出编辑器。

这个编辑器的左上角可以设置,其中 X 与 Y 表示的是函数输入值与输出值的范围,你可以通过修改他们的值来生成二次抛物线数据。

抛物线是作出来了,不过对 Parabola 的 X、Y 值的设置还是有些不太清楚。从结果反推,猜测这里的 X、Y 值是一个范围,并不是通过他们来确定这个二次函数。

安装 Grasshopper for Mac

太久不用 Grasshopper,果然被它给淘汰掉了。

今天打开 Windows,又一次的被更新玩弄了半个多小时,气得要死。幸亏在 Rhino3d 上看到了 Mac 版 Grasshopper 的消息,多少年没有关心,终于可以用上。赶紧下载安装。

下载地址:

Rhinoceros 5.0 WIP 20121218 – Mac 版

安装之后试用要授权,下载一个 Rhino for Mac,邮箱会受到授权码,填这个就好了。

安装好了之后打开,很兴奋,很幸福。

在启动 Grasshopper 时候按照习惯敲入命令,结果屁都没有。Google 了一下,原来命令改了。要在指令窗中输入:

ExplicitHistory

终于,可以在 Mac 上开心的玩 Rhino 了。

另外,其他插件的安装和 Windows 上无差别。所以第一件事就是将 Kangaroo 装上。

解决 Kangaroo 安装问题

换了电脑,重新安装 Rhino 和 Grasshopper,把之前用的一些插件也都重新安装了一遍。结果在安装完 Kangaroo 插件后运行 Grasshopper ,提示 Loading Errors,并且在点击 Close 之后,Kangaroo 不完整,工具栏中没有运行器。

上 Google 搜索关键词,找到许多用户都遇到过这样的情况。其中有人解释说:

是因为 Grasshopper 的版本高了,所以导致这个错误发生。

我尝试将 Grasshopper 的版本降低,甚至低于了之前我所安装版本很多,还是没有没有解决。

后来经过多次查找之后,还是发现了问题所在。

由于文件被锁定,所以出现了错误。

找到了问题,开始解决问题。

根据 Loading Errors 的显示,找到在安装 Kangaroo 时的这三个文件。

逐一右键调出属性窗口,选择解除锁定,确定。

重启 Rhino 打开 Grasshopper,就不再会有错误提醒,也能够看到 KangarooPhysics 的运算器了。

我现在所用的版本:

Rhino5(64-bit)

Grasshopper 0.9.0076

Kangaroo Physics 0.099

Kangaroo 2.02

Kangaroo 学习之 Vortex

在 Forces 集合中有一个 Vortex 运算器。

通过 Vortex 运算器可以创建一个绕轴旋转的力。

点逆时针绕轴选择,但是不知道如何控制旋转的速度和公转半径。

所以尝试将在不同限制条件下的结果做了个对比。

仅强度变化时。

此情况下,随着强度增加,公转半径也变大,所需要的迭代次数降低。

仅控制值变化时。

在迭代次数到达某个程度时候,公转半径几乎不再变化。

考虑一个极端的情况,在高强度下变化控制值。

控制值增加,公转半径也增加。控制值在100、500的时候曲线几乎重叠。

暂时没有得出一个明确的结论。

Kangaroo 学习之 SphereCollide

在 Forces 集合中有一个 SphereCollide 运算器。

这个 SphereCollide 运算器可以用来模拟球体碰撞。

想尝试模拟反复碰撞,结果没有成功。只是碰撞之后又回到一个控制距离上。

原本是希望通过 SphereCollide 运算器来模拟粒子的随机运动和碰撞,结果由于 PowerLaw 运算器在实现所有点连接的时候 Kanaroo 运算器无法运行,所以这个想法暂时无法实现。得另外找方法。

Kangaroo 学习之 UnaryForce

在 Forces 集合中有一个 UnaryForce 运算器。

这个 UnaryForce 运算器是用来模拟地心引力。

先用 PowerLaw 赋予两点间引力。当两点间引力大于地心引力时候,球不会掉落。

当两点间引力小于地心引力时候,球会掉落。

其中在 PowerLaw 中的输入项 Cutoff 值为“-25”,是为了保持两点间的距离始终不变,可模拟拉索。不过,应该要可以设置弹性模量就最好。

Kangaroo 学习之 Equalize

在 Forces 集合中有一个 Equalize 运算器。

这个 Equalize 运算器的作用是使线段长度变得均衡。

这里将周围的点锚固,中间的点释放,可以发现点间的连线长度发生了变化,中间点也发生了位置偏移。

这里将中间点锚固,周围的点释放,最终连线长度变成同一个值,而且周围点的是沿着连线的轨迹运动的。

看到结果之后,以为是 PowerLaw 导致,于是在仅适用 PowerLaw 运算器的情况下在运行了一遍,发现结果并不一样。所有还是 Equalize 起作用的。

Kangaroo 学习之 PowerLaw

在 Forces 集合中有一个 PowerLaw 运算器。

使用 PowerLaw 这个运算器,可以让两点之间产生引力或者斥力,并且可以控制两点的距离。其中 Strength 中正值为斥力,负值为引力。

最初两点之间的距离是“50”,通过 Powerlaw 将两点间的力设置为引力大小为“-5”(暂时不知道单位是什么),控制值为“-13”,在运行 Kangaroo 之后,两点间的距离变成了“8.05”。

目前还没有弄明白这个运算器,只是能运行,而且其中的 Exponents 输入项的意义还不明白,只是看到其不同设置带来的效果是运动的速度不同。

Grasshopper 插件 ELK

查找如何将 Google Map 信息导入到 Grasshopper 中的时候发现了这个名为 ELK 的插件。

下载地址:http://www.food4rhino.com/project/elk

用 ELK 可以做很多事情,其中一个主要功能是用来将地图上的道路、铁路、水系、建筑等信息提取,反映到 Rhino 中。

ELK 还有一个功能是通过提取 SRTM 数据来建立三维地形。

在使用 ELK 插件的时候,需要用到以下几个网站和它们提供的数据。

OpenStreetMap:https://www.openstreetmap.org/

Weogeo Market:http://market.weogeo.com/

NASA SRTM:http://www2.jpl.nasa.gov/srtm/

在 SRTM 中下载的数据,例如名为“N31E113”,表示是左下角点为“N31E113”的地块。

试图用颜色的渐变来表示高度变化,但是由于数据过于庞大,一直没有成功。需要找另外的方法尝试解决。

Rhino 官方免费学习资料

Rhino 官网上:

Rhino 5 Getting Started & User’s Guide

Grasshopper 官网上:

Grasshopper Primer Third Edition

Generative Algorithms with Grasshopper version 2.0

Essential Mathematics 3rd Edition

Rhino Python Primer

另外还有一些在 Grasshopper 官网上介绍的网站,其中有一些视频和 PDF 资料也很有价值:

http://www.i-m-a-d-e.org/fabrication/

http://designalyze.com/

http://lab.modecollective.nu/learning/

http://www.exlab.org/

http://elsewarecollective.com/

http://www.morphogenesism.com/

http://www.digitaltoolbox.info/

http://formularch.blogspot.com/

http://antonioturiello.blogspot.it/p/designer.html

http://www.liftarchitects.com/