这是 LK 自动排版体系的核心执行组件,兼具两项独立功能:
将曲线列表镜像变换后渲染到 Grasshopper 画布的背景层,形成视觉辅助线框。
通过第二个按钮开启,根据矩形框的分组信息,将框架内的电池批量移动到指定位置——自动对齐、自动排版。
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
| 曲线 (C) | 必需 | 需要添加到画布背景的曲线列表。组件会进行镜像变换(关于 ZX 平面),让曲线在 Grasshopper 画布上正确显示。该输入端默认隐藏。 | |
| 以下参数仅在模式二(按钮 2 开启后)显示: | |||
| 矩形框 (R) | 可选** | 定义电池移动目标位置的矩形框列表。每个矩形框对应目标组件应该移动到的位置区域。必须是闭合曲线。 | |
| 名称列表 (N) | 可选** | 电池分组的名称列表。用于将矩形框索引与目标名称匹配。 | |
** 仅在模式二开启后可见及有效。
| 名称 | 类型 | 说明 |
|---|---|---|
| 无输出(模式一) | — | 模式一只绘制背景,不输出数据。 |
| 以下参数仅在模式二开启后显示: | ||
| 程序名称列表 (N) | 通过 SelectedComponents 识别出的各矩形框中「Connected」或「LK_Rename Object」组件输入端数据源的昵称列表。 |
|
| 重复名称列表 (N) | 如果程序名称列表中存在重复项,这里会列出所有重复的名称。用户可通过此输出排查命名冲突。 | |
组件带有两个按钮,功能各不相同:
| 按钮 | 操作 | 效果 |
|---|---|---|
| 按钮 1(默认) | 点击触发 | 执行背景曲线绘制。将输入的曲线镜像变换后更新到画布背景。 |
| 按钮 2(扩展) | 点击切换开关 | 切换模式二的开/关状态。开启时,组件会显示额外的输入/输出参数,并在求解时执行电池移动逻辑。按钮状态通过 Write / Read 持久化保存。 |
当组件求解时,ProcessBackgroundDrawing 方法执行以下操作:
Transform.Mirror(Plane.WorldZX))Curves 属性Curves 属性的 setter 被重写,自动将新曲线传给自定义属性中的 ListCurvesGUIButton 在画布渲染时将曲线绘制到背景层当按钮 2 开启时,组件在求解后会额外执行 ProcessComponentMoving 方法。这是一个复杂的电池自动排版流程:
通过 SelectedComponents.RunScript 分析每个矩形框内的组件:
"Connected"、"LK_Rename Object" 或 "RN" 的组件Attributes.Pivot 到新位置ExpireLayout() 刷新布局| 场景 | 说明 |
|---|---|
| 自动排版系统 | 配合 LKWireframe、AutoConnect、RenameObject 组成完整的 LK 自动排版流水线。 |
| 批量对齐电池 | 在大型 Grasshopper 程序中,用矩形框将混乱的电池分组调整到整齐的网格布局中。 |
| 背景辅助线 | 仅使用模式一,在画布上绘制分区背景,帮助视觉理解程序结构。 |
Connected / LK_Rename Object / RN 的组件来作为寻址标记。Write/Read 序列化保存到 .gh 文件中。CanvasBackground.cs,类位于 LK.Component.LK_GUI 命名空间。| 名称 | 画布背景 |
| 英文名 | Canvas Background |
| 分类 | LK → GUI |
| 基类 | GH_Component(自定义 UI 属性 + 双按钮) |
| GUID | {FF17E09A-FC16-4305-A762-8A55A342EF60} |