标签: grasshopper

  • grasshopper中删除指定边数的多边形

    grasshopper中删除指定边数的多边形

    grasshopper生成随机边数的多边形阵列,但是删除边数等于5的多边形。

    算法的思路

    1. 生成网格阵列
    2. 网格中心生成多边形
    3. 给多边形赋予随机的边数
    4. 判断边数是否等于5.在判断运算器中“不等于端口”中,如果不等于5,则返回ture,否则返回false。

    算法详解


    建立10×10的网格,C端口输出单个网格矩形,Area运算器计算网格中心,C是输出网格中心点,在C端口点击右键选择 Flatten将数据拍平,拍平后便于后面的数据组合。接着生成多边形阵列,给多边形赋予随机的“段数”值,算法如下图

    效果如下图

    判定Equality运算器用于判断A端口输入的值是否等于B端口值,“=”端口判断是否等于,“≠”判断AB参数是否不等于,不等于为True,等于为False,这两个端口是输出相反结果的。Cull  Pattern运算器是用于删除一个列表(List)数据的,删除的依据是判断P端口输入的布尔值(也就是True和False),如果输入True则不删除列表中的数据,如果输入False就是删除列表数据。

    删除边数等于5的多边形的结果

    ​草蜢算法下载

    equality_cull_Pattern.gh

    关键字:草蜢算法教程,grasshopper算法教程

  • grasshopper楼梯算法之二

    grasshopper楼梯算法之二

    较早之前也写过楼梯算法,大家可以到这里去查阅下《grasshopper参数化楼梯》,比较两者之间的不同之处,两个都能很快速的创建楼梯。今天分享的这个grasshopper楼梯生成的算法我个人觉得更加的快速,消耗资源更少,原因是这次的算法生成的楼梯都是直接生成点,在串联点生成楼梯轮廓的,在grasshopper中点这种对象并不是一种实体(显示在画面点的标示还是会占用显卡资源,但是不多),点仅仅是一种数据形态,也就是说点只是由XYZ三个坐标构成的,仅仅是数据的话,那计算当然是快的了。

    先看看这个楼梯效果图,可以看到楼梯都是点构成的。

    算法详解


    先定义楼梯踏步的长宽高和数量,让我们创建的这个楼梯具有可控制参数,高度等值传入 Series中生成等差数列,这个踏步的等高值就创建好了,这里要注意的有两个值,我这里称之为踏步根部点和踏步顶点。等高值输入Construct Point(构建点运算器)生成一系列的点。

    第二步,这里是对点做些添加和删减的操作

    1.Shift运算器是偏移作用,如果从最后的点往前面偏移布尔值为false时,删除最后一个点,

    2.List Length统计点的数量,输出数量值减去1,后面连接List Item刚好可以选择到最后一个点,再把这个点沿着曲线镜像,那这个点就跑到楼梯的下面去了,当然这个步骤可以用别的方法代替。

    第三步,串联做好的曲线

    算法文件下载

    stair_grasshopper.gh

  • grasshopper 两点绘制贝塞尔曲线

    grasshopper 两点绘制贝塞尔曲线

    grasshopper 两点绘制贝塞尔曲线

    算法详解

    1. 在犀牛视窗上绘制两个圆圈
    2. 等分点曲线
    3. 其中一个等分点的位置做偏移处理
    4. 等分点运算器的T端口输出等分点在曲线上位置的切线方向,如下图所示
    5. T端口输出的切线方法数值输入一个乘法运算器上,乘以B端口的值,可以随意调节切线向量的大小
    6. 贝塞尔曲线运算器,A和B输入两条曲线的等分点,At和Bt分别输入贝塞尔曲线,
    7. ​效果图如下图

     

  • grasshopper找到圆球的任意点并且随机两个点做去面上的连线

    grasshopper找到圆球的任意点并且随机两个点做去面上的连线

    grasshopper找到圆球的任意点并且随机两个点做去面上的连线。

    算法详解

    1. 绘制圆球体
    2. 等分球体曲面
    3. 找到球体曲面的划分的uv点
    4. 分解uv点的坐标Z的值
    5. 把Z值输入随机运算器
    6. 得到的值在组合成点
    7. 点输入曲面分析运算器中得到曲面上的任意点。
    8. 分流运算器把点分为两个支流,支流数据元素分解为单个一组的树形数据。
    9. 使用曲面上两点绘制曲线运算器绘制曲面上的曲线
    10. 最终效果图
    11. ​关键字:grasshopper教程,grasshopper算法,grasshopper寻找曲面上的点,grasshopper曲面上绘制曲线
      1. 算法文件下载
      2. 球上任一点.gh

     

  • grasshopper-series(系列运算器)用法之一:选择相邻的数据并为一组

    grasshopper-series(系列运算器)用法之一:选择相邻的数据并为一组

    grasshopper运算器教学

    series(系列运算器)用法之一:选择相邻的数据并为一组。

    如下图所示,生成一排直线,现在我们的目的是把相邻的两线段并为一组之后在作放样生成曲面(下面有效果图)。

    具体算法

    这里要注意这里有两个series运算器,第一个series运算器C端口输入的数值要等于线段等分点的1/2,第二个series运算器的C端口值等于第一个series公差值,也就是2.

    效果图

    series用法详解:

    S端口输入series的初始值,默认情况下等于0,N端口是输入公差,默认情况下等于1,则输出的数据列表为“0 1 2 3 …. 9”,C端口输入series列表的个数,默认10。

    如下图所示,第一个series列表公差为2,输出的数列为“0 2 4 6 8…18”,把列表的结果再输入第二个列表的初始值中,第一个列表的结果的每一个值都会在第二个series运算器中运算器一次,第二个series运算器的公差等于1,输出的数据数量为2个,那么最终得到的数据就是“0 1”“2 3”“4 5”……“18 19”

    算法文件下载

    series.gh

    关键字:grasshopper运算器教程,grasshopper算法教学

     

  • grasshopper翻转曲线的用法flip_curve

    grasshopper翻转曲线的用法flip_curve

    grasshopper翻转曲线的用法

    有时绘制或者一些点串联生成的曲线方向会不一致,这样会导致在做批量偏移曲线的时偏移方向也会不一致,如下图所示,绿色圈是偏移后的曲线,有些向内,有些曲线向外偏移了。

    A曲线:可以随意绘制一段曲线,亦可以从原来的曲线拾取作用指定的曲线方向,把A曲线输入Flip Curve(曲线方向翻转运算器),FlipCurve的C端口输出翻转后的曲线,F端口输出判断曲线是否翻转的布尔值。

    最终结果,绿色的为偏移后的曲线,不再出现偏移方向不一致的情况了。

    本小节的模型和Gh算法文件

    Flip_curve.gh

    flip_curve.3dm

  • grasshopper曲面流动的用法-surface-morph

    grasshopper曲面流动的用法-surface-morph

    grasshopper曲面流动的用法

    在Transform页面的我们可以找到Surface Morph运算器(曲面包裹器),这个运算器的功能跟犀牛的“沿着曲面流动的”类似,都是可以让一个形体直接附着到曲面上,在做曲面不规则变化那是相当便利的。

    用法


    首先在平面视图上绘制一个图形,形状如何无所谓,但是一定要有高度。接着创建一个被附着的曲面,这个曲面也是任意曲面,但是一定要注意这个曲面不能被修剪,这点要特别注意。创建的两个形态如下图所示。

    Brep调用在平面绘制的形体,Surface调用被附着的曲面,Surface Morph的G和R端口连接Brep,S端口连接Surface。其中R端口本身是输入一个Box物体的,只是在新的Grasshopper版本中如果连接物体本身,它默认会以该物体边界的长宽高定制一个Box。

    下图标记的一号运算器是划分曲面运算器,这个划分的UV值必须等于1,这样使得输出的UV区间值仅为一个。二号运算器作用是分解“二维区间”为“一维区间”,它输出的值输入Surface Morph的UV值,W值控制流动后的厚度。

    最终效果图

     

  • grasshopper钢架结构算法,桁架结构算法

    grasshopper钢架结构算法,桁架结构算法

    算法下载链接

    厂房屋顶.gh

    厂房屋顶.3dm

    如果不能下载,请评论区留言

    grasshopper钢架结构算法,桁架结构算法

    效果图

     

    带完整的桁架结构

    不带屋顶面桁架算法

    算法下载链接

    厂房屋顶.gh

    厂房屋顶.3dm

    如果不能下载,请评论区留言

    ​关键字:grasshopper算法,grasshopper教程,grasshopper钢架做法

  • 如何在grasshopper上找到真正的uv展开曲面

    如何在grasshopper上找到真正的uv展开曲面

    如何在grasshopper上找到真正的uv展开曲面

    grasshopper里Dimensions运算器是计算曲面的展开的uv值的,但是这个计算本身有比较大的误差,计算后的uv值根本不能如是反应到原来曲面上,如下图所示:计算出的uv值分别是26.5和25.2,但是把uv值转化为点在“映射”会曲面时就有问题了。

    箭头所指就是平面点(uv点)映射到曲面的情况,这时点并不在曲面上,而是飞出曲面。

    那除了这个在grasshopper里面还有一个运算器能够得到曲面的点的uv值:Divide Surface(等分点运算器),这个运算器输出曲面的等分点,同时还输出每个点的uv值,而且等分点的第一个点的值是从0坐标开始计算起,这样为我们做从原点开始绘制一个展开的矩形uv曲面提供极大便利。如下图

    整个uv值的“终点”就是等于最后一个点的uv坐标,我们只要能够获取该值就可以了。

    如下图所示,我把uv值“拍平”(Flatten Tree)让它形成线性数据,在Reverse List(翻转数据),翻转数据后点的最后一个数据会被排到一个位置上,最后List Item选出第一个数据,也就是曲面等分的最后一个点。如下图所示。

    用Deconstruct运算器得到UV值

     

  • grasshopper筛选出几何体内的点并删除

    grasshopper筛选出几何体内的点并删除

    grasshopper筛选出几何体内的点并删除

    绘制如下图的点阵列和全封闭的几何体。

    封闭的几何体我用的曲线加Pipe运算器生成,再加上Cap holes运算器加上盖子封闭圆管。点的阵列用Populate生成随机排列的点。

    点和几何体数据分别连到Point in Brep运算器,该运算器输出True和False的布尔值,如果在几何体内的输出True,在几何体外的输出False,但是我最终是要删除几何体内的点,因此用“等于运算器”判断值是否等于“True”,最后把不等于的值连进Cull Pattern运算器的P端口。Cull Pattern是根据True和False列表规则删除指定的数据。

    删除后的效果

    隐藏圆管的效果