分类: grasshopper

专业解析grasshopper技术

  • 开罗博物馆的Grasshopper参数算法

    开罗博物馆的Grasshopper参数算法

    开罗博物馆这个建筑物最大的特点就是附着在建筑外表面上的鱼鳍状的外壳,它的每一片外壳都相互的扣在一起,形成一个连环的形态。

    我们用犀牛参数化绘制个模型一定抓其要点,就是如何用算法一片算出鱼鳍,最终用电脑自己自动的计算其他的建筑构件

    下图是我对本次例子模型的草图构思

    从上图我们看出来本次案例我们得分三步走

    1. 在建筑的外壳上绘制曲面
    2. 在平面上绘制“鱼鳍”的平面形态
    3. 最后用CopyTrim附着鱼鳍到曲面上

    鱼鳍的算法草图

    鱼鳍的数量可以依据参数调整,而且每一片的生成的算法应当是一样的,因此我们要采用整体分切法在计算鱼鳍构件的表面模型

    1. 绘制外形的三条曲线
    2. Loft成曲面
    3. Offset曲面成内外两层,因为原来的建筑是外壳相互叠加交错的
    4. 等分曲面点
    5. 连线
    6. 线两两放样

    下图是鱼鳍的Grasshopper具体算法

    这里要特别注意的是由于本次案例的曲面是一个闭环曲面,因此在生成等分点的时在曲面的接缝处是有重复点的,这时点串联成线后要删除重复的线条

    贝塞尔曲线的草图思路

    ab曲线是Grasshopper算法生成的,其他的直线段都是在犀牛里绘制的,直线段这类绘制简单且不需做参数变化的建议不要用Grasshopper参数化,这样避免算法的繁复。

    贝塞尔曲线算法如下图所示:只要一直AB两个点,和相应的两个方向就可以绘制出贝塞尔曲线了

    Grasshopper的详细算法。

    本案例中AB两点的方向大小是可以参数化的

    最终CopyTrim生成表面

    各位同学对上面算法如果什么不明白可以在下方留言窗口留言,我会解答各位同学的疑问的
  • Grasshopper三角形玻璃幕墙三角面分割

    Grasshopper三角形玻璃幕墙三角面分割

    image.png

    算法如上图所示

    具体的算法逻辑我后面再写个文章解释一下,大家对这个算法有什么不太明白的在我的博客文章下面留言,用微信登陆就可以了,这样我回复留言的时候能在微信上看到我的留言信息

    以下是算法的效果图

    Grasshopper算法

    关键字:Grasshopper教程、Grasshopper算法、玻璃幕墙草蜢算法

  • grasshopper中让你意想不到的取整数方法

    grasshopper中让你意想不到的取整数方法

    在grasshopper中想要割舍方法取得整数位是比较麻烦的,以前我是看过某些论坛用计算公式的方法取得数值的整数位,但是那些都太麻烦也太难以理解了。

    今天我给大家带来一种最最最简单的方式就能获得数字的整数位。

    算法大家就看看上面的算法就可以了。

    基本上的思路也很简单的

    大家可以看看我下面列举这条方程式:

    设定区整数位的数字为X,

    X+0.5=Y。

    Grasshopper思维:X加上0.5,X后面的小数位会发生变化,比如X=2.34,加上0.5后是Y=2.84

    Y再四舍五入取整

    Y=2.84,根据Grasshopper默认的取整规则是四舍五入的,那Y四舍五入后Y=3

    Y-1=Z,Z就是我们要的整数值了。

    Y=3,Y再减去1,就可以得到最终的整数位2了。

    那我们再那几个数字代入X

    比如4.57

    4.57+0,5=5.07

    四舍五入等于5

    5-1=4获得小数点前面的整数。

    Grasshopper算法.png

    关键字:Grasshopper教程,Grasshopper算法

  • 我自己开发的一个筛选数据的Grasshopper小插件(猫头鹰筛选插件)

    我自己开发的一个筛选数据的Grasshopper小插件(猫头鹰筛选插件)

    我自己开发的一个筛选数据的Grasshopper小插件,使用的方法如上图所示,第一端口连接要筛选的物体,其他端口根据需要连接数据就好了。

    不过这个插件还不是太完善,如分组数量过多会产生特别多无用的数据,这些数据会把前面的数据覆盖掉,后面找个时间再更新吧。

    下图是滑动一个数据控制条产生不同的效果小动画。

    下载地址:猫头鹰筛选3dscg.com.zip

  • Grasshopper参数化的椅子算法教程

    Grasshopper参数化的椅子算法教程

    Grasshopper参数化的椅子算法教程

    这个Grasshopper算法逻辑思路是先预先在犀牛绘制几条椅子的轮廓线,然后把这几条结构线导入Grasshopper内,通过Grasshopper的“函数运算器”改变结构线等分点的高度,再把这些点组合成新的线条,新结构线再生成椅子的模型体块,最后把模型体块切片成型。

    平面效果

    调整曲线点

    切片生成造型

    关键字:grasshopper教程、grasshopper实例、grasshopper算法

  • Grasshopper时间运算器Timer的使用教程

    Grasshopper时间运算器Timer的使用教程

    Grasshopper时间运算器Timer的使用教程

    今天介绍Timer运算器,Timer运算器是一个时间计量工具,它会按照运算器设置时间间隔运行发送数据,发送的数据经过“Data Recorder”(数据记录仪)把每一个时间间隔的数据记录并输出。

    简单运算用法看上图,把输出值赋予到“累加运算器”上得到一个按时间计量的数字。

    对Timer运算器点击右键的Interval参数还能设定时间间隔

    blob.png

    利用Timer运算器还能做一些简单的动画,比如下面的这个。

    把输出的数据连入Z高度方向,小球就按Z轴方向移动,算法如下图

    blob.png

    关键字:Grasshopper教程、Grasshopper运算器教学

  • 瑞士再保险公司总部大楼(英国小黄瓜大楼)grasshopper算法教程

    瑞士再保险公司总部大楼(英国小黄瓜大楼)grasshopper算法教程

    瑞士再保险公司总部大楼(英国小黄瓜大楼)grasshopper算法教程

    1.jpg

    24根主钢架螺旋形状排列

    658_2.jpg

    分享个grasshopper的算法,算法下载链接:http://pan.baidu.com/s/1bpHVPRT

    密码:r9tg

    算法预览.png

    其中猫头鹰是自己创建的小插件,其插件内部算法是紫色背景的现实的电池图

    制作插件教程点击打开:GRASSHOPPER封装教程

    blob.png

  • grasshopper开放曲面斜向连线

    grasshopper开放曲面斜向连线

    今天,我们来研究这个:

    于是乎,很多对GH有一定了解的朋友一定会说:“小菜一碟”

    没错,这是一盘小菜,不过有好多碟,好多种思路,挺有趣的一道数学题。

    作者收集几位同学的思路与大家一同分享,同时希望能拓宽同学们的思路,欢迎大家分享你们的想法!

    在此之前,我们先弄清楚Divide Surface这个运算器(就这个:

    注意我们输入的UV值,反应的是对面“分成多少块”,与UV方向上的点数是X+1的关系

    好啦,感受一下就是啦~自己试试就知道啦~~

    思路一:递减

    1,我们来观察一下当UV数值相差1及相等时的数据特点:

    且不要管这一连串的算法,我们将面按U=5,V=4分割好,并把获取到的点反转一下再压扁(反转与否由你决定),得到这么面上这么一组数据

    2,我们可以发现从0端开始的对角位置开始,往左右两个方向前进,这些连线的连接点数是在递减的,

    3,在这个思路下,我们可以将左右两边筛选出来进行各自单独的连线:

    (Divide Surface输入端的UV是分别附加了X-1,Series星端中除了左下角两个是X-1,外其余星端都是X+1)

    都怪小编截图没作好—_—!大家实际操作一下,其实就懂了~

    4,我们可以看到Polyline这个运算器是橙色的,说明有问题,问题很简单就是有一些组里只有一个点,运算后是nuLL空集。

    与此同时,这种思路是有局限性的,当UV不相等且相差大于1时,会出现错误(图中白色箭头处,出现了两条连接点相同的线),

    递减的思路在这里就不可以实现了,随着UV间距离拉大,这种相同连接点的线将随之增加

    5,也就是这种算法是有局限性的,但是算法并无好坏,每一种思路都有其存在的合理性,或许在另外一个算法中起到关键作用

    思路二:偏移

    1,大家是不是觉得上面的案例有点像广州塔,我们就试试看呗

    2,同样是看数据,不看算法。好吧,相信大家看出端倪了,我们想作的偏移实际与广州塔的偏移是有差别的,这里的偏移是01010……(会懂的),广州塔的偏移是11111且并不舍弃数据的,我们作了舍弃数据的作法在后面连线时就不能按广州塔的作法,舍弃数据对数据结构的破坏对我们接下来进行操作带来不少的麻烦,但是我们从这里也可以看出封闭面与开放面在数据处理的那细微又巨大的不同

    思路三:单纯的点对点连接

    1,一个本来看起来简答的东西被我们这么一折腾好像又变复杂了,然而简单往往是一个算法制胜的关键。那么,我们就先静下心来,观察一下

    这当中的数据特点。我们以单纯的“点对点”连接思路看,我们需要作的仅仅是将点筛选成两组,然后点对点连线

    2,筛选出这么两组点

    3,最后,连线。没错结束啦(星号都是X+1)

    4,这是针对开放面,斜向连线,较佳的算法,回归到数据本身,同时纯粹的找点连线的思路清晰明朗

  • grasshopper中替换指定的数据

    grasshopper中替换指定的数据

    如何使用grasshopper替换指定的数据

    算法如上图所示

    这里要使用到Replace  Menbers运算器

    S端口输入需要查询的数据列表

    F端口输入要替换的数据

    R端口输入最终的数据

    关键字:grasshopper,grasshopper运算器教程,grasshopper教学

  • 使用series间隔筛选相邻数据

    使用series间隔筛选相邻数据

    grasshopper使用series间隔筛选相邻数据,算法很简单就是用series算法算出相邻数字,再用ListItem筛选数据。

    上图中42数据是筛选物体的数量,除以3目的得到以后分组的数量,3连入N端口是让这个series运算器输出的数据为0,3,6,9,12,……,紧接着的Series运算器公差为1,开始数据是0,3,6,9,12,……,所以这个运算器输出的数据如下图所示