分类: Grasshopper命令实战

Grasshopper命令实战的讲解,仔细讲解每一个命令

  • Brep Plane 计算物体和平面相交

    Brep Plane 计算物体和平面相交

    运算器作用:

    计算一个 Brep 和一个平面之间的相交事件(也称为截面)。该运算器可以生成截面曲线和截面点,用于分析几何体的截面特性。

    输入参数:

    B (Brep):
    基础 Brep:需要与平面进行相交计算的基础几何体。

    P (Plane):
    截面平面:用于与 Brep 相交的平面。

    输出参数:

    C (Curve):
    截面曲线:由 Brep 和平面相交生成的曲线。

    P (Point):
    截面点:由 Brep 和平面相交生成的点。

    应用范围:

    1. 建筑模型的截面分析
      输入:一个建筑模型的 Brep 和一个水平平面
      输出:建筑模型的水平截面曲线,用于分析楼层布局。

    2. 机械零件的加工路径
      输入:一个机械零件的 Brep 和一个垂直平面
      输出:零件的垂直截面曲线,用于生成加工路径。

    3. 复杂几何体的形状研究
      输入:一个复杂的自由曲面 Brep 和多个平行平面
      输出:一系列截面曲线,用于研究几何体的形状变化。

    通过该运算器,设计师和工程师可以高效地分析和操作几何体的截面特性,满足多种设计和工程需求。

  • Flip Curve 翻转曲线方向

    Flip Curve 翻转曲线方向

    运算器作用:

    该运算器用于通过可选的参考曲线翻转目标曲线的方向。如果目标曲线中超过 50% 的方向与参考曲线的方向相反,则目标曲线会被翻转,并将“翻转操作”设置为 True。如果未提供参考曲线,则目标曲线始终会被翻转。

    输入参数:

    C (Curve) 端口:

    曲线:需要翻转方向的目标曲线。

    G (Curve) 端口:

    参考曲线:可选的参考曲线,用于判断目标曲线是否需要翻转。

    输出参数:

    C (Curve) 端口:

    翻转曲线:经过翻转操作后生成的曲线。

    F (Boolean) 端口:

    翻转操作:指示是否执行了翻转操作的布尔值。

    应用范围:

    Flip Curve 运算器在几何建模和参数化设计中具有重要作用。通过翻转曲线方向,可以确保曲线的方向与设计需求一致,特别是在路径规划、曲线匹配和复杂几何形状的构建中。

  • Simplify Curve 简化曲线

    Simplify Curve 简化曲线

    运算器作用:

    该运算器用于简化一条曲线,使其更易于处理,同时尽可能保留其原始形状。通过减少曲线的控制点数量,可以优化计算性能或简化几何形态。

    输入参数:

    C (Curve) 端口:

    曲线:需要进行简化操作的目标曲线。该曲线定义了简化的基础形状。

    t (Number) 端口:

    偏差容差:可选参数,表示允许的最大几何偏差。如果未提供,将使用当前文档的默认容差值。

    a (Number) 端口:

    角度容差:可选参数,表示允许的最大角度偏差(以弧度为单位)。如果未提供,将使用当前文档的默认容差值。

    输出参数:

    C (Curve) 端口:

    简化曲线:表示经过简化操作后生成的曲线。如果输入曲线已经满足简化条件,则输出与输入相同。

    S (Boolean) 端口:

    是否修改:一个布尔值,表示曲线是否被修改。如果曲线被简化,则返回 True;否则返回 False

    应用范围:

    Simplify Curve 运算器在几何建模、数据优化和参数化设计中具有广泛应用。通过对曲线进行简化操作,可以减少控制点数量,优化曲线的复杂度,同时保留其几何特性。设计师可以利用该工具提高计算效率,简化几何形态,或清理导入的几何数据。

    注意事项:

    • 如果输入曲线已经是最简化状态,输出曲线将与输入曲线相同,且布尔值 SFalse
    • 容差值的选择需要根据具体应用场景进行权衡,过大的容差可能会导致几何失真。

    示例:

    假设有一条复杂的曲线 C,我们希望在偏差容差为 0.01 和角度容差为 0.1 的条件下对其进行简化:

    输入:

    • C: 一条复杂的曲线
    • t: 0.01
    • a: 0.1

    输出:

    • C: 简化后的曲线
    • S: True (曲线被简化)

    通过调整 ta 的值,可以控制简化的程度。

  • Offset Curve 偏移曲线

    Offset Curve 偏移曲线

    运算器作用:

    该运算器用于以指定的距离对曲线进行偏移操作。通过输入曲线、偏移距离、参考平面以及角点类型,可以生成偏移后的曲线。

    输入参数:

    C (Curve) 端口:

    曲线:需要进行偏移操作的目标曲线。该曲线定义了偏移的基础形状。

    D (Number) 端口:

    偏移距离:曲线偏移的距离。正值表示向外偏移,负值表示向内偏移。

    P (Plane) 端口:

    参考平面:用于定义偏移操作的平面。偏移操作将在该平面内进行,确保结果曲线与参考平面一致。

    C (Integer) 端口:

    角点类型:用于定义偏移曲线的角点处理方式。可能的值包括:

    • 0 (none): 不处理角点。
    • 1 (sharp): 保持角点为尖锐形状。
    • 2 (round): 将角点处理为圆角。
    • 3 (smooth): 将角点处理为平滑过渡。
    • 4 (chamfer): 将角点处理为斜角。

    输出参数:

    C (Curve) 端口:

    偏移曲线:表示经过偏移操作后生成的曲线。该曲线根据输入参数的设置生成,可能包含平滑或尖锐的角点。

    应用范围:

    Offset Curve 运算器在几何建模、路径规划和参数化设计中具有广泛应用。通过对曲线进行偏移操作,可以生成平行曲线、调整曲线形状或创建复杂的几何图案。设计师可以利用该工具灵活控制偏移距离和角点处理方式,从而满足不同的设计需求。

  • Evaluate Curve 分析曲线

    Evaluate Curve 分析曲线

    运算器作用:

    该运算器用于在指定参数处对曲线进行分析。通过输入曲线和参数值,可以计算出曲线上对应点的坐标、切向量以及曲线在该点的内外角度。

    输入参数:

    C (Curve) 端口:

    曲线:需要进行分析的目标曲线。该曲线定义了参数化范围,运算器将在该范围内进行计算。

    t (Number) 端口:

    参数值:曲线域内的参数值,用于指定曲线上的位置。通过调整参数值,可以在曲线上选择不同的点进行分析。如果勾选Reparameterize选项,则曲线的长度参数会重映射为1,即参数值范围为0到1。

    输出参数:

    P (Point) 端口:

    曲线点:曲线在指定参数值处的点坐标。该点表示曲线在参数值 t 对应位置的空间位置。

    T (Vector) 端口:

    切向量:曲线在指定参数值处的切向量。切向量表示曲线在该点的方向性,常用于计算运动方向或曲线的局部特性。

    A (Number) 端口:

    角度:曲线在指定参数值处的内外角度(以弧度为单位)。该角度表示曲线在该点的进入方向与离开方向之间的夹角,常用于分析曲线的平滑性或转折特性。
    该值等于0表示曲线在该点的进入方向与离开方向相同,如果不为0,则表示曲线在该点有转折。

    应用范围:

    Evaluate Curve 运算器在曲线分析、几何建模和参数化设计中具有广泛应用。通过在曲线上指定参数值,该工具可以精确定位曲线上的点,并提供切向量和角度信息。这些数据对于路径规划、运动分析以及曲线优化设计至关重要。设计师可以利用这些信息评估曲线的局部特性,从而实现更精确的几何控制和设计优化。

  • 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 定位