我们如何在grasshopper中快速的抽离曲面的结构线,这个小算法非常的简单也非常实用,大家可以看下面动图的演示。
这里要注意的是一定要把曲面重新自定义参数(对曲面点击右键选择Reparameterize参数),因为把曲面重新定义参数之后会把面阈值从映射为0到1之间,这样我们就可以通过下面的滑杆来调整了。
本人在多年以前还写过随机获取结构线的文章,现在看来这个算法有点过时了,有空的话要吧那个文章重新“翻新”一下。
[content_hide]

[/content_hide]
我们如何在grasshopper中快速的抽离曲面的结构线,这个小算法非常的简单也非常实用,大家可以看下面动图的演示。
这里要注意的是一定要把曲面重新自定义参数(对曲面点击右键选择Reparameterize参数),因为把曲面重新定义参数之后会把面阈值从映射为0到1之间,这样我们就可以通过下面的滑杆来调整了。
本人在多年以前还写过随机获取结构线的文章,现在看来这个算法有点过时了,有空的话要吧那个文章重新“翻新”一下。
[content_hide]

[/content_hide]

大家好,我是Link今天给大家带来一个小算法,这个算法在我们平时做设计的时候或许能够用上,这个grasshopper的算法的使用场景可能是这样子的:
我们这里一个线的集合,里面包含了很多线段,而我们要对当中的某几个线条进行操作,那我们要把这些线的编号找出来。
如下图所示,我们要找到线条是0356这4条线,当然我们现在还不知道他们的编号,但是通过以下的算法我们可以很轻易的知道他们的编号,这样就方便我们以后对这些曲线的编辑了

好的我们现在来看看这个grasshopper算法是怎么实现的
首先我们要选择我们要操作的曲线,我们现在是做简单的演示所以就用犀牛直接选择了,但如果我们在做设计的时候需要选择大量的曲线的时候可以用算法去实现。

依照上图的grasshopper的算法,大体的思路是这样子的
\1. 首先选择所有的曲线,计算出所有曲线的中点,分解中点的坐标值,然后把所有的坐标值进行累加,那么我们会得到一个中点坐标累加值。
\2. 第2个要选择我们要操作的曲线,比如0356号曲线,我们对曲线也进行上一步的操作,同样也获得了中心点的累加值。
\3. 然后把两串中心点的累加值进行比较,我们就可以获得第二步选择的曲线的中心点的序号。
\4. 这个需要也相应对应了原曲线的列表序列号
下面的动图操作应该是很简单的,不知道大家学会了吗,如果有什么不懂的话可以在下面的评论区留言。

这个算用到方法的和上一篇文章类似,大家可以通过这里查阅上一篇文章的内容

今天我们来学习Grasshopper的系列教程,我们今天要学习的是关于弧线的绘制,弧形的绘制内容并不多,而且大都比较简单,那我们开始今天的草蜢课程吧

Arc:弧形
一个标准的中心点画圆弧的运算器,已知中心点输入半径和输入弧形的角度,我们就完成弧形的绘制,这里要注意的是最后一个参数是弧形的角度,它默认的是弧度,而我们的操作习惯般都是角度,这里要把弧度转角度,我们接一个radia的运算器,就可以了。

Arc 3Pt:三点画圆弧
这个运算器也是操作简单,只要输入abc三个点就可以画出圆弧了,右边的输出端口分别是:
· 输出弧线
· 输出弧线的中心点
· 输出弧线的半径

Arc sed:切线弧线
这是已知弧线的起点,弧线的终点和起点的切线方向来绘制弧线的,它右边的输出端口分别是:
· 输出弧线
· 输出弧线的中心点
· 输出弧线的半径

BiArc:已知两个切线点的弧线
这个运算器稍微复杂一些,S和e端口分别是这段弧线的开始点和末点,两个t端口分别是开始点和末点的切线方向,最终输出的a1和a2端口是两段标准圆弧,B端口是两段圆弧的衔接点

Modified arc:修改圆弧
输入一段圆弧,我们可以修改这个圆弧的半径或者角度

Tangent Arcs:相切圆弧
已知两个圆形和半径,然后输出圆弧

[stag_sidebar id="gh-article"]
[elementor-template id=”7418″]

今天我们来学习Grasshopper的系列教程,我们今天要学习的内容是关于圆形的创建,圆形的创建也是有多种多样的方法的,我们最常用的是中心点圆创建,稍微复杂一点的我们可以用切线来创建,圆形在建筑设计里面也是一个非常常用的设计元素,好了,那我们来开始今天的课程吧。

Circle:圆形
这个运算器是最常用的圆形创建的运算器,只要输入圆形的中心点和圆形的半径,我们就可以创建一个圆。

Circle 3Pt:三点创建圆形
这个运算器的操作也非常简单,只要输入圆形的abc三个点,就可以创建一个圆形了,他输出的三个端口分别是圆形的曲线,圆形的中心点和圆形的半径。

Circle CNR:使用法线方向来创建圆形
这个比普通的圆形多了一个法线方向,那方向方向有什么用啊?
有了这个法线方向的话,我们就可以做出任意方向的圆形,而不局限于水平面上的圆形

Circle fit:多个点拟合成一个圆形
这个运算器的成型方式和直线的成型方式是一样的,只要输入多个点就可以生成一个圆形,它右边的输出端口输出的是圆形的曲线,圆形的半径,最后一个参数是距离圆形最近的点的值。

Circle TanTan:两个圆的相切圆。
已知ab两个圆,要求的那个圆的圆心,最后生成一个新的圆

Circle TanTanTan:三个圆的相切圆
和上一个运算器是一样的,只不过是多了一个圆,下图中p点是不一定要有的,就算没有批准也可以生成圆形

Ellipse:椭圆
输入椭圆的中心点和椭圆的两个半轴,它的输出端是椭圆曲线和椭圆的两个焦点。

InCircle:三角形的内切圆
输入abc三个点组成的三角形,最终在三角形内生成圆,它右边的输出端口分别输出圆的曲线,圆的中心点和圆的半径。

InEllipse:三角形的内切椭圆
方法和原理跟上,一个运算器是一样的,只不过对象换成了椭圆

[elementor-template id=”7418″]

今天我们来学习Grasshopper的系列教程,我们今天学习的是关于直线的绘制,我们在下面的学习中,可以学习到多种生成直线的方式
实现也是我们做参数化设计里的一个大的分支,建筑的很多造型还是由很多直线构成的,我们通通过构建直线也可以构建复杂的曲面,所以各位同学一定要好好掌握直线是怎么创建的,好了,那我们来开始今天的课程吧。
嗯嗯,

Fit Line:多个点拟合成直线
会一堆杂乱无章的点生成一条直线,这个运算器没有任何参数,只要输入点就可以了

点拟合成直线,请看下图

Line:2点生成直线
这个也是一个非常常用的运算器,只要输入ab两个点就可以了,非常简单。

Line 2Plane:被两个平面截断的直线
使用这个运算器必须先准备一条直线,然后两个截断这条直线的平面,那么就可以得到两个平面之间的直线段了。

在下图中我们看到两个红点就是两个平面,两个红点的下方有一段绿色的线段,那个就是被截断之后的直线段,

Line 4pt:利用4个点生成直线
这个运算器,其实并不用输入4个点,而是准备一条直线,和这条直线上的一个点,加上直线外的任意点,那么我们就能得到一条线段了。

上面解释啊,可能有点复杂,但是我们结合下图的效果来看,我们会发现线外的点和线上的点还有直线,他们其实是组合成了一个直角三角形,而得到的线段就是在这条直线上的一个直线边。
这样下图的绿色线段。

Line SDL:Sdl直线
Sdl直线就是已知起始点,线的方向还有线的长度构成的一个直线段,算法比较简单,大家看下图的算法就可以了。

Tangent lines:切线直线
这个运算器用于计算圆外面的点到圆上面的两个切线段,T1和t2端口分别输出两个直线段

效果请看下图

我们使用这个算法扩充一下,请看下图的算法。
在下图开始阶段,我们绘制了一个椭圆曲线,然后把这个椭圆曲线进行30等份,然后把等份点输入到这个运算器里面去,我们就会得到一个交错的网架图

网架图的效果请看下图

Tangent Lines (Ex):两个圆之间的切线段
这个运算器是上一个的增强版,需要用到两个圆


Tangent Lines(In):两个圆之间的切线段
这个产生的切线段是交错的,原理和上一个运算器基本上是一样的

效果图请看下图

[elementor-template id=”7418″]
今天我们来学习Grasshopper的系列教程,我们今天学习的是关于直线的绘制,我们在下面的学习中,可以学习到多种生成直线的方式
实现也是我们做参数化设计里的一个大的分支,建筑的很多造型还是由很多直线构成的,我们通通过构建直线也可以构建复杂的曲面,所以各位同学一定要好好掌握直线是怎么创建的,好了,那我们来开始今天的课程吧。
嗯嗯,

Fit Line:多个点拟合成直线
会一堆杂乱无章的点生成一条直线,这个运算器没有任何参数,只要输入点就可以了

点拟合成直线,请看下图

Line:2点生成直线
这个也是一个非常常用的运算器,只要输入ab两个点就可以了,非常简单。

Line 2Plane:被两个平面截断的直线
使用这个运算器必须先准备一条直线,然后两个截断这条直线的平面,那么就可以得到两个平面之间的直线段了。

在下图中我们看到两个红点就是两个平面,两个红点的下方有一段绿色的线段,那个就是被截断之后的直线段,

Line 4pt:利用4个点生成直线
这个运算器,其实并不用输入4个点,而是准备一条直线,和这条直线上的一个点,加上直线外的任意点,那么我们就能得到一条线段了。

上面解释啊,可能有点复杂,但是我们结合下图的效果来看,我们会发现线外的点和线上的点还有直线,他们其实是组合成了一个直角三角形,而得到的线段就是在这条直线上的一个直线边。
这样下图的绿色线段。

Line SDL:Sdl直线
Sdl直线就是已知起始点,线的方向还有线的长度构成的一个直线段,算法比较简单,大家看下图的算法就可以了。

Tangent lines:切线直线
这个运算器用于计算圆外面的点到圆上面的两个切线段,T1和t2端口分别输出两个直线段

效果请看下图

我们使用这个算法扩充一下,请看下图的算法。
在下图开始阶段,我们绘制了一个椭圆曲线,然后把这个椭圆曲线进行30等份,然后把等份点输入到这个运算器里面去,我们就会得到一个交错的网架图

网架图的效果请看下图

Tangent Lines (Ex):两个圆之间的切线段
这个运算器是上一个的增强版,需要用到两个圆


Tangent Lines(In):两个圆之间的切线段
这个产生的切线段是交错的,原理和上一个运算器基本上是一样的

效果图请看下图

[elementor-template id=”7418″]

今天我们继续Grasshopper的系列教程,今天的教程呢,是关于曲线的划分的,曲线划分在我们做参数化设计的时候,是一个经常用的一个方法,我们为了在曲线上做一些更多的变化,那我们经常会把曲线做一些均等的划分或者不均等的划分,那么以下的这些运算器就非常非常的重要了,好了,那我们来开始今天的学习吧。
备注,:下图的截图中的曲线都被称为【被等分的曲线】,其实这个说法有点问题,应该称之为【被划分的曲线】,由此更正一下。

Contour:
在曲线上做等高线的等分

Contour (ex)r:
在曲线上做等高线的等分,这个运算器和上一个的区别就在于它等分的工具的是用平面的,而且这个平面是和这个曲线是垂直关系,我们在下图中可以看到这个平面是xz平面,曲线所在的平面是xy平面。
在下图中我们还看到O端口还要输入等高线的高差,等高线的高差值我们一般用系列运算器,当然我们如果要做出不等高的分割点呢,我们也可以随机输入一些值。

Dash Patternr:拆分曲线
这个运算器的用法一般就用于把曲线拆分成虚线,这个我们在做建筑外墙玻璃要做出间隔的效果时候还是非常好用的
而且它的参数也非常简单,只要在pt端口输入间隔值就可以了

下图我们看到等分之后的效果

Divide Curve:等分曲线,
这个运算器就是最普通的等分曲线,那是我们非常常用的一个运算器之一,N的端口只要输入等份的数量就可以了。

Divide distancer:按曲线上点的距离等分
这个运算器就是在曲线上布上一些点,然后按这个点的距离来等分曲线,当然这些点不用我们自己去指定,而是通过距离参数指定就行了,所以我们在D端口输入2,然后就被输出等分的点了,

Divide lenght:按长度来等分曲线
这个运算器和上一个有点不同,上一个呢是两个点之间的距离来等分的,这个呢,是按曲线的长度来等分的,那这究竟有什么区别呢?
我们可以想象一下,如果一条曲线它九曲十八弯,曲线上两个点的距离,如果是相等的,那经历的曲线的长度也有可能不等,那你说我们是用两个点之间的距离来指来等分长度了,还是说按照长度来等分长度,这个就是我们根据项目来选择方法的问题了。

Shatter:拆分曲线
上面的一系列等分曲线的方法都是在曲线的基础上生成点,但是并没有真正的把曲线拆分,那这个命令刚好就是可以真正的把曲线断开的一个运算器,用它输出后的曲线的都是一节一节的。
首先我们把曲线的区间先计算出来,然后把区间进行划分,最后输入t端口的就可以了,划分的运算器,我们一般用Range,

[elementor-template id=”7418″]

今天我们继续Grasshopper的系列教程,今天的教程呢,是关于曲线的划分的,曲线划分在我们做参数化设计的时候,是一个经常用的一个方法,我们为了在曲线上做一些更多的变化,那我们经常会把曲线做一些均等的划分或者不均等的划分,那么以下的这些运算器就非常非常的重要了,好了,那我们来开始今天的学习吧。
备注,:下图的截图中的曲线都被称为【被等分的曲线】,其实这个说法有点问题,应该称之为【被划分的曲线】,由此更正一下。

Contour:
在曲线上做等高线的等分

Contour (ex)r:
在曲线上做等高线的等分,这个运算器和上一个的区别就在于它等分的工具的是用平面的,而且这个平面是和这个曲线是垂直关系,我们在下图中可以看到这个平面是xz平面,曲线所在的平面是xy平面。
在下图中我们还看到O端口还要输入等高线的高差,等高线的高差值我们一般用系列运算器,当然我们如果要做出不等高的分割点呢,我们也可以随机输入一些值。

Dash Patternr:拆分曲线
这个运算器的用法一般就用于把曲线拆分成虚线,这个我们在做建筑外墙玻璃要做出间隔的效果时候还是非常好用的
而且它的参数也非常简单,只要在pt端口输入间隔值就可以了

下图我们看到等分之后的效果

Divide Curve:等分曲线,
这个运算器就是最普通的等分曲线,那是我们非常常用的一个运算器之一,N的端口只要输入等份的数量就可以了。

Divide distancer:按曲线上点的距离等分
这个运算器就是在曲线上布上一些点,然后按这个点的距离来等分曲线,当然这些点不用我们自己去指定,而是通过距离参数指定就行了,所以我们在D端口输入2,然后就被输出等分的点了,

Divide lenght:按长度来等分曲线
这个运算器和上一个有点不同,上一个呢是两个点之间的距离来等分的,这个呢,是按曲线的长度来等分的,那这究竟有什么区别呢?
我们可以想象一下,如果一条曲线它九曲十八弯,曲线上两个点的距离,如果是相等的,那经历的曲线的长度也有可能不等,那你说我们是用两个点之间的距离来指来等分长度了,还是说按照长度来等分长度,这个就是我们根据项目来选择方法的问题了。

Shatter:拆分曲线
上面的一系列等分曲线的方法都是在曲线的基础上生成点,但是并没有真正的把曲线拆分,那这个命令刚好就是可以真正的把曲线断开的一个运算器,用它输出后的曲线的都是一节一节的。
首先我们把曲线的区间先计算出来,然后把区间进行划分,最后输入t端口的就可以了,划分的运算器,我们一般用Range,

[elementor-template id=”7418″]

我们这节课来讲grasshopper,曲线的长度和曲线的区间的应用。
曲线的长度和取向区间的在我们做参数化设计的时候是非常必要的。因为我们在做设计的时候呢,经常要计算出一条曲线的长度。哼!之后呢,再给曲线长度做一些参数上的变化。
本节课的重点呢就是介绍曲线的长度和区间分别是怎么获取的。

Curye domain:曲线的区间
这个运算器就是计算曲线的区间。
曲线的区间一般是从零开始计算起的。
但是大家这里要注意的是曲线的区间不等于曲线的长度。
区间是指曲线在某一个数值范围内,它是一个范围值,而不是一个长度值。
所以大家在使用草蜢做计算的时候,要注意一下这个参数的意义。

Evaluate Length:评估曲线上某一点的位置点。
所谓评估取向上某一个位置点呢,就是说:给曲线定义一个值。这个值,但必须是在零到一之间的任意数值。那么这个运算器就会输出这个数值在曲线上的位置点。
就如下图所示,我们看到L端口输入我是0.54这个数字,右边的P端口会输出一个点,那么这个点会在平面图上我们是可以看到的。

Length:计算并输出曲线的长度。
这个就是真正的输出曲线的长度了。
这个应该没什么好说的。
我们平时在做参数化设计的时候都会用到的。

Length Domain:计算并输出曲线的区间。
这个电池呢,可以在D端口输入一个区间。那么在L端口呢就输出这个区间的长度。
这里要注意哦!右边的端口输出还是长度不是区间。

Length Parameter:在曲线中指定一个点,并计算出这个点两侧的曲线段的长度。
这个电池的作用是在P端口输入一个区间值。然后右侧的端口呢,它是输出这个区间值两侧的曲线的长度。
所以大家要注意这个运算器使用的时候啊!左边是输入区间值,右边输出是长度值。
我们也可以理解为这个运算器就是用于区间值和长度之间的转换。
那我们在实际应用中呢,就是用于截断曲线的
就如下面的图片中我们可以看到,假如我们这条曲线是1000的区间,我们给他输入一个493的值,那么就可以得到493前面那一段曲线的长度和493后面那一段的长度了。

Segment lengths:计算并输出指定区间段的曲线的长度。
这个电池的作用其实就是输出区间值和长度值。

[elementor-template id=”7418″]


这里一大类的运算器的功能都是在计算曲线上的点,
输出的数据大都是点、平面这类数据
Curvature: 计算曲线在指定点的曲率参数。
Curve frame:获取曲线在指定点的曲率框架(平面)
Derivatives:计算曲线在指定点的导数
Evaluate Curve:获取沿曲线水平对齐的框架
Horizontal frame: 求解垂直(零扭曲)框架
Perp Frame:求和曲线方向垂直的平面
Point on curve:找到曲线上的一个点
Torsion:找到曲线上的一个点


我们今天接着学习Grasshopper的分析曲线的相关运算器,这部分大致功能就是用于判断曲线的和其他类型的相互位置关系的。比如点到曲线的距离,判断曲线是否闭合,判断几个物体到曲线的最近距离,计算两条曲线的最近点等等。
这些功能为我们后续做参数化设计提供很多判断的依据。

Closed:判断曲线是否闭合
在下周中我们看到两条曲线,一条是闭合的,一个是不闭合的。

把曲线输入到这个运算器中,false表示曲线是不闭合的,有开口的。ture表示曲线是闭合的,周期性的。

Curve Closest Point:计算点到线的距离或计算点到线的投影点。
在下图当中我们可以看到一个点和一条线。

通过这个运算器之后。
P端口输出点到线的投影点。
T端口输出点在线的位置值。
D端口输出点到线的距离。
这个运算器是我们在grasshopper中常常用于做曲线干扰的运算。
曲线干扰的原理其实就是计算多个点到曲线的距离,通过距离的变化形成各种有趣的纹理。

Curve Proximity: 计算两条线之间的最近点。
在下图中我们看到两条曲线。

中国计算最经典的运算器以后我们可以得到最近点a和b。
D端口说出a点和b点的距离。

Discontinuity:计算并输出曲线中不连续的点。
在下图中我们看到一条多段线。它有两个端点和三个转折点。

多段线经过这个运算器之后会输出5个不连续点。
T端口输出点在线的位置值。

Planar:判断曲线是否是平面曲线
下图中我们绘制了一个矩形。

我们知道矩形它是一个平面图形,所以在p端口它输出ture。
如果是空间曲线,P端口输出的是false

Curvature Graph: 曲线的梳子图。
通过梳子图判断曲线的顺滑程度。

D端口输入梳子图的段数
S端口输入梳子图的大小

Curve Nearest Object:计算并判断距离曲线最近的物体。
在下图中我们准备了一条曲线和两个位置不同的点。

经过下图运算器计算之后,我们可以得到a点是距离曲线最近的点。

Curve Side: 判断物体是在曲线的左边还是右边
在下图中我们准备了一条曲线,在曲线的下面绘制了一个点。

经过这个运算器计算之后,我们判断到这个点是在曲线的右边。

Extremes:计算出曲线的最高点和最低点。
在下图中我们准备了一条平面的曲线和曲线所在平面垂直的平面(就是下图中的那个点)。

经过运算器计算之后,我们得到曲线的最高点和最低点。

[elementor-template id=”7418″]