setbackToArea 操作

语法

  • setbackToArea(area) { selector operator operations | ... }
  • setbackToArea(area, uvSet) { selector operator operations | ... }
  • setbackToArea(area, minDistances) { selector operator operations | ... }
  • setbackToArea(area, minDistances, uvSet) { selector operator operations | ... }
  • setbackToArea(area, minDistances, maxDistances) { selector operator operations | ... }
  • setbackToArea( area, minDistances, maxDistances, uvSet) { selector operator operations | ... }

参数

  1. area - float
    退缩 remainder 的所需面积。 必须大于 0。
  2. minDistances, maxDistances - float[]
    包含每个面边的对应退缩距离的数组。 应用的退缩将在此范围内。
  3. uvSet, selector, operator, operations
    所有其他参数与 setback 操作的相同。

描述

setbackToArea 操作类似于 setback 操作。 不同之处在于会自动选择退缩距离以使 remainder 满足给定 area

如果未给出 minDistances,将为所有边选择相等的退缩距离。 如果指定了 minDistances,则会将这些距离增加公共偏移以满足 area。 或者,maxDistances 将定义应用距离的最大值。

如果最小距离过大、最大距离过小或当前形状的面积小于指定的 area,则无法获取所需 area

注:

其余部分取决于所选边的退缩。 如果您仅对 remainder 形状感兴趣,则仍必须提供退缩 selector

setbackToArea(area) { all = NIL | remainder = X. }

几何标签

该操作自动将语义组件标签应用于生成的边组件。 有关更多详细信息,请参阅 setback 操作。

相关内容

示例

退缩面积

左:面积为 400 的方形退缩为面积 100。 右:执行了退缩以使所有退缩面的面积为 300

Left --> setbackToArea(100) { all      = NIL   |
                             remainder = Green }

Right --> setbackToArea(geometry.area - 300)
                            { all      = Green }
方形退缩面积

L 形退缩为面积 100 和 300。

attr area = 100

Lot --> setbackToArea(area) { front     = Blue  |
                              left      = Red   |
                              remainder = Green }
L 形退缩面积

在同一形状上以不同比例退缩为面积 100。

Lot --> setbackToArea(100) { all       = Blue  |
                             remainder = Green }
退缩为面积 100

下限和上限

按最小和最大距离退缩为限制面积(以红色突出显示)。

attr area = 300

const minDists = comp(fe) { all : rand(3)    }
const maxDists = comp(fe) { all : rand(3, 6) }

ShowDists(dists) -->
    setback(dists) { all       = NIL |
                     remainder = 
                       comp(e) { all = Red } }

Lot -->
    ShowDists(minDists)
    ShowDists(maxDists)
    setbackToArea(area, minDists, maxDists)
                           { all       = NIL   |
                             remainder = Green }
下限和上限