← 返回函数库

extrude

Geometry Creation Volume 已实现

CityEngine 官方语法

extrude(distance)\nextrude(axis, distance)

参数说明

参数类型默认值说明
distancefloat拉伸距离。正值沿法线/轴正方向,负值沿反方向。
axisselectorworld.y拉伸轴方向,如 world.y、world.x、scope.z 等。

描述

将当前 2D 面沿其法线方向或指定轴拉伸为 3D 体积。拉伸后,原始面成为底面,新生成的侧面与底面垂直。结果的 scope 会自动调整为紧密包裹生成的几何体。

若当前形状为闭合体积,extrude 会在现有体积上叠加,行为取决于具体实现。

官方示例

基本拉伸:将 footprint 拉伸为 10 单位高的建筑体块。

@StartRule\nLot --> extrude(10) Mass

沿指定轴拉伸:

Lot --> extrude(world.y, 15) Mass

实现说明

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

🎨 3D 预览 — 拉伸建筑体块

@StartRule\nLot --> primitiveCube(6, 4, 0.2)\n        extrude(8)\n        comp(f) { top: Roof | side: Wall }\n\nRoof --> color(0.8, 0.3, 0.2)\nWall  --> color(0.6, 0.7, 0.75)