标签: grasshopper

  • Grasshopper系列教程-树状数据结构得到操作(拍平和分组)

    Grasshopper系列教程-树状数据结构得到操作(拍平和分组)

    今天讲的grasshopper的内容是非常重要的,我们会分为三期的课程来讲。这一类的运算器是如何处理树状结构数据的。对于数据的处理Grasshopper里面是最为重要的。

    g.com ena _ - 1 10.1

    N端口代表null数据,X端口代表空的数据

    这个运算机的作用主要用来清除,我们在计算中产生一些无效的数据。这个比我们之前学习的那个要筛选之后再来清除,要高效的多。

    把数据列表拍平,这个在glass opera上面是非常常用的,在每个运算器端口点右键有个向下的箭头图标和这个是等效的。

    拍平电池在默认情况下把路径设置为一个0,如果要设置为两个人可以在p端口里面填入两个0。

    计算机生成了可选文字: • ÄeeÅng1e (

    把数据列表变为树状结构,这个操作和拍平是相反的。我们平时把这个运算器也称之为分组数据的运算器,因为它的功能就是把数据进行分组。

    我们要需要glasshopper,一定要注意数据什么时候要分组,什么时候要排停。

    因为用grasshopper做设计,最重要的就是对数据的排列与组合。用电脑计算出来的排列组合来组合出我们设计上的创意。

    om

    删除小数据的分支

    在下图当中,等差数列列表被分为三个一组和两个一组的分组数据,把这个分组数据输入到t端口中,N0和N1分别输入两个数据,如果这两个数据比分组数据的数量更多的话,他就会把这个数据清除掉。

    计算机生成了可选文字: . Icom

    精简树状数据的路径层级。

    在下图当中我们可以看到数据的结构是三层级别的,经过一个精简之后,它只变成了一层。

    With 10 branch— Data with 1m

    这个运算是用来统计树状列表的数据,在下图当中我们可以看到第1个输出端口,输出的是数据的具体内容,第2个参数输出的是每个分组的里面的数据数量,第3个参数是输出分组的数量。

    ο 10

    这个运算器是用来精简数据的路径的。

    下图中我们可以看到它是一个分组数据啊,经过精简之后,我们看到它输出的只有一层的路径级别。

    这样的用法,有点像拍平运算器。

    Data with1branches N = 10 τη

    Unflatten Tree :让数据跟随导入的数据的树状数据结构。

    计算机生成了可选文字: 0a0h的b「引跹h一 WWW.3dg.CO

    这个运算器比较难理解,我们这节课不张开讨论,我在下面贴一个应用的算法,在下一节课我将详细说明它的运算逻辑。

    with 8 branches Data Wlth 8 branches lData Wlth 8 branc

    [elementor-template id=”7418″]

  • Grasshopper系列课程-文本的操作

    Grasshopper系列课程-文本的操作

    ​我们今天来学习Grasshopper的文本编辑的内容。

    文本编辑在设计当中一般被用于材料的标识,编号排列等等。

    文本编辑工具使用侧重点在于对文字的增删改查拼接等操作,这部分操作大都不难,只要认真学习今天这节课的内容就可以很容易掌握了。

    好的那么久开始今天的Grasshopper课程吧。

    计算机生成了可选文字: i t Join T Lengeh Split www.3dscg.conJ

    characters:把字符串分解成单子

    image.png

    concatenate:链接字符

    image.png

    Text Length:计算出文本的长度

    image.png

    Text Join:使用连字符链接文本

    在下图中使用了句点连接了文本。

    image.png

    计算机生成了可选文字: wwvv.3dsc@.com

    Format:文本格式化

    F端口数据序号格,格式规则是按{n}的格式书写,其排列顺序不做要求,0 1端口数据文本数据,T端口输出的按照格式规则排列数数据输出。

    下图中我们可以看到“零刻学堂”被编入{0}的位置里,“跟着Link学参数化”被编入{1}的位置里。

    image.png

    Text Case:转化字符的大小写,U端口输出大写,L端口输出小写字母

    image.png

    ​Text Fragment:截短文本,从第一个字符算起,按设定的数量截短文本,一般用于去掉文本开头一些无效字符

    image.png

    Text Trim:这个也是截短文本,但是只对开头的空格有效,具体看下图文本的变化吧

    image.png

    计算机生成了可选文字: sort .com

    Match Text:匹配文本,如果匹配到输出Ture,否则输出False

    image.png

    Replace:替换文本,替换设定的文本,大家看下的算法吧

    image.png

    Sort Text:按字母顺序重新排列文本

    image.png

    Text Distance:计算两个文本片段之间的Levenshtein距离。

    image.png

    [elementor-template id=”7418″]

  • Grasshopper系列教程-数据列表项目的修改与查找

    Grasshopper系列教程-数据列表项目的修改与查找

    我们这节课学习关于Grasshopper成员搜索的相关知识,这部分知识在我们设计当中并不是特别重要,同学们只要做一些了解就可以了。

    计算机生成了可选文字: www.3dscg.com

    Carthesian Product:Ab两个序列按编号分组,要求两个组的数据个数一样。

    image.png

    Disjoint:检测a列表的数据是否在b列表中存在,如果存在输出false,不存在输出true.

    在下图中4已经包含在b列表中了,所以输出了false。

    image.png

    Member Index:计算出项目的编号。

    在下图中我们要计算的项目是3,最终计算出它的编号是1

    image.png

    Replace Member:替换集合中的项目。

    在下图中第1个参数输入列表,第2个才是输入序列号,第3个

    image.png

    SubSet:判断a列表是否包含b列表。

    在下图中a不在这个等差数列之内,所以输出了false。下图第2个等差数列是0~3,这个数量是包含在a数列里面的,所以输出ture

    image.png
    member  Key/vaue search  www.3dsc .corn

    Delete Consecutive:删除列表中类似的项目。

    在下图中的列表有两个a,w值输入ture就把列表中的a给删除掉了。

    image.png

    Find similar member:查找列表类似的成员。

    在下图中要找到的主要是a,说出了结果它的序列号是1。

    image.png

    Key/Value Search :根据数据键值对来搜索。

    在下图中,第1个参数输入列表的序列号,第2个参数输入要搜索的列表,第3个参数输入要搜索的序列号,最终输出该序列号的所对应的参数。

    image.png

    [elementor-template id=”7418″]

  • grasshopper系列文章-集合的运算

    grasshopper系列文章-集合的运算

    这节课我们来学习一下关于集合的Grasshopper的算法。在grasshopper中关于集合的概念的我在前面的几节课已经有提示提及过了,呃,大家可以去到这篇文章里面去看一下,《grasshopper数据结构的几个基础概念》

    计算集合的作用就是找到一些共有的元素或者找到一些有差异性的元素。

    image.png

    Create Set:创建集合,这个基本上用不上的,就算不接这个运算器也可以创建集合,我们来看下面的算法,一个等差数列输入到一个集合的运算器里面之后它输出了又是一个集合。

    image.png

    Set Difference:集合的差集运算。

    在下面的算法中,A的列表和b进行比较,最终输出的列表是减掉b共同拥有的项目。在B列表中和A列表共有的元素是0和1,所以在结果中他们都被减了。

    image.png

    Set Difference(s):集合的差集运算,这个差距运算和上一个不太一样的地方,就是它输出是多个列表的集合。

    我们从下面的算法可以看出来,输出端口输出的值是包含了a和b里面的元素的,列表里面是减掉了共有元素的。

    image.png

    Set Intersection:计算交集。

    在下面的算法中,我们可以看到a和b这两个列表输入到计算交集运算器中,最终输出的值是0和1。

    image.png

    Set Majority:Ab计算交集和c计算并集,最终输出的是ab的交集,加上c。

    在下面算法中,我们看到abb计算出来交集是0和1,c是4,最终结果是0 1 4

    image.png

    ​Set Union:计算列表的并集。

    image.png

    [elementor-template id=”7418″]

  • 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系列教程-数据列表的相关操作运算器

    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″]

  • Grasshopper系列文章-常量、极值、平均值运算

    Grasshopper系列文章-常量、极值、平均值运算

    今天终于是Grasshopper学数学的最后一篇了,数学工具的作用很大,可以就是这部份学起来真是枯燥无味的。

    今天的主题是常量、极值、平均值运算

    image.png

    上面这几个是自然界的几个常量,他们分别是

    真空介电常数、黄金分割常数、自然数常数和圆周率

    这些都是一些固定值,运用方面没什么可说的,拿来用就是了。

    image.png

    这几个在Grasshopper里运用相对就比较广了,它们的作用就是就求极值的。

    Extremes:替换数列中比极值小或比极值大值,看下面的例子吧

    image.png

    上图的算法是有0–9的整数数列输入A端口,B端口输入5.

    V-端口的数列把大于5的数都替换了,换个说法就是只输出不小于5的值。

    V+端口的数列把小于5的数值替换了,换个说法就是只输出不大于5的值。

    Maximum和Minimum作用和上面的运算器用法是一样的,只不过把V-和V+端口拆分了

    image.png

    Round:大约数,这个运算器作用于小数,求小数最近的整数,俗话就是约等于多少。

    image.png

    上图的3.52这个数输入Round后得到三个数值,N是四舍五入的的整数,F是割舍后的整数,割舍是编程里的专有名词,意思是舍弃小数点后的数值,保留整数部分的一种取整方式,3.5200割舍后就等于3了,C是去距离这个小数最近的整数,这里当然就是4了。

    那有同学会问了,取整数究竟有什么用呢?

    那这个问题就现在而言就很难回答了,我们以后有机会在再来探讨下这个问题。

    image.png

    上面这块大致作用和平均值相关的

    Average:求平局值,这个在Grasshopper中还是比较常用的,下图0-9的数列,求得平均值为4.5

    image.png

    Blur numbers:模糊数值

    Interpolate Data:这个不太好翻译啊,Interpolate是内插数据的意思,大家直接看算法吧

    image.png

    0-9的数列,t值输出0.5时,刚好获取的数据就是4.5,如果输入1的话,输出值就是9,这个t值在这里是一个百分比。

    Smooth Numbers:平滑数值,其作用在带时间动画上的,具体作用不明。

    Truncate :这个也不好翻译啊,就给它一个比较俗套的名称吧:掐头去尾保留部分数据。

    image.png

    上图的算法得到的数据 ,掐头去尾保留了60.4%的数据。

    Weighted Average:权重平均值,这个作用不明

    image.png

    ​上面这几个是关于复数的运算的,这里就不展开了,我们用Grasshopper做设计目前还没有用到复数的运算

    [elementor-template id=”7418″]

  • grasshopper系列文章-三角函数,三角形特性

    grasshopper系列文章-三角函数,三角形特性

    我们这里节Grasshopper的课程主要讲解三角形相关的运算器:三角函数,角度转化,三角形参数和三角形的重心。

    image.png

    三角函数:三角函数是基本初等函数之一,是以角度(数学上最常用弧度制,下同)为自变量,角度对应任意角终边与单位圆交点坐标或其比值为因变量的函数。

    三角函数在中学就学习过了,三角函数在研究三角形和圆等几何形状的性质时有重要作用,也是研究周期性现象的基础数学工具。常见的三角函数包括正弦函数、余弦函数和正切函数。在航海学、测绘学、工程学等其他学科中,还会用到如余切函数、正割函数、余割函数、正矢函数、余矢函数、半正矢函数、半余矢函数等其他的三角函数。

    上图列举的都是三角函数的运算器,Link就不在这里一一列举了,下图给出sine正弦函数的用法,其他的三角函数运算器用法同学们自己研究一下吧。

    image.png

    上图中1个pi输入Sine中输出0,π/2输入sine中得到1

    image.png

    degrees:弧度转角度

    Radians:角度转弧度

    这个用法非常简单,且看下图图示:1个π转为180°,90度转化为π/2。

    image.png

    默认情况Grasshopper中跟角度相关的计算都是弧度作为标准的,我们平常的建筑设计很多是基于角度计算的,比如两个墙的夹角,屋顶的倾斜角度等等,因此我们在设计角度的时候应该把弧度转为角度。

    image.png

    这两个运算器不知道怎么翻译了o( ̄▽ ̄)d ,他们的作用呢都是通过两三个条件得出三角形其他的参数,比如输入两边和一个夹角,得到三角形其他的边和夹角。这个在做建筑表面的零部件(三角面)分析时是很有用的,因为根据这两个运算器的特性,我们就很容易就能得到三角形面的所有参数。

    举例:输入30°和6(直角边),结果输出三角形的其他参数

    image.png

    Triangle Trigonometry这个运算器和上面用法一样的,同样留给同学们研究研究,如果有什么问题可以在Link的博客,零刻学堂这里提问的。

    image.png

    这一堆是用不同的方法求得三角形的重心的

    所谓重心:三角形重心是三角形三条中线的交点。当几何体为匀质物体时,重心与形心重合。

    用法很简单,请看下面实例吧,另外这几个的用法都大同小异的,这里就不一一列举了

    image.png

    [elementor-template id=”7418″]

  • Grasshopper系列文章-公式的应用(莫比乌斯环,圆曲线)

    Grasshopper系列文章-公式的应用(莫比乌斯环,圆曲线)

    我们今天来说说Grasshopper的公式编辑器的用法,公式编辑器就是用于输入数学上的一些方程式,已达到输出数学模型的目的的。

    有了公式的输入,我们大可不必像上上次那样编辑复杂的数学运算逻辑了。

    image.png

    Evaluate:数学分析器,双击改图标在弹出框中可以输入公式,公式中默认有两个变量X和Y,比如如下图,输入公式(x+y*5)/x

    image.png

    x=3和y=4代入公式后得到结果7.66667

    image.png

    当然了这只是一个简单的数学公式,我们也可以到网上找一些复杂的数学公式代入进去看看结果,这里Link就给大家分享几个常用的数学曲线公式。

    圆形公式

    image.png

    把R*cos(a)和R*sin(a)中的R改成a后就得到:螺旋线的方程式,π前面那个数值控制螺旋线的圈数,π下面的数字控制螺旋线的点数

    image.png

    公式1:16*(sin(a)^3)

    公式2:13*cos(a)-5*cos(2*a)-2*cos(3*a)-cos(4*a)

    Grasshopper会帮我们计算出一个标准的爱心形状

    image.png

    image.png

    著名的莫比乌斯环的公式,这个公式非常的复杂啊,要写三个公式才能实现

    公式1:r*(1+(v/2)*cos(u/2))*cos(u)

    公式2:r*(1+(v/2)*cos(u/2))*sin(u)

    公式3:r*(v/2)*sin(u/2)

    最终用Surface From Points运算器完成莫比乌斯环曲面,不过这个算法有个瑕疵,就是完成的曲面并不是环,而是不闭合的带子,后续大家有兴趣的可以去自己研究下这个算法,看能否解决这个问题。

    image.png

    [elementor-template id=”7418″]