标签: grasshopper运算器

  • Relative Item究竟有什么用,怎么用-Grasshopper运算器教程

    Relative Item究竟有什么用,怎么用-Grasshopper运算器教程

    在Grasshopper中有这么一个运算器-Relative Item ,好多人都不知道这个运算器是怎么用的,它有什么作用的
    今天我来给大家科普一下它的简单用法。
    归纳一下就是这么一个作用

    找到下一个物体的相关位置

    这听起来可能难以理解

    我今天用一个简单例子给大家说明一下

    比如有以下的点的矩阵,矩阵的坐标点(实际上是点在列表中的路径,而不是真实的坐标点)已经标识出来了

    image-20210610120812136

    标识点做坐标的算法看下图

    image-20210610120932650

    知道了点在列表中的路径,接下来就利用Relative寻找相关点,如下图所示,我把数据连接到Relative Item的T端口,而O端口输入文字“{1;1}”,这个{1;1}代表是{0;0}下一个点的相关点,我们也可以理解为{0;0}下一个点指向{1;1},同理{3;3}下一个点直线{4;4},{2;1}下一个点会指向{3;2}

    image-20210610121242406

    所以把所有点连接之后就会出现这样的情况,不知道大家看出来了规律了没有。

    image-20210610121647809

    如果把O值改变了会出现什么情况呢?这个留给大家自己探索了,你也可以把答案写在评论区内。

    好了今天的Grasshopper的运算器杂谈就分享到这里了

  • grasshopper系列教程-布尔运算

    grasshopper系列教程-布尔运算

    今天我们来学习Grasshopper的系列教程,今天要学习的内容是:布尔运算

    布尔运算通常用于实体之间的运算,Rhino软件的布尔运算的原则是曲面必须完全封闭,否则布尔运算有可能会出错。

    Boundary volume:从边界创建闭合的曲面物体

    这个运算器要求输入的物体是能组合成封闭的体块,这些输入的物体可以是几个未拼接的面片,也可以是完整的体块。

    计算机生成了可选文字: 囤80s 0Cloged “、3dscgc创11

    在下图中,我们看到一个方块物体被切了一个角,角的那个位置补了一个三角面,那这个三角面和方块组成的一个封闭的体块。

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

    Solid difference:布尔运算差集

    熟悉犀牛的同学应该都知道了,这个运算器就是做ab物体之间的减法,a物体会减掉他们共同相交的部分

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

    在下图当中方块减掉了球体和它相交的共有部分,绿色部分就是最后的结果

    计算机生成了可选文字:

    Solid intersection:布尔运算交集

    计算出两个物体之间相交的部分

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

    下图是方块和圆球体的相交部分

    计算机生成了可选文字:

    Solid union:布尔运算并集

    两个物体合并生成一个物体

    计算机生成了可选文字: wyw.@dscg.com

    方块和球体合并

    计算机生成了可选文字:

    Split Brep:布尔运算分割

    B物体被C物体分割为多个部分,被分开之后的物体保持封闭的体块

    计算机生成了可选文字: O open Brep 1 Open

    分割物体之后的效果

    计算机生成了可选文字:

    Split Brep Multiple:B物体被多个C物体分割,这个运算器是上一个的复数形式。

    计算机生成了可选文字:

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

    Trim solid:体块修剪

    修剪和分割是有区别的:

    1. 分割之后物体依然还是实体
    2. 而修剪则不是,物体变为空心的了

    计算机生成了可选文字: nnw/_3dscg.com

    被修剪后的效果,大家可以在下图中看到这个方块,现在已经不是闭合的了。

    计算机生成了可选文字:

    [elementor-template id=”7418″]

  • grasshopper系列教程-曲面的分割

    grasshopper系列教程-曲面的分割

    今天我们来学习Grasshopper的系列教程,今天要学习的内容是:曲面的分割。

    今天我们来了解一下在Grasshopper中是怎么样分割曲面的,在Grasshopper中有这么几种方式来分割曲面:映射平面曲面到曲面上,按结构线分割曲面,匹配一个已分割的曲面的参数.

     

     

     

    Copy Trim:映射平面曲面到曲面上

    这个运算器有点像犀牛中的流动曲面,只不过它的操作更加简单,只需要我们在平面上绘制一个矩形的平面,在矩形平面中,我们可以绘制任意的洞口,把这个平面完成后输入到Copy Trim就可以了

    Grasshopper运算器左边的参数分别代表的是:

    1. 输入映射的曲面,如果这个平面是有很多个形状构成的,最终完成的必须是一个矩形的平面,就如下面的效果图所示。
    2. 输入目标曲面,目标曲面一定要是一个未被修剪的完整的曲面

    映射平面曲面到曲面上的效果如下图所示

    Isotrim:按结构线分割曲面

    这个运算器是我们常用的分割曲面的运算器之一,他的操作方法就是在d端口输入分割的区间,我们来看一下参数吧。

    Grasshopper运算器左边的参数分别代表的是:

    1. 要分割的曲面
    2. 分割曲面的区间,这个区间的用法我们在已经学习过了,大家可以在零刻学堂搜索【区间】查找相关的文章

    关于结构线分割的用法,我们会在后面的文章做一个详细的剖析,用来展示他千变万化的分割方法。

    Retrim:按照已被修剪的曲面来重新分割曲面

    这个运算器看上去有点奇怪,为什么要重新修剪曲面呢?

    大家再回到文章的开头,讲解第1个运算器的时候,我说绿色平面曲面到曲面上这个运算器是要求曲面是未被修剪的,那么这个时候大家可以去尝试一下,如果一个局面是被修剪过的,那么映射上去的效果是如何,这里我没有给大家解除,大家自己去尝试一下,试过之后就知道这个运算器究竟有什么意义了。

    那我们来看一下它的参数吧,Grasshopper运算器左边的参数分别代表的是:

    1. 原来的曲面
    2. 要匹配修剪的曲面

    计算机生成了可选文字: W'.'.r.'.'.@dscg.com

    匹配的效果

    Untrim:取消修剪

    这个运算器在犀牛上也能找到相应的命令,目的就是用于富人被修剪过的曲面,用法简单,这里就不再多加阐述了。

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

    复原被修剪曲面的效果

    [elementor-template id=”7418″]

  • grasshopper系列教程-旋转成型

    grasshopper系列教程-旋转成型

    今天我们来学习Grasshopper的系列教程,今天要学习的内容是:旋转成型

    旋转成型有两个,一个是普通的旋转成型,另外一个是沿着曲线(路径)旋转成型,这两个运算器,我们在犀牛也能找到相应的命令,也是我们做曲面造型常用的命令之一。

     

     

     

    Rail revolution:  沿着曲线旋转成型

    Grasshopper运算器左边的参数分别代表的是:

    1. 输入要旋转的曲线,这个曲线我们一般称之为截面
    2. 输入沿着曲线运动的路径,这个线一般在平面上画
    3. 输入要旋转的轴向,一般绘制一条和路径垂直的直线

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

    沿着曲线旋转成型的效果,请看下图

    Revolution:旋转成型

    这个没什么好说的,只要输入界面曲线和轴向曲线就可以了

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

     

    [elementor-template id=”7418″]

  • grasshopper系列教程-曲线挤出成面

    grasshopper系列教程-曲线挤出成面

    今天我们来学习Grasshopper的系列教程,今天要学习的内容是:曲线挤出成面

    曲线挤出,几乎是所有设计软件里都有的一种操作,不管是su也好,3d max也好,犀牛也好,里面都有这个命令,特别是犀牛软件曲线挤出花样繁多,有最普通的直线挤出,高级一些的有沿着曲线指出,还有挤出成一个锥体。在Grasshopper中给我们提供了4种方式,好,那我们来看一下这4种方式分别是怎么使用的。

     

     

     

    Extrude:直线挤出

    Grasshopper运算器左边的参数分别代表的是:

    1. 输入要挤出的物体,这个端口可以输入曲线或者曲面,当输入曲线的时候,挤出的物体是不加盖的,如果输入的是曲面,它挤出的物体是实体,也就是加了盖子的物体。
    2. 输入挤出的方向,方向有最常用的z轴方向,也可以是曲面的法线方向,或者是直接输入一条直线作为方向也是没问题的,关于方向的创建,我们在前面的课程都讲过很多种方法,大家可以在我的博客里面找到相关的文章查阅。

    计算机生成了可选文字: 3dscg℃om

    挤出的效果,请看下图,下图中是曲线的挤出,因此它是空心的物体,没有盖子。

    计算机生成了可选文字: ””整300℃0

    Extrude along:沿着曲线挤出

    Grasshopper运算器左边的参数分别代表的是:

    1. 输入要挤出的曲线
    2. 输入指定的挤出方向,这里一般输入一条曲线

    计算机生成了可选文字: 、3ds00℃om

    效果请看下图

    Extrude linear:挤出到一个平面上

    这个运算器就稍微复杂一些了,暂且先看看下面的参数

    Grasshopper运算器左边的参数分别代表的是:

    1. 输入要挤出的曲线
    2. 输入挤出到的平面,这个是本运算器的关键端口,这里设定了一个平面之后,那输入的曲线挤出之后,最终将指到这个平面上
    3. 输入挤出的方向,我挤出了方向,一般不能和上面那个端口的平面平行

    计算机生成了可选文字: WWW.3dscg℃0

    在下图中我们看到红色箭头指的就是我们挤出的线条,蓝色箭头就是曲线挤出的方向,在本案例中他是垂直向上的,下途中,横摆着的平面就是曲线挤出的最终所到的平面,所以我们可以看到最终挤出了那些数值平面它都和水平平面相交,

     

    Extrude point:挤出到点

    意思就是把曲线挤到一个点上,形成一个棱锥,这个命令在犀牛也是有的,我们平时做塔尖的时候也会用到这个命令。

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

    效果图如下

    [elementor-template id=”7418″]

  • grasshopper系列教程-计算体积和面积

    grasshopper系列教程-计算体积和面积

    今天我们来学习Grasshopper的系列教程,今天要学习的内容是:体积和面积的计算

    Area:计算曲面的面积和中心点

    Grasshopper运算器右边边的参数分别代表的是:

    1. 输出曲面的面积
    2. 输出曲面的中心点

    计算机生成了可选文字: 0 0 Gm2 02B8E.800€4E {3邑.44SSE彐, 4.033SOE,C} WWW.3åscg℃om 0

    Area moments:输出曲面的面积、中心点和一些参数

    计算机生成了可选文字: 0

    Volume:输出物体的体积和中心点

    计算机生成了可选文字: wWW.3dSCg℃om

    Volume moments:

    计算机生成了可选文字: 0 嘰dscg℃am

    [elementor-template id=”7418″]

  • grasshopper系列教程-曲线上的平面

    grasshopper系列教程-曲线上的平面

    今天我们来学习Grasshopper的系列教程,我们今天来学习,在曲线上做平面的方法。

    在曲线上做平面,这类运算器和我们上节课讲的在划分曲线是差不多的,划分曲线是在曲线上做点,而今天我们的内容,是在曲线上做平面,点和平面既有相同点,也有不同点。

    相同地方,不管是点还是平面,我们都可以看作点来操作。不同点之处的在于点是没有方向的,而平面它是有方向的,通常平面我们都可以拆分为xyz三个方向,而点只能拆分为xyz三个点坐标。

    通过生成平面,我们可以为后续的操作做一些准备,比如我们要运动点,我们必须有方向,比如我们要绘制一条曲线,这条曲线它是有定向方向的,那我们必须有这个平面坐标,那这里的一切我们都可以生成平面开始,当然制作平面的方法那是多种多样的,也不单单是这种,只是说基于犀牛的建模原理,我们往往都是从曲线入手的,曲线才是犀牛的灵魂,参数化建模当然也不例外了。

     

    Curve frames:做曲线上的等分平面

    Horizontal frames:做曲线上的等分水平面

    Perp frames:做和曲线垂直的等分平面

    img

    这三个运算器的用法都是差不多的,我这里把它拿到一起来讲,在上图中我们可以看到它的输入端口和输出端口的参数都是一样的,左边的n端口的是输入等份的数量,右边的f端口是输出等分的平面,t端口是等分平面在曲线上的位置参数,那我们就来看一看这三个究竟有什么区别。

    我们先来看看第2个和第3个吧,这两个的区别比较大,第2个运算器是生成的是一个水平面,而第3个生成的是和曲线垂直的平面,这一点我们从第3个运算器的图标都能清晰的看出来。

    接下来是第1个和第2个的区别。

    这两个这两个生成的平面的都不是以曲线垂直的,第1个生成的平面会跟曲线所在点的位置成一个平面,这个怎么理解呢?请看下图,

    我们可以在下面的图例当中可以看到沙僧人的平面都是倾斜的,那为什么会倾斜呢?因为这条曲线上的这个点就是倾斜的,

    img

    而第2个运算器则不是,大家可以看一下第2张图

    我们可以看到生成的平面跟这个曲线,它在方向上并没有什么关联,这个平面它是跟xy平面是平行关系,这就是两者之间最大的差别

    img

    这三个运算器我们用Grasshopper做设计的时候也是经常用到的,至于选用哪个,我们得实际看曲线的造型,曲线的走向,跟我们的设计注重点来选择。

    [elementor-template id=”7418″]

  • 如何在Grasshopper中找到曲面的任一点在平面的上映射点

    如何在Grasshopper中找到曲面的任一点在平面的上映射点

    如何在Grasshopper中找到曲面的任一点在平面的上映射点。

    我们先来看看算法

    image.png

    算法上来说还比较简单的,在曲面上画几个点,当然这几个点也不一定是在曲面上的,靠近曲面也是可以的,然后使用今天讲的重点运算器:Surface Closest Point ,直接翻译就是【最靠近曲面的点】,其最终输出的就是曲面的上的点和平面上的映射点。就如上图所示。

    image.png

    【曲面上的点(红点)和平面上的映射点(绿点)】

    那么同学会问了:找到这些点有什么用啊??

    这个问题问得好啊,那我下面就说说它的几个大用处。

    首先找映射点,上面提到了的。一般只找到映射点是没什么用的,有用的下面这个操作。

    image.png

    去曲面上绘制曲线,上面算法不是得到平面映射点了吗?我们把映射点连起来后再映射会曲面上,这样在曲面上就得到一条曲线了。

    第二是通过映射点能得到曲面的结构线。有了曲面结构线后我们就可以用分割曲面、创建曲面的框架构件等等。

    image.png

    【曲面的结构线】

    第二,找到曲面的映射点,可以【摊平曲面】

    image.png

    经过上图的算法,能把任何曲面【摊平】成矩形,其实正确的说法应该是【建立UV曲线】,这操作在Rhino上也是有的啊,其命令就是【Create UV Curve】。

    我们只要能够把曲面的UV曲线找到,那么下一步就能够对这个曲面【为所欲为】了,你想干嘛够行。

    比如:

    image.png

    经过以上一顿骚操作,其大致原理就是去UV曲线内绘制任何实体,最终用【Surface Morph】流动到曲面上。

    image.png

    其他的任何曲线或者实体都可以用这个方法来做的,比如蜂巢样式表皮,鸟巢,水立方等等都可以,同学们自己发挥下聪明才智了。

    好了我们今天的Grasshopper的课程就到这里的,如果有什么疑问的话,请到下方的留言窗口留言。

    [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小插件,使用的方法如上图所示,第一端口连接要筛选的物体,其他端口根据需要连接数据就好了。

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

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

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