← 返回函数库

split

Geometry Subdivision Split 部分实现

CityEngine 官方语法

split(axis) { size1 : Rule1 | size2 : Rule2 | ... }\nsplit(axis) { ~size1 : Rule1 | ~size2 : Rule2 | ... }*

参数说明

参数类型默认值说明
axisselector分割轴:x、y 或 z(scope 轴)。
sizefloat分割尺寸。无前缀为绝对尺寸,~ 前缀为相对比例。
Rulerule对应分割片段的规则名称或操作序列。

描述

沿指定轴将当前形状分割为多个子形状。支持绝对尺寸、相对比例(~)、浮动(*)和重复(*)模式。split 是 CGA 中最常用的细分操作之一。

当前实现支持绝对尺寸和相对比例(~)模式。浮动(*)和重复(*)模式的支持有限。

官方示例

绝对尺寸分割:将 lot 在 X 方向分为 3m 和剩余部分。

Lot --> split(x) { 3 : Front | ~1 : Back }

相对比例分割:在 Y 方向按 1:2:1 比例分为三层。

Mass --> split(y) { ~1 : First | ~2 : Second | ~1 : Third }

实现说明

CGA.js 中的 split 实现基于 CityEngine 2025.1 官方文档。

🎨 3D 预览 — 分割

@StartRule\nLot --> primitiveCube(8, 4, 2)\n        split(x) { 2 : Left | ~1 : Center | 2 : Right }\n\nLeft   --> color(1, 0, 0)\nCenter --> color(0, 1, 0)\nRight  --> color(0, 0, 1)

代码编辑器自动补全

枚举值自动补全:输入 split( 时,补全列表直接显示:
split(x)split(y)split(z)
无需手动输入轴名。