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 - 选择器
    { 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 允许通过数组按边指定 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() 操作参数。 其他侧面的 baseHeight 和角度参数均类似。

应用于地块的街道选择器
street.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)
街道面向的坡度

在本主题中