分类: gh20

  • grasshopper系列教程-数据序列(等差数列,随机数列,斐波那契数列)

    grasshopper系列教程-数据序列(等差数列,随机数列,斐波那契数列)

    我们今天讲的Grasshopper的内容是非常常用的。这些运算器的作用大部分都是修改列表的顺序或者创造一些有序号的列表,比如等差数列,随机数列。

    image.png

    Cull Index:按照序号删除列表中的项目。

    image.png

    我们只要从a端口中输入序号,然后就可以删除指定的项目了。也可以输入多个序号。

    Cull Nth:删除空的项目。根据我们输入的个数,然后用来删除列表中空的项目。

    Cull Pattern:按照输入的规则来删除列表中的项目。这个这个运算器的作用有点类似于dispatch。只是dispatch,它是分为ab两个路的,这个运算器是删除项目后的列表。

    image.png

    Random Reduce:输出随机删除项目后的列表。我们在端口中输入要删除的个数。这个运算器会删除相应的个数而且原来的顺序也会被打乱。

    image.png

    image.png

    Create sequence:创建一个文本字符序列。

    Duplicate Data。复制列表的项目。

    比如说我们项目中需要输出100个1。那么我们在复制的列表中输入1,个数输入100个,这样列表输出的就是100个1了。

    image.png

    在上面的算法中,我们可以看出最后一个端口默认是Ture的,如果是false,他们输出的列表是不一样的,大家可以看一看它们之间的差别。

    Fibonacci:创建斐波那契数列。 斐波那契数列是一系列数字,其中每个值是前两个值的和。 由于前两个值没有设定,因此需要手动设置。 默认系列使用{0,1}或{1,1}作为初始值。

    Range:输出一个等差数列。

    Range的作用是根据我们设定的范围和等份的数量,输出一个等差数列。

    这个电池在我们平时grasshopper的使用中是非常常用的。

    image.png

    Repeat Data:重复数据。这个运算器的作用和Duplicate Data的作用差不多,都是输出重复的数据。

    image.png

    Sequence:生成数字序列,n端口输入一个计算公式,L端口输入计算的个数,这个运算器默认输出的数列是一个费波那切数列。

    image.png

    Series:等差数列。这个运算器我们在前面的课程已经反复使用多次了。它的作用其实和range也差不多。但它不是设定范围,而是设定公差和输出的个数。

    image.png

    Jitter:一个列表的顺序打乱,输出一个随机的列表。

    image.png

    这个运算器最后一个端口是一个随机因子,输入不同的整数,它会输出不同的数列。

    Random:输出随机数。根据我们设定的数值范围。个数和随机因子。最终输出一个或者多个随机数。

    image.png

    第一个端口是输入随机值的范围,第二个端口是输入随机的数量,第三个是一个随机因子。

    [elementor-template id=”7418″]

  • Grasshopper系列教程-数据列表匹配

    Grasshopper系列教程-数据列表匹配

    今天的Grasshopper的内容比较少。

    image.png

    Combine Data:合并多个输入中的非空项目,这个运算器在实际应用当中作用并没有体现,大家先看下下面的演示算法。

    image.png

    Sift Pattern:使用序号索引模式对列表中的元素进行筛选。从字面意思上比较难以理解的,但是我们可以它和【Dispatch】是比较类似的,Dispatch是分流,这个也可以分流,只不过它会把分流的项目转化为Null。

    image.png

    Cross Reference:交叉列表匹配数据 

    Longest List:长列表匹配数据

    Shortest List :短列表匹配数据

    这三个运算器的作用是改变数据的匹配模式和类型的,Grasshopper默认的匹配模式的Longest List。关于数据的匹配也是Grasshopper学习的重点内容,我会在后面专门来讲解这部分的内容,今天大家只要看下面的简单算法,对匹配数据有个大致了解就好了。

    image.png

    [elementor-template id=”7418″]

     

  • Grasshopper系列教程-Weave-dispatch等数列运算

    Grasshopper系列教程-Weave-dispatch等数列运算

    今天讲解的Grasshopper的几个常用的数据列表控制的电池,下面的这几个电池在分类元素有非常重要的意义。

    image.png

    Dispatch:分流运算器,这个相当常用的电池了,作用就是把一个长列表按照【规则】分流为两个子列表。

    image.png

    所谓的【规则】:就是在P端口输入【Ture】和【False】的数据,之后Dispatch按照Ture分到A列表,按照False分到B列表。

    image.png

    当然也可以输入F T T或F F T T或者更多的数据,如上图所示。

    Null Item:判断数据列表里是否存在【空数据】,所谓空数据就是指【Null】数据,也就是错误或者不存在的数据。如果判断有空数据则输出Ture,如果判断没有空数据,则输出False。

    image.png

    为了演示判断空数据的算法,我这里人为地制造了空数据,就是用两个等差数列相除,由于等差数列默认情况的第一个数为零,所以他们相除之后,第一个数必然是错误的。从上图我们可到序号(Index)0出现了一个Null,而N端口输出的序号0这里输出了TRUE

    Pick’n’Choose:这个不知道怎么翻译 ̄ω ̄=

    这个电池的意思就是P端口输入任意的整数数列,数列无限制,其默认参数是0 1,之后下面的0 1 端口分别输入两个数列,R端口输出有0和1组成的新数列。

    但是结果为什么输出的是0和8呢??

    原因是这样的,输入0那个数列获取的该数列的序号0的数字,那也就是0了;输入1那个数列获取的该数列的序号1的数字,那也就是8了(1那里把等差数列反转序号)

    image.png

    Replace Null:替换Null数据。

    这个简单,就是把数列里存在Null的数据替换掉,这适用于把无意义的Null数据替换成有意义的数据。

    image.png

    Weave:混合,这个电池就很有用了,它可以把多个数列直接【搅合】到一起组合成新的数据

    算法看下图,关于这个运算器的运用,我们以后会在Grasshopper教程里提出一个小案例来专门讲解它的用法

    image.png

    [elementor-template id=”7418″]

  • Grasshopper系列教程-数据列表的相关操作运算器

    Grasshopper系列教程-数据列表的相关操作运算器

    我们今天来说说Grasshopper的数据列表的知识点,数据列表就是包含多个数据的列表了,当然也可以只有一个数据,我们平时所说处理往往是多个数据的列表。数据列表在Grasshopper的使用过程当中是占有相当大的比重的,其实我们也可以这么说,我们用Grasshopper做设计,80%以上是在做数据的组合排列,就是在堆砌组合删除各式各样的数据,所以要会用Grasshopper就必须学会怎么灵活的操作数据列表了。

    不过我们今天的课程不太难,大家跟着我的节奏,这节课先把Grasshopper这些数据列表的运算器的名称和大致用法搞清楚。

    image.png

    Insert Items:插入列表,这个运算器的作用是当我们想要一把一个或几个元素加入到一个大的数列里去的时候使用的。

    image.png

    在上图当中,数列aa,bb,cc插入1,2,3,4,5,6的数列当中,插入的起始位置为序号(Index)3,结果输出的数列为1,2,3,aa,bb,cc,4,5,6

    Item Index:搜索Item的序号,如果搜索不到输出-1,但是下面的实验不管怎么做的都是输出-1,不知道是方法问题还是软件BUG,如果有找到问题解决方法的同学可以在下方给我留个言。

    image.png

    List Item:筛选指定项,这个运算器是我们Grasshopper设计过程中最常用的运算器之一了,参数化设计过程只要是选择物件的话,基本都要用这个,其用法也非常简单,只要输入指定的整数就可以了。

    image.png

    上图中输入1,输出序号为1的项目bb,List Item放大只有可以加增加或减少端口。

    image.png

    List Length:清单的长度,计算输入的列表的数据个数,这个也是非常之常用的。

    image.png

    Partition List:把数据列表分组,这里涉及到分组的概念,我这里先简单的说明一下,在grasshopper中如果没有分支的的数据,我们称之为线型数据,也就是不分组的数据,但如果数据一旦有了分支,我们则称分支(或者分组)数据为“树形数据”,其路径的表现形式为{0;0},{0;1}…..,我们在Panel中也能明显看出分组和不分组的表现样式。

    image.png

    就上图的算法,Partition List的S端口可以输入一个数据或者多个数据。当输入2时,一个List被分为每两个数据为一组,当输入1,3时,则被分为1个数据1组,3个数据3组,然后重复这样的规律分组,知道List被分割干净为止。

    Replace Items:替换数据,当我们要用新的数据去替换原来列表的某些元素的时候,就要用到Replace Items,其用法和插入Item类似

    image.png

    上图的算法中,i端口输入2,则在原数列的序号2开始替换。

    Reverse:反转数列,这个没什么好说的,大家看下面的算法吧。

    image.png

    Shift List:偏移数列的编号,这个运算器是运用好Grasshopper的重点工具,我们要让建筑表面发生错位,偏转等效果一般都会用到这个运算器。

    image.png

    就上图的算法,原数列是3 1 bb aa,当S端口(偏移位数)输入1时,整个列表就偏移了一位,成为新的数列(1 bb aa 3).

    Sort List:重新排列数据,让杂乱的数据(特指数值)安装从小到大的顺序排列,算法看下图。

    image.png

    Split List:分割数据列表,把一个长数据列表分割为短的列表,使用方法如下

    image.png

    Sub List:获取列表中的子列表,这怎么理解呢?打个比方吧,一个班有60人,一天老师要分配个任务,他说我们班里20-40座位号的同学去打扫操场,大概就怎么一个意思了。

    image.png

    上图的算法中,D(区间)端口输入2(就是指区间【0,2】),那么获取序号在0-2范围内的元素,得到子列表aa bb cc

    [elementor-template id=”7418″]