标签: grasshopper教程

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

  • grasshopper系列文章-数学运算器-幂运算

    grasshopper系列文章-数学运算器-幂运算

    今天介绍Grasshopper运算器是关于和幂运算相关的内容,大家了解下就好了。

    image.png

    Cube:求立方

    Cube Root:求立方根

    Square:求平方

    Square Root:求平方根

    image.png

    One Over X:求倒数(x的-1次方)

    Power of 10 :求10的N次方

    Power of 2:求2的N次方

    Power of E :求常数E的N次方

    image.png

    Log N:求对数

    Logarithm:求以10为底的对数

    Natural Logarithm:计算一个值的自然对数。

    [elementor-template id=”7418″]

  • grasshopper系列文章-判断运算器-与或非门

    grasshopper系列文章-判断运算器-与或非门

    我们今天来学习怎么使用Grasshopper的判断运算器,这个Grasshopper中判断的结果只会出现Ture和False,通过使用判断运算器我们可以筛选关于长度、面积、边数量等。

    image.png

    这四个运算器都是判断数字是否等于、约等于、大于或者小于指定数值的

    大家看下面这个例子:5和2比较,5大于2,那结果输出True;3不等于2,结果输出False

    image.png

    那这个判断究竟有什么用呢?为了解答这个问题,Link给大家带来怎么的一个小算法,如果这个算法里面有些运算器不那么理解也没有关系的,大家就仿照我的做法去慢慢理解下吧,如果有什么问题的话,也可以在我的网站下方给我留言的。

    通过下面这样一个算法,我们就能从大量的图形中找到我们想要的模型了

    image.png

    image.png

    与或非门:或非门(英语:NOR gate)是数字逻辑电路中的基本元件,实现逻辑或非功能

    Gare And:与,两个都等于Ture,则输出Ture,否则输出False。

    Gate Or:或,两个子项目中其中一个等于Ture,则输出Ture,两个False则输出False

    Gate Not:非,如果输入True,输出端就反过来输出False

    其他的我不在赘述了,平时用得不多,而且在学习的前期阶段我们大可以不必在意这部分相对抽象的内容

    [elementor-template id=”7418″]

  • grasshopper系列文章-数学运算器

    grasshopper系列文章-数学运算器

    今天我们来学习一下Grasshopper的运算符,所谓运算符就是数学的基础运算法则了,简单说就是加减乘除这类算法。

    image.png

    Addition:加法运算器

    Division:除法运算器

    Multiplication:乘法运算器

    Negative:相反数,能把整数边负数,负数变正数

    Power:幂运算器,比如计算2的5次

    Subtraction:减法运算器

    上面这6个运算器都是我们中小学就已经学过了的,应该非常简单的,Link就给大家提供一个小算法来熟悉下数学运算

    330÷6.5-68×45+52=?,结果的相反数是几?

    上面这道题目用Grasshopper来表达应该是这样的

    image.png

    加减乘除运算器的菜单,在一般情况每一个运算器只有一个AB端口,但是如果放大好几倍,你会发现…….

    image.png

    下面我们看看Grasshopper的更加高级的运算器

    image.png

    Absolute:求绝对值

    Factorial:阶乘

    Integer Division:整除数,比如7除以2,整除数为3,9除以4,整除数是2.

    Modulus:求余数,比如7除以2,余数为1

    image.png

    Mass Addition:多项累加,比如计算1+2+3+4+……+60的和

    Mass Multiplication:多项阶乘,R值输出所有项阶乘最大值,Pr值输出多项阶乘结果,如下图多项是指1的阶乘,1 2阶乘,1 2 3 的阶乘,1 2 3 4 的阶乘直到所有项的阶乘

    image.png

    Relative Differences:相邻项差值

    下图所示,第一项和前面没有差值所以结果等于0,从第二项开始与之前一项差值都为1

    image.png

    [elementor-template id=”7418″]

  • grasshopper系列文章-曲面区间(domain)

    grasshopper系列文章-曲面区间(domain)

    今天我们来讲解Grasshopper的曲面区间的用法,关于曲面区间用官方的解释来说是这样的:

    • 包含二维域的集合。 2D域通常用于表示表面碎片。 二维域由两个一维域组成。
    • 2D域可以从1D域实例化自己。 一维域将同时复制到U和V组件中。
    • 2D域可以从所有表面类型实例化自己。 在这些情况下,表面域是重复的

    上面这段文字是不是很难理解啊,下面我会通过一些简单的小案例尽量的帮助大家来了解下这个Grasshopper的运算器。

    undefined

    Construct Domain2:建立曲面的区间,这个工具有两个,作用都是一样的。

    undefined

    在上图中,拉动数字滑竿调整改变创建的曲面区间,曲面区间输入ISOTrim运算器(这个运算器用于切割曲面的),切割的曲面也跟随改变。

    Deconstrust Domain2:分解曲面区间,能得到曲面UV值的最大值和最小值

    undefined

    Bounds 2D:通过平面上的点集合生成曲面区间,算法如下图所示。

    img

    Divide Domain :等分曲面区间,把区间分为平均的等分,比如下面的算法,大家可以下面的这个算法套用到上面Isotrim那个算法去看看会发生什么奇妙的事情。

    img

    [elementor-template id=”7418″]

  • grasshopper系列文章-数字区间

    grasshopper系列文章-数字区间

    从这一节课开始后我们要开学习Grasshopper的数学了,Grasshopper给我们提供各式各样的数学工具,有了数学工具这个强大的武器,即使是数学不好的同学也能够利用数学设计建筑。

    image.png

    在数学里,区间通常是指这样的一类实数集合:如果x和y是两个在集合里的数,那么,任何x和y之间的数也属于该集合。例如,由符合0 ≤ x ≤ 1的实数所构成的集合,便是一个区间,它包含了0、1,还有0和1之间的全体实数。

    Construct Domain:创建数字区间,比如创建一个10到20的数字区间

    image.png

    Deconstruct Domain:分解区间,分解区间后将会得到区间的两个极值,就是最大值最小值。

    image.png

    image.png

    Bounds:从数据列表中获取最大值和最小值,然后输出数字区间。

    image.png

    Consecutive Domains:划分区间,划分的方法有两种,默认情况下是这样划分的,请看下图

    image.png

    这个运算器的N输入一个等差数列(当然不是等差数列也可以的,等差数列是比较常见的用法),D端口输出划分后的区间集合

    这个区间集合的规律是等差数列的0项和1项组成区间1,1项和3项组成区间2,3项和6项组成区间3,……以此类推。

    开始项 结束项 输出区间
    0 1 组成 区间1
    1 3 组成 区间2
    3 6 组成 区间3
    6 10 组成 区间4
    10 15 组成 区间5

    如果A端口输入FALSE

    输出的区间则为下图所示:它会以输入列表的最大值作为结束端,输出等分的区间集合

    image.png

    Divide Domain:等分区间,按照输入的等分数等分大区间,输出等分后的区间集合,下图是[5,8]的区间划分了6等分

    image.png

    Find Domain:查询区间的序号,根据输入的数据就能查询包含这个数据的区间的序号,所谓序号(Index)就是Panel上最左边一列从0开始的编号

    下图中输入的值为6.350,经过查询找出它属于编号为2的这个区间(6 to 6.5)

    image.png

    Includes:判断数值是否包含在指定的区间内,如果是输出True,如果不是则输出False。

    下图中判断2和6.350这两个数是否在[5,8]这个区间,结果是False和Ture。

    image.png

    Remap Numbers:重映射区间,这个运算器在Grasshopper应用当中是很重要的,其作用就是改变原有区间的取值范围,比如[5,666]的区间的所有数字可以映射为[0,1]或其他的取值范围。

    如下图输入的值是0 1 2 3 4 5 6 7 8 9这样的等差数列数字集合,经过Remap后输出的结果被限定在0到1之间,Remap 的T端口就是输入限定的区间大小,默认值为0 to 1

    image.png

    [elementor-template id=”7418″]

  • grasshopper系列文章-一些小工具02

    grasshopper系列文章-一些小工具02

    好的,还是按照惯例来一篇Grasshopper的基础文章,今天的教程是Params最后一篇了,还是一些杂七杂八的小工具,大部分都不怎么使用的,大家只要简单认识下就好了,不过像Galapagos这种大牛才用的运算器我们都以后的课程再慢慢讲。

    image.png

    Data Dam:额…这个运算器不知道怎么解释了,就是给它输入什么类型数据,那它就输出什么数据, ̄ω ̄=,貌似没什么用。

    Data Recorder:数据录制器,在做动画时是有用了,以后有机会做用Grasshopper做动画的话我们再来演示一下吧。

    Relay:数据转接器,平时只要在Grasshopper的连接线上双击就会长这玩意,左键可以任意拖动其位置,右键可以起名字,如下图所示

    image.png

    Suirify:这个是新版本增加的,本人没有用过,这里不做解释了。

    Timer:定时器,作为动画的时间间隔,右键可以设定一些常用的时间间隔。想要了解其作用可以看看我以前写过的文章,点击下面的链接

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

    Cluster Input 和Cluster Output:封装Grasshopper算法用的输入端口和输出端口,关于封装也留到以后再讲吧

    Data Input 和Data Output:输入和输出Grasshopper的数据

    Fitness Landscpape:食用方法不明( ̄. ̄)

    Galapagos:大名鼎鼎的遗传算法运算器,大家就看着文章吧,这个也是我早前写过的一个小例子,grasshopper的Genome(galapagos)运算器的使用方法

    Gene Pool:数据池,就是一堆数据的集合,有点像Number Slider

    [elementor-template id=”7418″]

  • grasshopper系列文章-文件导入器

    grasshopper系列文章-文件导入器

    image.png

    今天我们来认识下Grasshopper的一些导入器,这些导入器顾名思义就是导入各种类别的文件了

    Atom Data:这个输出PDB文件的参数,这种文件类型大家可以到这个网站去下载到,www.rcsb.org,该文件类型我本人也不了解的,有兴趣的同学自己去了解一下的。

    Import 3DM:导入犀牛的文件

    Import Coordinates :通过文本导入点的坐标,通常做建筑地形需要用到点的高程和绝对坐标。

    Import Image:导入图片文件

    Import PDB:导入PDB文件,这种文件类型大家可以到这个网站去下载到,www.rcsb.org,该文件类型大概意思是一些和蛋白质相关的点云文件,有兴趣的同学自己去了解一下的。

    Import SHP:导入GIS文件

    Object Details:输出物件的细节参数,比如文件的名字,图层名称等有用信息,如下图Layer输出了从犀牛获取的模型的图层名称

    image.png

    Read File:读取外部的文件

    [elementor-template id=”7418″]