分类: grasshopper

专业解析grasshopper技术

  • grasshopper随机在曲面上抽离结构线算法

    grasshopper随机在曲面上抽离结构线算法

    grasshopper随机在曲面上抽离结构线算法

    算法如上图

    [intense_hr type=”solid” size=”large” title=”实现的思路” title_tag=”h3″ title_background_color=”#ffffff” title_position=”left” icon_type=”pencil” icon_position=”left” icon_size=”1″ icon_color=”#1a8be2″ /]

    1. 选择出曲面的短的边界,并计算出边界的长度。
    2. 把计算得到的边界的长度输入到随机运算器中,得到一系列的随机数。
    3. 把随机数量输入到 Construct Point (点)中,会得到一系列的随机点。
    4. 最后用Iso Curve(结构线)算出随机的结构线。

    [intense_hr type=”solid” size=”large” title=”注意要点” title_tag=”h3″ title_background_color=”#ffffff” title_position=”left” icon_type=”pencil” icon_position=”left” icon_size=”1″ icon_color=”#1a8be2″ /]

    1. 被计算长度的边界一定要是短边,否则最后生成的结构线必然会超出曲面范围。
    2. 第二是注意边界线段的轴向和随机点排列的轴向一定要一致,否则也可能会出现上面的情况。
    3. 如果生成的结构还是超出曲面的范围,这个就属于不可避免的范围,暂时我也没有找到造成这种情况的原因,不过这种情况还是有应对方法的,方法就是把多出的线条删除掉。这个我在明天的文章再来讨论这个问题。

    随机结构线的效果

  • grasshopper水立方表皮建模算法

    grasshopper水立方表皮建模算法

    接着昨天发布的软包模型制作的教程,继续深化软包(水泡)的算法。,昨天那个软包的几个点我自己差点都看晕了,生成的那几个点很难看清楚之间什么关系,这次我改进了下这个软包的算法,再加上文字的标记,总算能看得清楚了。

    下图中不管是向量还是中轴线都必须用点来指定的,一定要搞清楚点的关系。相比至于昨天的算法,这次我把那些数据的拍平都在分组,这样的好处是他们的路径关系更加统一,这样利于数据之间的匹配。


    ​这个算法电池图:

    关键字:grasshopper 水立方表皮犀牛 voronoi

  • Grasshopper水泡表皮制作算法

    Grasshopper水泡表皮制作算法

    grasshopper软包(类似水立方表皮的效果)教程

    效果见下图这个


    方法:


    1. 创建闭合的平面曲线
    2. 寻找曲线图形的中心点
    3. 制作垂直于曲面的中轴线
    4. 绘制软包的截面曲线
    5. 截面曲线沿着中轴线旋转成型

    截面曲线


    截面曲线是用grasshopper的贝塞尔曲线运算器(BzSpan)生成的,这个运算器A和B两个端口输入曲线的两个端点,At和Bt两个端口输入相对应两个点的法线方向(点的指向方向),这里法线方向我用两点向量(Vector 2Pt)生成,注意At的方向要与中轴线垂直,而Bt的方向则要与平面曲线垂直。

    算法:


  • grasshopper寻找已知点投射到曲面的映射点(最近点)

    grasshopper寻找已知点投射到曲面的映射点(最近点)

    寻找映射点我上次写过这篇文章《grasshopper找到一个曲面上任意一个点并作这个点的法线方向》大家可以去看看这种寻找映射点的方法。

    所谓映射点其实就是点在曲面的投影点,看下图:

    投影点和原来的点的连线刚好与该曲面垂直,也就相当曲面这个点位的法线了。

    算法相当简单,我就不多说了。有几个运算器的位置稍微提一下。

    [intense_table bordered=”1″ columns=”运算器,位置,作用” data=”①Brep CP,Surface Analysis,找出投影点,P输出点。D输出两点之间的距离,②Vector 2Pt,Vector Vector,两点形成向量,③Vector Display,Vector Vector,在视图中显示向量的方向标示” /]

  • 如何在grasshopper中用布尔值删除对象

    如何在grasshopper中用布尔值删除对象

    如何在grasshopper中用布尔值删除对象?

    一般用Cull Pattern运算器删除对象,它的P端口输入布尔值列表,如上图输入三个布尔值,列表顺序是False True True。当输入值等于False时就删除数据,值等于True时就保留数据。

    布尔值也可以用数值来替代,非0的值当做布尔值输入时会自动转化为True, 等于0的值会转化为False。如下图

    image.png

  • grasshopper-MetaBall使用方法

    grasshopper-MetaBall使用方法

    [intense_hr type=”solid” size=”large” title=”MetaBall作用” title_tag=”h3″ title_background_color=”#ffffff” title_position=”left” icon_type=”android” icon_position=”left” icon_size=”1″ icon_color=”#1a8be2″ /]

    制作地形等高线、两个或两个以上的圆形平滑衔接而成的图案,类似下面这个图

    [intense_hr type=”solid” size=”large” title=”MetaBall使用方法” title_tag=”h3″ title_background_color=”#ffffff” title_position=”left” icon_type=”android” icon_position=”left” icon_size=”1″ icon_color=”#1a8be2″ /]

    运算器的位置在Mesh_Triangulation页面里

    P端口输入生成圆形曲线的圆心点。

    X端口输入”吸引“曲线的边缘的控制点。

    A端口输入最终生成的曲线的平滑度,取值在0 到1.0之间,值越小曲线月平滑

    [intense_image imageurl=”” /]

  • grasshopper让数据重复出现的方法

    grasshopper让数据重复出现的方法

    前段时间写的这篇文章分享了grasshopper绘制波动曲线的方法(详情点击这里《3dsmax模型贴图丢失应该怎么找回》),可能有些同学不怎么理解曲线函数的使用方法,今天呢再来一个更为简单的方法实现这种波动曲线,而且更加自由的控制的形态。

    今天说说的这个运算器叫“Repeat”。

    [intense_hr type=”solid” size=”large” title=”Repeat” title_tag=”h3″ title_background_color=”#ffffff” title_position=”left” icon_type=”android” icon_position=”left” icon_size=”1″ icon_color=”#1a8be2″ /]

    Repeat的作用是让数据重复出现,它的L端口指定重复数据的数量,比如输入是数据是1 -1这样的数据,那如果数量为3的话,那输出的数据组合便是1 -1 1。

    生成曲线实例

    [intense_image imageurl=”https://pic.yupoo.com/ycds_v/DG80wCjz/nTMjg.jpg” /]

     

  • grasshopper寻找曲面的任何一个点第二种方法

    grasshopper寻找曲面的任何一个点第二种方法

    昨天使用一个简单的方法可以找到曲面上的一个点《grasshopper找到一个曲面上任意一个点并作这个点的法线方向》,不过这个方法有个弊端就是不大容易控制点的位置。特别是寻找接近边缘的点,控制不好,找到的点就偏离原有曲面了。这次我换了另一种思路来来实现这个功能。

    [intense_hr type=”solid” size=”large” title=”原理” title_tag=”h3″ title_background_color=”#ffffff” title_position=”left” icon_type=”arrow-right” icon_position=”left” icon_size=”1″ icon_color=”#1a8be2″ /]

    找出曲面的边界(上图①编号运算器器),把边界定位到原点坐标上(上图③,至于②的作用是找定位点),再找到这条边界的任意一个点(④号运算器),⑤号运算器的作用是算出改点所对应曲面位置的“结构线(ISO Curve)”,输出的结构线有两条,那我们这里只要与之前那边界垂直的一条再算出这段曲线的任意一个点即可。

    [intense_hr type=”solid” size=”large” title=”本期出现的运算器” title_tag=”h3″ title_background_color=”#ffffff” title_position=”left” icon_type=”arrow-right” icon_position=”left” icon_size=”1″ icon_color=”#1a8be2″ /]

    ①Brep edge:抽离曲面的边界。

    ②End Points:输出线段的端点,有一个起点,另一个是终结点

    ③Orient:对齐平面,关于orient这里有一篇以前的写的文章《grasshopper运算器-点坐标定向(orient)

    ④Point On urve:寻找曲线上的点。《grasshopper寻找曲线的中点

    ⑤ISO Curve:抽离结构线

  • grasshopper找到一个曲面上任意一个点并作这个点的法线方向

    grasshopper找到一个曲面上任意一个点并作这个点的法线方向

    grasshopper找到一个曲面上任意一个点并作这个点的法线方向,如上图所示。

    [box] 注意,Evaluate Surface 这个运算器的uv输入端口输入的这个点(或多个点),它的点坐标不能超过输入曲面的展开uv坐标,否则生成的点和法线都偏离这个曲面。如下图:这个点不在平面坐标系的第一象限里边[/box]

    [intense_image imageurl=”https://pic.yupoo.com/ycds_v/DFlucdDK/bXv2j.jpg” /]

    [intense_hr title=”运算器的作用” title_tag=”h3″ title_background_color=”#ffffff” title_position=”left” icon_type=”angle-left” icon_position=”left” icon_size=”1″ icon_color=”#1a8be2″ /]

    找到点到曲面的位置后,一般可以用于绘制垂直曲面的曲线或者紧贴着曲面的图形,当然也能在垂直于曲面作各种变化,因为它的输出端口中F输出的是平行曲面的平面,上图红色的网格面就是生成的平面。

     

     

     

  • grasshopper输出波动的曲线点

    grasshopper输出波动的曲线点

    上一篇文章讲解了如何输出抛物线的曲线点,详情点击这里《如何在草蜢中输出曲线的点排列

    这次同样使用Gragh Mapper运算器输出正弦曲线点。

    正弦曲线的特点是按照某一周期就会数据重复出现,比如输出值如同0 1 0 1 0 1…..或10 -10 10 -10 10 -10…等等。

    我们把重复出现的数据输入到Point XYZ运算器的Y端口上,这样正弦曲线就在Y方向上震动,下图。

    [intense_image imageurl=”https://pic.yupoo.com/ycds_v/DEviU9nl/BtErk.jpg” /]

    文章顶部电池图解

    ①号–Cerise:系列数据运算器,输出等差数列,本例输出0,1,2,3,….9

    [intense_hr type=”dotted” size=”small” /]

    ②号–Gragh Mapper:曲线函数运算器,本实例使用的函数曲线是正弦函数,右键选择Sine曲线。输出的值是0和1的波动数值,当然也可以自己设定输出值。

    [box] 注意:Gragh Mapper的X值不用设定,因为它的前面输入的等差数列的公差为1.0,刚好等于曲线函数的1/4周期。[/box]

    [intense_hr type=”dotted” size=”small” /]

    ③号–Interpolate Curve:内插点曲线,连接已知各个点为曲线。