作者: LinkLi

  • Weave 数列混合

    Weave 数列混合

    运算器作用:

    该运算器用于按照自定义的模式将一组输入数据交织在一起。该模式由一系列整数索引值构成,这些索引值定义了采集各个输入数据的顺序。通过这种方式,你可以根据设计需求重新排列和混合多个数据流,形成全新的输出序列。
    你可以通过菜单中的 [Input Manager] 添加任意数量的输入流,以适应不同的应用需求。

    输入参数:

    P (Integer) 端口:

    整数:定义编织模式的索引值列表,该列表决定了输入流数据的采集顺序。通过指定不同的索引排列顺序,可以灵活地控制数据混合的方式。

    0 (Generic Data) 端口:

    输入流 0:代表第一个数据流。该流中的数据将按照编织模式参与交织过程。

    1 (Generic Data) 端口:

    输入流 1:代表第二个数据流。类似地,数据将根据编织模式与其他流交织在一起。

    (通过 [Input Manager] 可以添加更多输入流。)

    输出参数:

    W (Generic Data) 端口:

    编织结果:表示经过交织操作后输出的数据流。输出数据按预先定义的模式顺序,将各个输入流中的数据整合到一起,形成一个新的、经过重新排列的序列。

    应用范围:

    Weave 数列混合运算器在数据重组、序列操作和参数化设计等领域具有广泛应用。它能够灵活地将多个数据流按自定义模式混合,适用于数据可视化、图案生成以及复杂逻辑流程的构建。无论是在设计初期对数据进行预处理,还是在后续阶段实现动态数据变化,此运算器都能为设计师提供强大、可定制的数据操作支持。

    • 绘制三条曲线
    • 给曲线做等分点
    • 把等分点混合,做桁架结构的三角形结构
    • 把每条曲线的等分做奇偶数分流
    • 把两条曲线之间的奇偶数分流的数据做混合数据
    • 最后完成的结构线和点变成框架结构

    Pasted image 20250318114015

  • Remap Numbers 数值重映射

    Remap Numbers 数值重映射

    运算器作用:

    该运算器用于将数值重新映射到一个新的数值区间。通过此操作,可以将一个数值从原始区间转换到目标区间,常用于在不同尺度或范围之间进行数据转换。

    输入参数:

    V (Number)

    数值:表示需要重新映射的数值,即将从源区间转换到目标区间的具体数值。

    S (Domain)

    区间:定义源区间,即数值当前所在的数值范围。这个区间确定了数值的原始尺度。

    T (Domain)

    区间:定义目标区间,即希望数值映射到的新数值范围。通过将源区间的数值映射到目标区间,实现数值的重新定位。

    输出参数:

    R (Number)

    数值:表示经过重映射后的数值。该数值在目标区间内重新定义了其位置,反映了从源区间到目标区间的转换结果。

    C (Number)

    数值:表示经过重映射并裁剪后的数值。当输入数值超出源区间时,裁剪操作会将其限制在目标区间的极值范围内,确保输出数值不超出目标区间。

    应用范围:

    数值重映射在Grasshopper中广泛应用于参数化设计和数据处理场景。通过将数值从一个区间映射到另一个区间,设计师可以在不同尺度之间进行数据转换,确保设计元素在不同条件下的适应性和一致性。无论是在调整参数范围,还是在规范化数据输入,此运算器都能提供灵活、精确的数值转换支持。

    算法思路

    • 创建随机点
    • 计算随机点到吸引点的距离
    • 重映射随机点到吸引点的距离到合适的位置
    • 生成运行图像,观察是否合适
    • 使用袋鼠插件计算圆形之间的碰撞,避免模型的交叉
      Pasted image 20250317093850
  • Boolean Toggle 布尔值切换器

    Boolean Toggle 布尔值切换器

    运算器作用:

    布尔值切换器用于在 TrueFalse 之间切换布尔值。
    在Grasshopper中,布尔值可以用 TrueFalse表示,也可以用 10 表示。

    输入参数:

    Initial Value (Boolean):
    这是布尔值切换器的初始值。它可以是 TrueFalse
    初始值: 这是布尔值切换器的初始值。它可以是 TrueFalse

    输出参数:

    Toggled Value (Boolean):
    这是布尔值切换器的输出值。每次切换器被激活时,输出值将在 TrueFalse 之间切换。
    切换后的值: 这是布尔值切换器的输出值。每次切换器被激活时,输出值将在 TrueFalse 之间切换。

    应用范围:

    布尔值在 Grasshopper 中有多种用途,主要用于控制逻辑和条件判断。以下是几个常见的例子:

    控制几何体的显示

    通过布尔值切换器,可以控制某些几何体是否显示在视图中。例如,可以使用布尔值来切换某个对象的可见性。

    查看模型的状态

    比如检查曲线是否是闭合的,布尔值可以用于查看曲线的闭合状态。如果曲线是闭合的,则布尔值为 True;如果曲线不是闭合的,则布尔值为 False

    判断物体是否相交

    布尔值可以判断物体之间是否相交。例如,可以使用布尔值切换器来检查两个几何体是否相交。如果几何体相交,则布尔值为 True;如果几何体不相交,则布尔值为 False

    逻辑运算

    布尔值可以用于逻辑运算,例如与(AND)、或(OR)和非(NOT)运算。可以使用布尔值来组合多个条件,并根据组合结果执行特定操作。

    这些例子展示了布尔值在 Grasshopper 中的广泛应用,通过布尔值切换器,可以方便地控制和管理各种逻辑和条件判断。

    作为列表筛选器

    布尔值切换器可以作为列表筛选器使用。通过将布尔值切换器的输出值连接到列表组件的布尔值参数,可以根据布尔值的状态筛选列表中的元素。

    作为程序运行的开关

    比如袋鼠的程序,布尔值切换器可以作为程序运行的开关使用。通过将布尔值切换器的输出值连接到程序组件的布尔值参数,可以控制程序的运行状态。

  • Rotate Axis 沿轴旋转

    Rotate Axis 沿轴旋转

    运算器作用:

    该运算器用于将一个几何对象绕指定的轴线进行旋转。旋转角度以弧度为单位输入,从而确保数学上精确地计算旋转效果。

    输入端口

    G (Geometry)

    几何对象:表示需要进行旋转操作的基础几何体,可以为点、曲线、面或更复杂的形态。此几何体将围绕指定的轴线完成旋转。

    A (Number)

    数值:以弧度为单位的旋转角度。该数值决定了几何体绕轴旋转时转动的幅度和方向。在A端口的右键菜单勾选“Degree”后转化为角度输入。

    X (Line)

    直线:定义旋转轴,即几何体围绕其旋转的固定直线。该直线决定了旋转的中心位置和旋转方向。

    输出端口

    G (Geometry)

    几何对象:表示经过旋转操作后的几何体。该对象在空间中的位置和方向已根据输入的旋转角度和旋转轴进行了相应调整。

    X (Transform)

    变换数据:返回描述旋转过程的详细变换信息,通常以矩阵形式呈现。此数据记录了旋转操作的全部参数,为进一步的几何处理提供依据。

    应用范围:

    案例:调整乐高小人的四肢和头部的转动

    • 准备好一个乐高的小人模型,乐高小人必须是零部件组合的,不能是合并一体的。
    • 绘制乐高小人的肢体转轴,头部的、肩膀、手掌、大腿的转动中轴线。
    • 使用Rotate Axis 沿轴旋转给每个部位定义各自的转动轴。
    • 设置合理的转动角度。

    实际效果:

    Rotate Axis 沿轴旋转

    Rotate Axis 沿轴旋转

  • Origin 定位

    Origin 定位

    运算器作用:

    该组件用于对一个几何对象进行重新定向变换,其过程有时被称为“基变换”(ChangeBasis Transformation)。这一操作本质上是将一个物体从原始坐标系统映射到一个新的目标坐标系统,从而改变其方向和位置。通过这种变换,设计师能够精确控制对象在不同参考平面之间的对齐、旋转、平移乃至缩放等属性,满足复杂几何布局与空间组织的需求。

    输入端口:

    G (Geometry)

    几何对象:表示需要进行变换的基础几何体,可以是点、曲线、面或更复杂的几何形状。该参数决定了变换操作作用的具体对象。

    A (Plane)

    平面:指定原始的参考平面,即对象当前所在的坐标系统。这个平面定义了几何体的原始方向和定位,是变换操作的起点。

    B (Plane)

    平面:指定目标参考平面,即希望对象转换到的坐标系统。通过将原始平面A的坐标系映射到目标平面B,实现对象的重新定向和定位。

    输出端口:

    G (Geometry)

    几何对象:表示经过定向变换后的几何体。新生成的对象在目标平面B内重新定义了其位置、方向以及其他相关的几何属性,实现了从原始状态到目标状态的无缝过渡。

    X (Transform)

    变换数据:返回详细的变换信息,通常以矩阵形式呈现。该数据记录了从初始平面到目标平面之间所有变化的参数,包括旋转、平移以及可能的缩放,为进一步的分析和变换的重复应用提供依据。

    应用范围:

    案例:把圆筒分切成片,再把切片展平到平面上,最后一一摆放到格子内。

    Origin 定位

    • 用Isotrim运算器用结构线把曲面分成相等的部分。
    • 接着用Squish运算器把曲面展平,展平的曲面会在坐标原点的位置。(Squish需要额外安装插件)
    • 用Orient把原点上的展平面定位到正方形网格中心点的位置。

    Origin 定位

  • Dimensions 分解曲面UV

    Dimensions 分解曲面UV

    运算器作用:

    Dimensions这运算是用于展开曲面的UV数值。
    在 Rhino(犀牛)软件中,曲面的 UV 数值是用于描述曲面上点的位置的二维参数坐标系统,类似于平面上的笛卡尔坐标(x, y),但它是专门针对三维曲面上的点进行定位的。就像地球表面的经纬度一样,经纬度是用来确定地球上任意一点位置的坐标系统。UV 坐标对于曲面来说,起到了类似的作用,只不过它是在三维曲面这个 “特殊星球” 上使用的定位方式。

    输入参数:

    S (Surface) 端口:

    输入需要计算UV值的曲面,如果在这个端口上勾选Reparameterize参数,则会把输出的UV值重映射为0到1的区间值。

    输出参数:

    U (Number) 端口:

    输出U方向的值。

    V (Number) 端口:

    输出V方向的值。

    应用范围

    Surface Closest Point 运算器在曲面分析、几何优化、碰撞检测以及参数化设计中都有广泛应用。通过精确计算采样点与表面之间的最短距离,该工具帮助设计师评估曲面质量、检测异常形态,并实现复杂几何形体的精确控制。其输出的 坐标更是为后续的建模、纹理映射以及精细加工提供了关键的数据支持,从而提高了设计与制造流程的整体效率和精度。

  • Move 移动物体

    Move 移动物体

    运算器作用:

    Move 运算器的核心功能是将输入的几何对象沿着指定的向量方向进行平移,从而改变其在三维空间中的位置。这里的几何对象可以是点、线、面、体等各种 Rhino 支持的几何类型。

    输入端口:

    G端口:

    输入几何物体,在Grasshopper中几何物体包含:点、线、面、体块、网格曲面、细分曲面等物件类型。

    T端口:

    输入向量类型的数据,也可以输入直线的物体充当移动的方向。

    输出端口:

    G端口:

    输出几何物体,在Grasshopper中几何物体包含:点、线、面、体块、网格曲面、细分曲面等物件类型。

    X端口:

    输出物体移动的位移数据。输出的位移数据可以输入到其他的物体上,这样两个物体可以做相同的移动操作。

    应用范围:

    案例1:
    Move 移动物体

    案例2:T端口连接多个数值,可以当做复制物体使用,在Grasshopper中是没有纯粹意义的复制功能的,任何一个运算器接入多个数据,那就可以达到复制的目的。
    Move 移动物体

  • Bezier Span 贝塞尔曲线

    Bezier Span 贝塞尔曲线

    运算器作用:

    Grasshopper 的 Bezier Span 组件用于创建贝塞尔曲线(Bezier Curve)的一段,即由控制点定义的一条平滑曲线。它基于贝塞尔插值方法,通过给定的控制点来生成曲线,适用于自由曲线建模、造型控制等场景。

    输入参数:

    A端口:

    输入贝塞尔曲线的起点A。

    At端口:

    贝塞尔曲线的起点A的切线方向,切向方向的大小会影响贝塞尔曲线的造型。

    B端口:

    输入贝塞尔曲线的起点B。

    Bt端口:

    贝塞尔曲线的起点A的切线方向,切向方向的大小会影响贝塞尔曲线的造型。

    输出参数:

    C端口:

    输出贝塞尔曲线数据

    L端口:

    贝塞尔曲线的曲线长度

    D端口:

    输出贝塞尔曲线的区间值。区间值一般是0 to 1.0

    应用范围:

    案例1

    Pasted image 20250306164534

    案例2

    Pasted image 20250306164553

  • Dispatch 数据分流

    Dispatch 数据分流

    运算器作用:

    “Dispatch” 运算器的核心功能是依据输入的索引列表,将输入的数据列表进行分流。它可以把一个数据列表按照指定的规则分配到多个输出分支,从而实现对数据的分类和筛选。

    输入端口:

    L端口:

    用于接收需要进行分流处理的数据列表,列表中的元素可以是数字、点、曲线、向量等各种类型的数据。

    P端口:

    这个端口输入布尔值列表,布尔值通常为“Ture”和“False”,也可以用非0的数和0来替代,布尔值列表用作分流数据的依据,布尔值=Ture时,数据分流到A端口,布尔值=False时,数据分流到B端口。

    例如一个列表数据为:“00Apple 01Banana 02Cherry 03Date 04Elderberry 05Fig 06Grape 07Honeydew 08Kiwi 09Lemon”,当输入P端口的规则为“Ture False”时,输入的A端口数据为:“00Apple 02Cherry 04Elderberry 06Grape 08Kiwi”,输入的A端口数据为:“01Banana 03Date 05Fig 07Honeydew 09Lemon”

    输出端口

    A端口:

    用于接收布尔值=Ture时的数据。

    B端口:

    用于接收布尔值=False时的数据。

    应用范围:

    案例1:获取曲面
    List Item 列表筛选

    案例2:获取列表中的某一个数字
    List Item 列表筛选

  • List Item 列表筛选

    List Item 列表筛选

    运算器作用:

    从列表中提取单个元素是 “List Item” 组件最基础的功能。在 Grasshopper 里,许多数据都是以列表形式存在的,这些列表可能包含数字、点、向量、曲线等各种类型的数据。借助 “List Item” 组件,你能够依据索引值从列表里选取特定的元素。

    输入端口:

    L端口:

    输入数据列表,这个数据列表可以是任何数据类型,例如数值列表、点列表、曲线列表等等,几乎什么都能包含在内。

    i端口:

    输入要选择到的序号,序号类型为整数,列表的序号是从0开始计算起的。比如输入0则选择了列表第一项,输入8则选择了列表的第9项。

    W端口:

    是否包含列表的边界,这是个一个布尔值,默认值为“Ture”,这个表示列表是无限循环没有边界,如果输入的列表长度是10个数据,当i=16时,可以获取循环一周后的第6个数据。不想数据是无限循环的,可以把这个数据修改成“False”。

    输出端口

    i端口:

    输出数据列表,这个数据列表可以是任何数据类型,例如数值列表、点列表、曲线列表等等,几乎什么都能包含在内。

    应用范围:

    案例1:获取曲面
    List Item 列表筛选

    案例2:获取列表中的某一个数字
    List Item 列表筛选