# 参数化花瓶

创建参数化花瓶是开始学习 Dynamo 的最佳方法。

此工作流将指导您如何操作：

* 使用数字滑块控制设计中的变量。
* 使用节点创建和修改几何图元。
* 实时显示设计结果。

![](https://338946474-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZkPl5tDHbu5X9VJTozDs%2Fuploads%2Fgit-blob-5222aa9f9766b9c85afc9575a34ea563629e4867%2Fvase1.gif?alt=media)

## 定义目标

在跳转到 Dynamo 之前，让我们先从概念上设计花瓶。

假定我们要设计一个粘土花瓶，并考虑陶艺家所用的制造实践。陶艺家通常使用陶轮来制作圆柱形花瓶。然后，通过对花瓶的不同高度施加压力，他们可以改变花瓶的形状并创造出不同的设计。

我们将使用类似的方法来定义花瓶。我们将创建 4 个不同高度和半径的圆，然后通过放样这些圆来创建一个曲面。

## 快速入门

> 单击下面的链接下载示例文件。
>
> 可以在附录中找到示例文件的完整列表。

我们需要节点来表示 Dynamo 将执行的操作序列。由于我们知道要创建一个圆，因此我们先找到一个执行该操作的节点。使用 **“搜索”字段** 或浏览 **“库”**，以找到 **“Circle.ByCenterPointRadius”** 节点并将其添加到工作空间

> 1. 搜索 >“圆...”
> 2. 选择 >“ByCenterPointRadius”
> 3. 节点将显示在工作空间中

让我们进一步了解一下此节点。在左侧，有节点的输入（*“centerPoint”和“radius”*）；在右侧，有节点的输出（圆）。请注意，输出有浅蓝色线。这意味着输入有默认值。要获取有关输入的详细信息，请将光标悬停在输入名称上。*“radius”* 输入需要双精度输入，默认值为“1”。

我们将保留 *“centerPoint”* 的默认值，但会添加 **“Number Slider”** 以控制半径。正如我们使用 **“Circle.ByCenterPointRadius”** 节点所做的那样，使用库搜索 **“Number Slider”** 并将其添加到图形中。

该节点与我们之前的节点稍有不同，因为它包含一个滑块。可以使用该界面更改滑块的输出值。

!

可以使用节点左侧的下拉按钮配置滑块。我们将滑块限制为最大值“15”。

我们将它放置在 **“Circle.ByCenterPointRadius”** 节点的左侧，然后通过选择 **“Number Slider”** 输出并将其连接到“Radius”输入来连接两个节点。

我们还通过双击节点的名称将“Number Slider”名称更改为“Top Radius”。

## 后续步骤

我们继续向逻辑中添加一些节点和连接来定义花瓶。

### 创建不同半径的圆

我们将这些节点复制 4 次，以便这些圆定义曲面，更改“Number Slider”的名称，如下所示。

!

> 1. 圆由圆心和半径创建

### 沿花瓶高度移动圆

我们的花瓶缺少一个关键参数，即花瓶的高度。为了控制花瓶的高度，我们创建了另一个数字滑块。我们还添加了 **“Code Block”** 节点。代码块有助于将个性化代码段添加到我们的工作流中。我们将使用代码块将高度滑块乘以不同的因子，以便可以沿花瓶高度放置圆。

!

然后，我们使用 **“Geometry.Translate”** 节点在所需高度放置圆。由于我们要沿花瓶分布圆，因此我们使用代码块将高度参数乘以一个因子。

> 2.圆在 Z 轴上由变量平移（移动）。

### 创建曲面

为了使用 **“Surface.ByLoft”** 节点创建曲面，我们需要将所有平移的圆合并到一个列表中。我们使用 **“List.Create”** 将所有圆合并到一个列表中，最后将此列表输出到 **“Surface.ByLoft”** 节点以查看结果。

我们还要关闭其他节点中的预览，以仅显示“Surface.ByLoft”显示。

> 3.通过放样平移的圆来创建曲面。

## 结果

我们的工作流已准备就绪！现在，我们可以使用在脚本中定义的 **“数字滑块”** 创建不同的花瓶设计。

![](https://338946474-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZkPl5tDHbu5X9VJTozDs%2Fuploads%2Fgit-blob-5222aa9f9766b9c85afc9575a34ea563629e4867%2Fvase1.gif?alt=media)
