语法

  • 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 – 浮点型
    退缩 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. }

相关内容

示例

退缩面积

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

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

Right --> setbackToArea(geometry.area - 300)
                            { all      = Green }
GUID-E69C98BB-EB9D-43D8-8B70-1C72159CE640-web

L 形退缩为面积 100 和 300。

attr area = 100

Lot --> setbackToArea(area) { front     = Blue  |
                              left      = Red   |
                              remainder = Green }
GUID-4CFDA638-03B7-4A04-9F1C-F363224DECDA-web

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

Lot --> setbackToArea(100) { all       = Blue  |
                             remainder = Green }
GUID-1F96FBB6-A9C1-4B19-9A5D-59E279AEBD17-web
 

下限和上限

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

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 }
GUID-0A1F3B2D-0B0A-48E1-B1EE-7A22A1D42D42-web