算法下载链接
如果不能下载,请评论区留言
grasshopper钢架结构算法,桁架结构算法
效果图


带完整的桁架结构

不带屋顶面桁架算法

算法下载链接
如果不能下载,请评论区留言
关键字:grasshopper算法,grasshopper教程,grasshopper钢架做法

如何在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筛选出几何体内的点并删除
绘制如下图的点阵列和全封闭的几何体。
封闭的几何体我用的曲线加Pipe运算器生成,再加上Cap holes运算器加上盖子封闭圆管。点的阵列用Populate生成随机排列的点。

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

删除后的效果

隐藏圆管的效果


grasshopper中点阵生成曲面的算法
这个算法用Surface From Points(点阵生成曲面运算器)来完成的。
运用这个算法要满足三个个条件
完成的曲面

点阵序号显示



grasshopper获取分组数据任何一个分支数据上的元素的方法。
如果我们想获取分组数据任何一个分支数据上的元素,一般有怎么几个方法:
被替换的数据点


用grasshopper制作的软包算法,用这个算法可以制作表皮曲面上鼓包的效果,比如水立方的表皮,沙发或者床背景等。
算法原理:
把曲面分割成多个小四边形面,再将四边形面划分等分点,选择曲面最中心的等分点(假设为点C),把中心等分点C沿着小四边形面的中心法线运动,运动后得到的点数据(假设为点Y)去替换原四边形面的中心等分点C,最终的点阵列重组(Surface FromPoints运算器)为一个曲面。
运算结果:


grasshopper按分组生成模型。
该算法也是比较实用的,通过这个算法可以把一个分组数据按照特定的分组分离出来,从而可以的针对各组进行变化,如下图,网格按照间隔的排列生成不同的形态,当然如果有必要的话也可以随机生成不同的模型。

算法解释:
首先有一串数据(网格点),默认生成的网格点是按一排为一组的数据构成的,这组数据输入“Param Viewer(数据观察运算器)”,Param Viewer可以查看数据的路径构成和所属路径下的Item(元素)数量,它输出的是路径数据。
把路径数据再输入“Dispath”里面,路径数据被Dispatch分流为两路数据(数据分流不单单用dispatch的,也可以用其他的代替)。分流后的数据导入Tree Branch中,Tree Branch 会根据导入的数据路径对原分组数据流(网格点)进行筛选,最终得到的就是按分组的数据流了,没有数据流分支都可以独立操作和修改。
关键字:grasshopper教程,grasshopper算法教程

有点空闲时间,折腾 出一个阶梯状的地形,而且阶梯呈Z型递增而上的。
[box] 难点:数据的重组,根据上图Dispatch是数据分流,把数据分成两组,图形上表现就是把面的阵列分层一排排的形状,Flip是翻转数据结构,把原先纵向的数据转化为横向数据;Reverse List 是翻转数据排列的顺序。[/box]
Flip是翻转数据结构的详细内容可以查看我很早之前写的文章《grasshopper自学笔记之三钢架表皮制作》
效果图
[intense_image imageurl=”http://ww1.sinaimg.cn/large/50da45f8gw1eefbmh2zsxj20hz0d3774.jpg” /]
电池图
[intense_image imageurl=”http://ww1.sinaimg.cn/large/50da45f8gw1eefblca0uuj21kw0fywhl.jpg” size=”medium” type=”caman” effect=”clarity” /]
如果有什么不明白可以在下面的评论栏留言,如果上线一般都会解答的

假设我们需要这样的一个数据组合
[code]有数据列表0,1,2,3………,58,59,要把这个数列分为每三个连续的数字为一个小组数据,既(0,1,2) ;(3,4,5 );………(57,58,59)[/code]
方法:先创建三个等差数列,公差都为2, 而等差数列的数据起始值不同,分别三个数列做分组处理,最后三个数列汇入合并数列运算器(merge)就可以了

怎么找到曲面上任何一个点以及它在曲面上的法线方向
要实现这个效果其实也很简单,只要使用到这个运算器就可以的(右图),不过我们必须先找到曲面上任何的一个点。直接在曲面找点不太现实,我这里使用到方法是利用“UV映射”的原理,只要找到UV面上的任何一个点,那在把这个点“映射”到曲面上。

Domain²这个运算器是输出曲面的UV值,输出的UV值连到矩形运算器中生成矩形,这个矩形用于限定点的取值区域。
