分类: grasshopper

专业解析grasshopper技术

  • grasshopper系列教程-曲线和曲面之间的相交

    grasshopper系列教程-曲线和曲面之间的相交

    今天我们来学习Grasshopper的系列教程,今天要学习的内容是:曲线和曲面之间的相交.

    曲线和曲面之间的相交能让我们快速的获取他们的相交点和这个点的一些参数,比如点的坐标点在曲面上的法线方向等等。

    Brep|  Brep:曲面和曲面相交

    Grasshopper运算器右边边的参数分别代表的是:输出相交的曲线和点

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

    计算机生成了可选文字:

    Brep|  Curve:多重曲面和曲线相交。

    Grasshopper运算器右边边的参数分别代表的是:输出相交的曲线和点。

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

    Surface|  Curve:曲面和曲线相交

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

    1. 在曲面上的曲线,这个案例当中曲线是穿过曲面的,所以这个端口是没有输出在曲面上的曲线
    2. 曲面和曲线的相交点
    3. 相交点的UV值
    4. 相交点在曲面上的法向方向
    5. 相交点在曲线上的位置值
    6. 相交点在曲线上的切线方向

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

    曲线和曲面相交的效果如下图所示

    计算机生成了可选文字:

    Surface Split:分割曲面

    当曲线被投影到曲面之后,可以使用分割曲面这个运算器,把曲面分割为多个部分。

    这里要注意的是,曲线没有投影到曲面上,其实也是可以分割曲面的,但是会出现一个错误的结果。

    分割曲面之后,我们要用分流运算器或者筛选运算器把曲面分开。

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

    分割曲面后的效果。

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

    [elementor-template id=”7418″]

  • grasshopper系列教程-曲线之间的相交

    grasshopper系列教程-曲线之间的相交

    今天我们来学习Grasshopper的系列教程,今天要学习的内容是:曲线之间的相交

    以下的几个运算器就是用于计算曲线与曲线相交,曲线自己相交,或者多条曲线互相相交。

    Curve| Curve:曲线和曲线相交

    输入两条曲线计算其相交点,和计算相交点在ab曲线上的位置值。

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

    曲线与曲线相交的效果

    Curve| Self:曲线和自己相交

    计算机生成了可选文字: W%%'3dScgcom

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

    Multiple Curves:多条曲线相交

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

    1. 输出相交的点
    2. 输出和第1条曲线相交的序列号
    3. 输出和第2条曲线相交的序列号
    4. 输出和第1条曲线相交的点的位置值
    5. 输出和第2条曲线相交的点的位置值

    [elementor-template id=”7418″]

  • grasshopper系列教程-射线和物体的相交

    grasshopper系列教程-射线和物体的相交

    今天我们来学习Grasshopper的系列教程,今天要学习的内容是:射线和物体的相交

    本节课的射线是指已知一个往不同方向发出生成的直线

     

     

     

    IsoVist:射线和物体相交

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

    1. 射线的中心点
    2. 射线发出的方向的数量
    3. 射线的长度
    4. 和射线计算碰撞的物体

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

    1. 输出射线的终点,在射线的方向上如果碰到的物体,那么这个终点就会落在物体上
    2. 射线的起点和终点的距离
    3. 判断射线是否和物体相交,如果是相交的,那么这个值输出0,不相交输出-1。

    计算机生成了可选文字: nn.AM-3dscg.com

    射线和物体碰撞的效果

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

    IsoVistRay:计算射线和物体相交,这个运算器和上一个基本类似,大家参考下面的算法来理解这个运算器。

     

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

    [elementor-template id=”7418″]

  • grasshopper系列教程-物体和平面的相交

    grasshopper系列教程-物体和平面的相交

    今天我们来学习Grasshopper的系列教程,今天要学习的内容是:物体和平面的相交

    物体和平面的相交也是我们常用的计算相交线的方法,其中最最常用的是制作等高线,制作等高线,我们不但可以做地形上的等高线,也可以做建筑的楼层线,建筑外墙玻璃的分隔线这些都可以用等高线来制作。

    注意事项:这节课案例中的平面并不是指平面曲面,而是一个无限大的参考平面

    Brep| Plane:物体和平面相交

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

    1. 输出相交线
    2. 输出相交点

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

    Contour:按照指定的方向生成等高线

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

    1. 制作等高线的物体
    2. 等高线的起点参考平面
      • 一般来说我们制作建筑的楼层线,等高线的起点就是±0坐标。
    3. 等高线的方向
      • 等高线的方向可以用一条直线来表示
      • 也可以输入坐标方向
    4. 等高线的间距
      • 这个运算器的间距值只能输入一个,如果输入多个值会生成错乱的等高线

    计算机生成了可选文字: 00.2 cg_ m

    等高线的效果请看下图

    Contour (ex):等高线加强版

    这个等高线的运算器是上一个等高线运算器的加强版,上一个运算器中间距只能输入一个值,而这个是可以输入多个值的,这样的话我们就可以完成一些非均匀划分的效果了,比如玻璃幕墙上面的划分,或者高层建筑防火层的区间划分这些类似的情况。

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

    1. 绘制等高线的物体。
    2. 等高线的起点平面
    3. 等高线的楼层高度
      • 这个端口输入的是一个等差数列
      • 楼层高度指的是每个楼层线的高度
      • 它是一个绝对值,比如输入0.5、1.0、1.5、2.0这类间距相等的数字。
    4. 等高线的楼层间距
      • 这个楼层间距可以输入多个值
      • 每个值表示一个楼层的间距
      • 如果我们要做建筑高层楼层线的话,一般会采用这个端口输入的数据
      • 因为它可以指定每个楼层不同的高度,比如群楼的高度或者防火墙的高度
      • 3和4这两个端口是2选1的,如果用了3号端口,那4号端口一般就不需要输入数据
      • 因为这两个端口采用了两种不同的算法,我们使用时候只要选一个就可以了

    计算机生成了可选文字: TWO ROC 002 0 04 002 004 3ds ca

    两种等高线算法产生的不同效果,左边是采用指定楼层高度的做法,右边是使用等差数列的算法

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

    Curve | Plane:曲线和平面的相交

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

    1. 输出平面和曲线相交的点,这个点会出现在曲线上
    2. 相交的点,在曲线上的位置值
    3. 相交的点在平面上的UV值

    曲线和平面相交的效果

    Line|Plane:直线和平面相交

    这个运算器和上面的运算器是类似的,这里不多加讲述了。

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

    Mesh| Plane:网格和平面的相交

    最终输出网格和平面的相交线

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

    网格和平面相交线的效果请看下图。

    Plane| Plane:平面和平面相交

    如果两个平面是互成夹角的话,最终会输出一个直线

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

    Plane|Plane| Plane:三个平面相交

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

    1. 三个平面相交的点
    2. Ab平面相交的线
    3. Ac平面相交的线
    4. Bc平面相交的线

    Plane Region:平面区域

    [elementor-template id=”7418″]

  • grasshopper系列教程-直线和各种物体的相交

    grasshopper系列教程-直线和各种物体的相交

    今天我们来学习Grasshopper的系列教程,今天要学习的内容是:直线和各种物体的相交

    计算直线和物体的相交,可以让我们快速的得到直线和物体的相交点和这个点在物体上的位置关系。

    Brep/Line:多重曲面和直线相交

    多重曲面和直线相交之后,我们会得到直线和多重曲面的相交点

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

    Curve / line:曲线和直线相交

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

    1. 曲线和直线相交之后的相交点
    2. 相交点在直线上的位置值
    3. 相交点的数量值

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

    曲线和直线相交的效果,请看下图。

    Line/ Line:直线和直线相交

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

    1. 相交点在a线段的位置值
    2. 相交点在b线段的位置值
    3. 在a线段的相交点
    4. 在b线段的相交点

    计算机生成了可选文字: \叭叭N,'3dscg.com

    Mesh/ Ray:网格和射线相交

    所谓的射线就是已知起点和方向的直线,这个运算器用于计算射线和网格之间的相交点。

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

    1. 输入网格曲面
    2. 输入射线的起点
    3. 输入射线的方向,这个方向我们可以用直线来表达就行了

     

    <img title="1590562397.png" src="https://ww1.3dscg.com/img/2021/20211590562397.png" alt="计算机生成了可选文字: 0" 3dscgcom" />

     

    Surface / Line:曲面和直线相交

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

    1. 相交重叠的曲线,这个案例并没有相交重叠的曲线,因为这个曲面是一个圆球,而我们是直线穿过圆球,而不会有相对相交重叠的曲线的,如果是直线穿过一个平面,而且这个直线在平面内的话,那是有相交的曲线的。
    2. 曲面和直线的相交点
    3. 相交点的UV值
    4. 相交点在曲面上的法向方向

    计算机生成了可选文字: \叭叭N,'3dscg.com

    [elementor-template id="7418"]

  • grasshopper系列教程-网格面小工具3

    grasshopper系列教程-网格面小工具3

    今天我们来学习Grasshopper的系列教程,今天要学习的内容是:网格面小工具3

    img

    Align Vertices:对齐网格内部的点

    对其网格内部的点实际上是对这个英文单词的直译,当然,实际上经过我的研究,这个运算写作用实际上是通过一个引力大小来拟合网格点内部的点。

    在下图当中t的值等于0.569,那模型是没有任何变化的,当t等于4.536的时候,模型会发生改变

    img

    在下图当中我们可以看到0.569它是模型本身的样子,而在4.536的时候,模型左边的顶角发生了一些变化,各位同学依据这个变化独立思考一下。

    img

    FLip Mesh:翻转网格的方向

    这个和翻转曲面的方向是一样的,这里就不多做解释了。

    img

    Quadrangulate:把网格的三角面转化为4边面

    网格曲面可以由三角面构成,也可以由四边面构成,这个运算器就是把三角面转化为4边面

    img

    Triangulate:把网格的4边面转化为三角面

    img

    网格面的转化效果

    左边是网格四边面的效果,右边是网格三角面的效果

    img

    Unify Mesh:统一网格面的方向

    这个运算器可以让有些方向不对的网格面统一成一致的网格面方向。

    大家如果对su熟悉的话,就会发现有些su的模型,它的面片的方向是反的,当用这些模型输入到犀牛的时候,那我们要对它的面的方向做一个整体的统一,使用这个运算器可以给我们节省大量的时间。

    img

    Unweld mesh:取消网格的焊接

    img

    Weld mesh:焊接网格,焊接网格主要的作用是拟合网格内部点,拟合网格内部点之后,会使网格点、面的数量降低,起到优化模型的作用。

    img

    [elementor-template id=”7418″]

  • grasshopper系列教程-网格的操作

    grasshopper系列教程-网格的操作

    今天我们来学习Grasshopper的系列教程,今天要学习的内容是:网格的操作

    网格的操作是关于网格内部点的选取,网格内部面的选取或者删减等等一系列操作。这一部分操作和我们前面学习的集合的筛选删减等操作是类似的,大家也可以翻回之前学习的内容,结合的一起学习,这样学习效果更佳。

    img

    Blur mesh:模糊网格点的着色

    这个运算器用于模糊网格点表面的颜色,通过i值改变模糊的程度。

    img

    0.450时的效果

    img

    0.660时的效果

    img

    Cull faces:删除面片

    按照true和false的规则来删除面片

    img

    img

    Cull vertices:删除点

    也是true和false的规则来删除点

    img

    Delete faces:按照面的序列号来删除面片

    img

    面片的删除效果

    img

    Delete vertices:按照点的序号删除点

    img

    Disjoint Mesh:网格面断开连接

    这个运算器表面的意思就是断开曲面之间的连接,但是实际测试效果却是不可行的,具体原因不明,有可能是软件开发的bug。

    img

    Mesh join:组合网格面

    img

    Mesh shadow:网格的投影

    这个运算器可以模拟太阳光照投影的效果

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

    \1. 要做投影的网格曲面

    \2. 太阳光直射的方向,这里只要输入一条直线就可以了

    \3. 影子的参考平面,一般xy平面就可以了

    img

    img

    Mesh Split Plane:用平面来分割网格曲面

    在下图中我们用一个yz平面来切割网格曲面让它分为两个网格曲面。

    img

    img

    Smooth mesh:平滑网格曲面

    img

    [elementor-template id=”7418″]

  • grasshopper系列教程-网格曲面的转化

    grasshopper系列教程-网格曲面的转化

    今天我们来学习Grasshopper的系列教程,今天要学习的内容是:网格曲面的转化

    网格曲面的转化:这部分内容是关于网格的一些参数设定,一般设定网格面的点数量和模型的精细程度,不过我们平时使用的时候,只要用默认的设置就可以了。

    img

    Mesh Brep:曲面转化为网格

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

    \1. 输入要转化的曲面

    \2. 输入转化为网格的参数,这个端口我们不需要输入任何参数,它内置的默认函数也是足够用的。

    img

    Mesh surface:设定网格曲面的参数

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

    \1. 输入要转化为网格的曲面

    \2. 网格曲面的U方向点数

    \3. 网格曲面的V方向点数

    \4. 网格面是否要修剪的开关。

    a. 如果是true的话:那生成的网格面会复原修剪之前的效果

    b. 如果是false,那输出的是修剪后的效果

    c. 如下图所示,我们看到的网格面就是修剪后的效果

    img

    img

    Settings (Custom):网格面的设定参数

    这个参数比较复杂,我们找个时间写一篇专题来讲

    img

    Settings (Quality):曲面的平滑模式,这个不需要任何设置,它内置的一种平滑模式,直接输入就可以了

    img

    Settings (Speed):曲面的快速模式,这个也不需要任何设置,它内置的一种快速的显示模式,直接输入就可以了

    img

    Simple Mesh:转化成多边形面片

    这个运算器可以把曲面转化为三角形的面片

    img

    img

    [stag_sidebar id=”gh-article”]

  • grasshopper系列教程-Meta球

    grasshopper系列教程-Meta球

    今天我们来学习Grasshopper的系列教程,今天要学习的内容是:Meta球

    Meta球是用两个或者两个以上的点作为曲线的圆心,在圆的外侧设定一个点作为引力因子,使其能对圆形产生因引力引起的变化。

    从另外一个角度去理解,我们也可以理解为两个小水滴挨得很近,他们也会互相吸引,那这两个小水滴没有完全融合之后的效果,就是Mate球了

    img

    MetaBall:Mate球

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

    \1. 输入Mate球的圆心点,圆心点的数量要求是两个以上的。

    \2. 输入Mate球参考平面

    \3. 输入外部的引力因子

    \4. 生成的曲线的采样值,如果参数等于0,输出的就是平滑的曲线,如果是大于0,输入多段线,这个数值就充当多段线每一个线段的长度。

    img

    img

    MetaBall(t):通过曲线的曲率控制的Mate球

    和上一个运算器的差别就是曲线是通过曲率值控制了,不是通过采样值控制的

    img

    img

    MetaBall(t) Cus tom:更多参数的Mate球

    这个可以单独控制每一个Mate球的圆心的引力大小,这里要注意的就是引力值的个数要和圆心点数量一致,否则会报错。

    img

    img

    [stag_sidebar id=”gh-article”]

    [elementor-template id=”7418″]

  • grasshopper系列教程-叶片网格划分

    grasshopper系列教程-叶片网格划分

    今天我们来学习Grasshopper的系列教程,今天要学习的内容是:叶片网格划分

    叶片网格划分:是指把点云按照参数划分成多个小的空间,让每个空间都包含若干个点

    img

    OcTree:立方体划分

    把空间的点按照立方体的形式来划分,让点包含在每个单独的小空间内。

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

    \1. 输入要划分空间的点云

    \2. 立方体空间的大小,这个值越大,作为容器的立方体就越大

    \3. 点云群体的数量,这个值越大,立方体内的点就越多,那么立方体的体积也将变大。

    文字的表述可能比较枯燥,大家可以通过下面两个参数的调整来看一下立方体划分之后的效果。

    img

    点云在做空间划分后的效果如下图所示。

    img

    Proximity 2D:2d的点云的区域连接

    这个运算器制作的效果会比较酷炫,参数也比较复杂,大家可以先看看效果图,再来学习参数。

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

    \1. 输入2d的点云

    \2. 点云的参考平面

    \3. 点云内部点的相互连接的点的个数,这个参数大家要好好理解一下,所谓内部点相互连接点的个数指的是:

    o 内部的任意一个点和其他点相互连接的个数,比如说内部有个点叫点a,那么这个值等于3的话,那点a只会跟最近的三个点进行连接,如果这个值等于100的话,那么点a会跟最近的100个点进行连接,

    \4. 点之间相互连接的下限值

    \5. 点之间相互连接的上限值,通过这个值的设定,我们可以让这个点只连接它周围的点。

    img

    2d的点云的区域连接

    img

    Pr○ xml ty3D:3d点云的区域连接

    这个是上一个运算器的3d版本,参数各方面都是类似的,这里就不多加描述了,大家通过下面的参数的调整也可以很轻松的看到其变化。

    img

    img

    QuadTree:二维的点区域划分

    这个是上面那个立体划分的二维版本,他们的参数也是类似的,大家可以通过参数的调整观察其变化。

    其中下方的案例图例当中有个Toggle运算器是用与切换矩形和正方形的形态的,大家双击这个运算器就可以看到效果的。

    img

    img

    [elementor-template id=”7418″]