语法
- setback(distance) { selector operator operations | ... }
- setback(distance, uvSet) { selector operator operations | ... }
- setback(distances) { selector operator operations | ... }
- setback(distances, uvSet) { selector operator operations | ... }
参数
- distance - 浮点型退缩距离。
- distances - float[]包含每个面边的对应退缩距离的数组。
- uvSet - 浮点型用于基于 uv 的选择器的 uv 集。 默认值为 0。
- selector - 选择器
- { front | back | left | right | top | bottom | side } - 将分析将面平面中边的向外法线,方法为将其方向分类到对应的范围象限中。
- { object.front | object.back | object.left | object.right | object.top | object.bottom | object.side } - 将分析将面平面中边的向外法线,方法为将其方向分类到对应的对象坐标系象限中。
- { world.south | world.north | world.west | world.east | world.up | world.down | world.side } - 将分析将面平面中边的向外法线,方法为将其方向分类到对应的世界坐标系象限中。
- { street.front | street.back | street.left | street.right | street.side } - 可以使用 street.front 选择器选择与街道相邻的边,可以使用 street.back 选择器选择后部边,并且可以使用 street.left 和 street.right 选择器选择位于前后之间的边。street.side 用于合并左侧边和右侧边。 这些选择器取决于 streetWidth 属性映射的可用性;请参阅自动生成的街道宽度属性。 如果该属性不可用,则组件选择将回退到 object.xxx 选择器。
- { uv.left | uv.right | uv.bottom | uv.top } - 根据 uv 坐标来选择边。 将分析每条边的外向法线以对边进行分类,其中 (left, right) 为负向,u 轴为正向,(bottom, top) 为负向和正向 v 轴。
- all - 选择所有边。
- index(浮动) - 选择第索引个组件(从 0 开始)。 过大索引和负索引将模回绕为正确索引。
- remainder - 选择面的其余部分。
注:
其余部分取决于所选边,但始终相同,与 remainder 选择器在选择器-运算符序列中的位置无关。
- operator运算符用于定义如何使用退缩面生成后续形状。 这同样适用于具有多个面的形状。
- : 将每个面变为新形状。
- = 所有选定组件将合并成一个新形状。
- operations要执行的一系列 CGA 操作。
描述
setback 操作用于选择多条边并使其退缩给定距离。 该操作类似于面 offset 操作,区别在于仅退缩一部分边。
可以为所有边指定公共退缩 distance。 或者,可以通过将退缩 distances 数组而不是单个退缩 distance 传递给操作,为每个面边指定单独的距离。 数组必须采用面-边顺序,即第一个元素是第一个面的第一条边的距离,第二个元素为第一个面的第二条边的距离,以此类推。 将单独为每个面考虑共享边。 如果数组未包含足够的元素,则不会在对应的缺失面边上执行任何退缩。 如果数组包含的元素数大于面边总数,则将忽略对应的退缩距离。 可使用 comp 函数构造此类数组,其中 component 设置为 fe(面边)。 setbackPerEdge 操作提供了一种更加便捷的方式来设置各个退缩距离,无需手动构造数组。
相关内容
示例
街道前侧退缩
|
各个距离
将在具有 2 个面的形状上使用 comp 函数创建替代距离数组。 请注意,数组中的距离按面-边顺序应用。 每个面的第一条边突出显示。 第一个距离应用于第一个面(左)的第一条边,第 5 个距离应用于第二个面(右)的第一条边。
| |
在此示例中,comp 函数与不同的 selectors 和 operators 搭配使用。
| |
左:使用 shapeL 操作的左 L 形状。 右:使用退缩的右 L 形状。
|
注:
有关更多示例,另请参阅 setbackPerEdge 操作。