envelope 操作

语法

  • envelope(direction, maxHeight, frontBaseHeight, frontAngle)
  • envelope(direction, maxHeight, frontBaseHeight, frontAngle, backBaseHeight, backAngle)
  • envelope(direction, maxHeight, frontBaseHeight, frontAngle, backBaseHeight, backAngle, sideBaseHeight, sideAngle)
  • envelope(direction, maxHeight, frontBaseHeight, frontAngle, backBaseHeight, backAngle, rightBaseHeight, rightAngle, leftBaseHeight, leftAngle)
  • envelope(direction, maxHeight, baseHeights, angles)

参数

  1. direction - selector
    { normal | world.up } - 包络竖立时随沿的方向。
  2. maxHeight - float
    包络的最大高度,以米为单位。 如果达到了此高度,将挖方体积并水平密封。
  3. frontBaseHeight - float
    前侧的基本高度,以米为单位。
  4. frontAngle - float
    前侧的坡度角度,以度为单位。
  5. backBaseHeight - float
    后侧的基本高度,以米为单位。
  6. backAngle - float
    后侧的坡度角度,以度为单位。
  7. sideBaseHeight - float
    右侧和左侧的基本高度,以米为单位。
  8. sideAngle - float
    右侧和左侧的坡度角度,以度为单位。
  9. rightBaseHeight - float
    右侧的基本高度,以米为单位。
  10. rightAngle - float
    右侧的坡度角度,以度为单位。
  11. leftBaseHeight - float
    左侧的基本高度,以米为单位。
  12. leftAngle - float
    左侧的坡度角度,以度为单位。
  13. baseHeights - float[]
    基本高度,每条边对应一个值。
  14. angles - float[]
    坡度角度,每条边对应一个值。

描述

envelope 操作用于在当前形状几何的每个面上创建建筑物包络。 将根据 street.frontstreet.back street.rightstreet.leftstreet.side 选择器对面的每条边进行分类。 然后,将垂直于面构建具有相应 baseHeight 的侧面。 最后,将使用相应的坡度角度在每侧的顶部添加倾斜平面。 street.xxx 选择器计算基于 streetWidth 属性,请参阅自动生成的街道宽度属性。 如果该属性不可用,则组件选择将回退到 object.xxx 选择器。

按边控制

一种版本的 envelope 允许通过数组按边指定 baseHeightsangles。 数组必须采用面-边顺序,即第一个元素对应第一个面的第一条边,第二个元素对应第一个面的第二条边,以此类推。 将单独为每个面考虑共享边。 如果数组不含足够的元素,将使用默认值(baseHeight 为 0,角度为 90 度)。 例如,这样可以将

envelope(direction, maxHeight, frontBaseHeight, frontAngle, backBaseHeight, backAngle)

编写为

envelope(direction, maxHeight, 
      comp(fe) { street.front = frontBaseHeight | street.back = backBaseHeight }, 
      comp(fe) { street.front = frontAngle | street.back = backAngle | all = 90 })
基本操作参数
基本 envelope() 操作参数。 其他侧面的 baseHeightangle 参数均类似。

应用于地块的街道选择器
应用于街区的地块(使用自动生成的 streetWidth 属性)的 street.front, street.back, street.right, street.left, street.side 选择器示例。

组件标签

该操作自动将语义组件标签应用于生成的面组件:

"envelope.bottom"

"envelope.side.base"

"envelope.side.slope"

"envelope.side.inner"

"envelope.top"

蓝色:原始面。

黄色:垂直基面。

橙色:斜面。

红色:孔洞的侧面。

绿色:最大高度处的顶面。

自动标签包络矩形

有关使用组件标签的详细信息,请参阅:

相关内容

示例

街道面向的坡度

上述示例代码用于创建面向街道侧切坡度为 30 度的建筑物包络。 屋檐高度为 15 米。 在创建包络之前,将使用退缩操作和 street.front 选择器从地块中分割 10 米的前院。

Lot-->
  setback(10) { street.front : color(0,1,0) 
                               FrontYard | 
                remainder    : Building   }	              

Building-->
  envelope(normal, 50, 15, 30)
街道面向的坡度