杰瑞科技汇

Grasshopper教程如何入门?参数化设计怎么学?

Grasshopper 参数化设计完全指南 (从入门到精通)

Grasshopper 是一款嵌入在 Rhinoceros (犀牛) 3D 建模软件中的可视化编程环境,它让你通过创建图形化算法(而不是手动建模)来生成和控制复杂的几何形态,它被誉为“数字设计的瑞士军刀”,广泛应用于建筑设计、工业设计、珠宝设计、数据分析等领域。

Grasshopper教程如何入门?参数化设计怎么学?-图1
(图片来源网络,侵删)

第一部分:核心概念与基础入门

在开始之前,你需要理解几个核心思想。

什么是 Grasshopper?

想象一下,你不是在用鼠标“画”一个东西,而是在“定义”这个东西是如何被“制造”出来的,你给它一堆指令(组件),然后将这些指令连接起来,形成一个流程图,这个流程图就是你的“算法”。

Grasshopper 的核心元素

  • 组件: 这是算法的基本构建块,每个组件都像一个功能或一个指令,一个 Panel (面板) 用于输入文字或数字,一个 Line (线) 用于画一条线,一个 Move (移动) 用于移动物体。
  • 参数/连线: 这是组件之间的“电线”,数据从一个组件的输出端口 流出,通过连线流入另一个组件的输入端口,数据沿着这条线传递,驱动整个算法的运行。
  • 端口: 每个组件都有输入 和输出 端口,输入端口接收数据,输出端口发送处理后的数据。
  • 画布: 你放置、连接和组织组件的空白区域。
  • 预览: Grasshopper 的实时渲染窗口,它显示你的算法在三维空间中生成的几何体。

第二部分:界面导航

熟悉 Grasshopper 的界面是第一步。

  1. 启动: 在 Rhino 中,输入 Grasshopper 并回车,会弹出一个独立的窗口。
  2. 组件面板: 左侧是所有可用组件的分类库,你可以在这里找到所有功能。
  3. 参数/历史记录: 右侧是你的“定义”区域,所有组件都在这里,顶部有一个小小的时钟图标,这是“历史记录”按钮,点击它可以查看每一步的变化,对于调试至关重要。
  4. 工具栏: 顶部工具栏有标准功能,如新建、打开、保存、撤销、重做等,还有一个重要的“Preview”按钮,可以开关三维预览窗口。
  5. 视图窗口: 这是 Rhino 主窗口,显示你的最终模型,当你移动 Grasshopper 中的滑块或修改参数时,这里的模型会实时更新。

第三部分:你的第一个算法:从“画一条线”开始

让我们通过一个简单的例子来感受 Grasshopper 的工作流程。

Grasshopper教程如何入门?参数化设计怎么学?-图2
(图片来源网络,侵删)

目标: 创建一条可以动态调整起点和终点的线。

步骤 1: 创建起点和终点

  • 在左侧的 Params (参数) 面板中,找到 Geometry (几何体) -> Point (点),双击它,将其拖到画布上。
  • 再拖一个 Point 组件到画布上。
  • 你有两个代表“点”的参数,但它们还没有具体的位置,我们需要给它们定义坐标。

步骤 2: 定义坐标

  • 在左侧的 Params (参数) 面板中,找到 Input (输入) -> Number (数字),双击,拖出两个 Number Slider (数字滑块)
  • 将第一个滑块连接到第一个 Point 组件的 X 输入端口。
  • 再拖出两个 Number Slider,分别连接到第一个 Point 组件的 YZ 输入端口,第一个 Point 的位置由这三个滑块控制了。
  • 对第二个 Point 组件重复上述操作,给它连接另外三个滑块。

步骤 3: 创建线

Grasshopper教程如何入门?参数化设计怎么学?-图3
(图片来源网络,侵删)
  • 在左侧的 Math (数学) 面板中,找到 Vector (向量) -> Vector XYZ (XYZ 向量),这个组件可以创建一个基于坐标的向量。
  • 将第一个 Point 组件连接到 Vector XYZ 组件的 Origin (原点) 输入端口。
  • 将第二个 Point 组件连接到 Vector XYZ 组件的 XYZ (坐标) 输入端口,这个组件现在计算出了从第一个点到第二个点的向量。
  • 在左侧的 Curve (曲线) 面板中,找到 Primitive (基本曲线) -> Line (直线)
  • Vector XYZ 组件的 Result (结果) 输出端口连接到 Line 组件的 Start (起点) 输入端口。
  • 再将 Vector XYZ 组件的 Vector (向量) 输出端口连接到 Line 组件的 Direction (方向) 输入端口。
  • Vector XYZ 组件的 Magnitude (长度) 输出端口连接到 Line 组件的 Length (长度) 输入端口。

步骤 4: 查看结果

  • 你的画布上应该有一条线,点击 Rhino 窗口,你应该能看到这条线。
  • 恭喜! 你刚刚创建了一个算法,试着拖动任意一个数字滑块,你会发现 Rhino 中的线会实时改变!这就是参数化设计的核心魅力。

第四部分:核心数据类型

Grasshopper 中的数据是有类型的,连接错误时会变成橙色或红色。

  • Numbers (数字): 整数、浮点数,用于尺寸、角度、数量等。
  • Points (点): 三维空间中的坐标。
  • Vectors (向量): 有方向和大小的量,常用于移动、旋转。
  • Curves (曲线): 直线、圆弧、样条线等。
  • Surfaces (曲面): NURBS 曲面、平面等。
  • Breps/Brep Solids (实体): 完整的三维实体。
  • Lists (列表): 一组相同类型的数据,多个点组成的列表。
  • Trees (数据树): 更复杂的列表结构,可以处理层级数据,非常重要。

第五部分:学习路径与进阶

几何操作 (基础建模)

这是掌握 Grasshopper 的第一步,目标是能用它完成 Rhino 中大部分的建模工作。

  • 关键组件:

    • Panel (面板): 用于输入文本、记录笔记、查看数据。
    • Number Slider (数字滑块): 最常用的交互控件。
    • Point (点): 几何的基石。
    • Line (直线), Circle (圆), Rectangle (矩形): 基本几何体。
    • Vector (向量): Unit Vector (单位向量), Vector Display (向量显示)。
    • Transform (变换): Move (移动), Rotate (旋转), Scale (缩放), Orient (定向)。
    • Curve (曲线): Polyline (多段线), Interpolate (插值曲线), Divide Curve (分割曲线), Curve Parameter (曲线参数)。
    • Surface (曲面): Plane (平面), Extrude (挤出), Loft (放样), Boundary Surfaces (边界曲面)。
    • List (列表): List Item (列表项), Cull Pattern (筛选模式), Reverse (反转), Shift List (偏移列表)。
  • 练习建议:

    1. 参数化楼梯:Divide Curve 在一条线上等分,然后用 LineExtrude 生成台阶。
    2. 参数化栏杆: 在一条路径上生成一系列间距和大小可变的栏杆。
    3. 参数化表皮:Grid (网格) 组件生成点阵,然后用 Pipe (管道) 组件包裹成管状表皮。

数据结构与逻辑 (算法思维)

这是从“会用”到“精通”的飞跃,理解如何处理和组织数据是解决复杂问题的关键。

  • 关键组件:

    • Panel + Panel (查看数据结构): 将组件的输出连接到一个 Panel,右键点击面板,选择 "Tree" 模式,可以清晰地看到数据树的结构。
    • Graft (嫁接): 将列表中的每个元素都变成一个独立的子列表,一个包含3个点的列表,经过 Graft 后,会变成3个子列表,每个子列表包含1个点。
    • Flatten (扁平化): 将数据树的所有层级压平,变成一个单一的列表。
    • Simplify (简化): 移除数据树中空的分支。
    • Path Mapper (路径映射): 最强大的数据树操作工具,可以自定义修改数据树的结构。
    • Dispatch (分发): 根据一个布尔值列表 (True/False),将输入列表中的元素分成两个组。
    • Cull Pattern (筛选模式): 根据一个 True/False 模式,筛选掉列表中对应的元素。
    • Anemone (插件): 一个实现循环逻辑的必备插件,可以创建 Loop (循环) 和 Counter (计数器)。
  • 练习建议:

    1. 棋盘格:Grid 生成点,然后用 DispatchCull Pattern 筛选,只保留一部分点,形成棋盘格效果。
    2. 分形树: 使用 Anemone 插件,创建一个递归算法,让树枝不断分叉。
    3. 数据树操作: 尝试用不同的 Graft, Flatten, Simplify 组合,观察它们如何影响一个网格列表的生成结果。

高级应用与集成

  • 关键组件/插件:
    • Kangaroo (物理引擎): 用于模拟物理现象,如找形、受压结构、布料模拟等,是生成有机形态的利器。
    • Lunchbox / Honeybee / Butterfly: 面向建筑设计的插件,用于生成幕墙、日照分析、环境模拟等。
    • Dodo (机器学习): 集成 TensorFlow,实现机器学习辅助的生成设计。
    • Weaverbird (网格处理): 强大的网格细分和变形工具。
    • GHPython / GH C#: 内置的脚本组件,可以用 Python 或 C# 编写自定义逻辑,实现 Grasshopper 没有的功能。

第六部分:学习资源与社区

学习 Grasshopper 最好的方式就是看别人怎么做,并动手实践。

  1. YouTube 频道 (强烈推荐):

    • Grasshopper3D: 官方频道,有大量基础和高级教程。
    • Parametric House: 专注于建筑和设计应用,教程非常实用。
    • Daniel Piker: Kangaroo 插件的开发者,他的视频展示了物理模拟的强大威力。
    • Volatile Prototypes: 由 McNeel (Rhinoceros 开发商) 的员工运营,内容非常前沿和深入。
  2. 网站与社区:

    • Grasshopper3D.com: 官方社区论坛,可以提问、分享作品、下载插件。
    • Food4Rhino: 最大的第三方插件库,几乎所有你能想到的插件都在这里。
    • McNeel Wiki: 官方的 Grasshopper 文档和参考手册,最权威。
  3. 书籍:

    • 《Architectural Design with Grasshopper》 by Robert Aish, et al.
    • 《Computational Design with Grasshopper》 by Rajaa Issa, et al.

总结与建议

  • 动手,动手,再动手: 不要只看不练,跟着教程做一遍,然后尝试修改它,看看会发生什么。
  • 学会阅读错误: 红线和橙线是你的朋友,它们告诉你哪里出了问题,学会根据错误信息去调试。
  • 从简单开始: 不要一上来就想做一个复杂的参数化大楼,从一条线、一个网格开始,逐步增加复杂度。
  • 分解问题: 遇到复杂问题时,把它分解成几个小步骤,用 Grasshopper 一步步实现,最后再把它们组合起来。
  • 保持好奇心: Grasshopper 的世界非常广阔,总有新的东西可以学,享受探索的乐趣!

祝你学习愉快!欢迎进入参数化设计的精彩世界!

分享:
扫描分享到社交APP
上一篇
下一篇