组件分割

此典型操作用于将建筑设计分解为几何组件。 在 CGA 形状语法中,组件分割允许将形状分解为较小尺寸的形状。

以下操作将根据其几何将其前导形状分割为多个组件,并对每个组件执行一组操作。

comp(component){selector : operations | selector : operations ...}

参数 component 用于标识要分割的组件的类型。例如,可以将其设置为 f(适用于面)、e(适用于边)或 v(适用于折点)。 selector 参数用于定义所选组件。

作为基础示例,以下规则将为形状 A 的几何的 all 面创建一个新形状 B:

A --> comp(f) { all : B }

同样,可以使用

comp(e) { all : B }

comp(v) { all : B }

以相应分割为边和折点。

选择器

要仅访问所选组件,可以使用以下操作调用:

comp(f) { 3 : B }
创建一个包含原始形状的第三个面的形状。 此类调用不是很通用,并且要求用户注意前导形状的几何的拓扑。 因此,作为备选方案,我们可以使用选择器:

Building --> comp(f) { side : Facade }

此 CGA 语法仅选择 Building 几何的垂直 side 面,并相应地创建新的外观形状。 为此,规则解释器将分析几何组件的方向(相对于范围方向的面法线方向)。

示例

Building --> extrude(10)

建筑物覆盖区随即拉伸为 3D 质量模型。 生成的范围将以黄色显示。 将分别以红色、绿色和蓝色表示范围的 x 轴、y 轴和 z 轴。 枢轴将以相同的颜色显示。

拉伸的建筑物覆盖区
Building --> extrude(10)
 comp(f) { front : color("#FFFF00") Main. |
           side  : color("#00FFFF") Side. }

质量模型将分割为一个 Main 外观 (front) 和多个 Side 外观 (side)。 现在,每个面都是新形状(MainSide 形状)的几何。 新形状的范围和枢轴取决于面的方向。 x 轴将指向第一条边,z 轴将指向面法线。 范围的 z 维度为零。

分割为多个外观的质量模型

通常,会进一步将外观细分为楼层。 将放置并定位每个新 MainSide 形状的枢轴和范围,由此可以方便地写入外观规则。

有关详细信息,请参阅 CGA 组件分割操作


在本主题中
  1. 选择器
  2. 示例