语法

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

描述

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

下面是基本 envelope() 操作参数。 其他侧面的 baseHeight 和 angle 参数均类似。

按边控制

一种版本的 envelope 允许通过数组按边指定 baseHeights 和 angles。 数组必须采用面-边顺序,即第一个元素对应第一个面的第一条边,第二个元素对应第一个面的第二条边,以此类推。 将单独为每个面考虑共享边。 如果数组不含足够的元素,将使用默认值(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 })

GUID-99FEEFD6-4C4C-4841-B1B8-0F87B7221E48-web基本 envelope() 操作参数。 其他侧面的 baseHeight 和角度参数均类似。

GUID-7A532280-4A93-42DC-B208-848F90FAF781-webstreet.front, street.back, street.right, street.left, street.side 选择器应用于街区的地块(使用自动生成的 streetWidth 属性)。

相关内容

示例

街道面向的坡度

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

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

Building-->
  envelope(normal, 50, 15, 30)
GUID-166823BF-AB60-4FA5-BDF4-8FE639E7DEC0-web