setbackPerEdge

setbackPerEdge操作

概要

  • setbackPerEdge (setbackDistance) {selector operator operations | 选择器操作员操作…}
  • setbackPerEdge (setbackDistance,uvSet) {selector operator operations | 选择器操作员操作…}

参数

  1. setbackDistance – float
    一个指定回退距离的表达式。它按面部边缘进行评估。
  2. uvSet,选择器,操作符,操作
    所有其他参数与回退操作相同 。

描述

该 setbackPerEdge操作类似于挫折操作。唯一的区别是 对每个面边缘多次评估setbackDistance。每个面都单独考虑共享边。因此,可以为每个边设置不同的距离。

在 评估setbackDistance时,当前形状等于相应的面边缘分量之一。更确切地说,当前几何,枢轴和范围等于comp操作的面边缘组件 ( compSelector设置为 fe)。此外, 可以访问comp属性。

注意:

setbackPerEdge (setbackDistance) {selector operator operations | …}

是一个快捷方式

setback(comp(fe){all:setbackDistance}){selector operator operations | …}

这意味着内部数组由 comp函数构造并传递给setback操作。

有关

例子

挫折与setbackPerEdge

此简单的例子说明之差挫折setbackPerEdge。虽然挫折的距离被计算一次,并分配给所有的边一样,setbackPerEdge重新评估每个边缘的距离。

Lot1 --> setback(rand(5))
          { front = Red | back = Blue | left = Green }

Lot2 --> setbackPerEdge(rand(5))
          { front = Red | back = Blue | left = Green }
挫折与setbackPerEdge
 

使用comp形状属性

 comp.index属性用于从一个有序的字符串列表中提取的距离。请注意,索引是以面边顺序完成的(第一条边以橙色突出显示)。第一距离施加在第一面(左)的第一边缘上,第五距离施加在第二面(右)的第一边缘上。另请注意,dist是一种多次评估的函数。如果distattrconst,它只会在规则开始时评估一次, comp.index为-1。

const dists = "3;2;1;0;0;1;2;3;"

dist = float(listItem(dists, comp.index))

Lot --> setbackPerEdge(dist) { all = Green }
comp形状属性
 

使用comp形状几何

相对于边长度应用挫折。

Lot --> setbackPerEdge(scope.sx / 7.5) { all = Green }
相对于边长的挫折

还 可以使用上下文和遮挡查询来指定距离。

dist = case minimumDistance(inter, "Block") < 3 : 2
       else : 0
         
Lot1 --> setbackPerEdge(dist)
           { all = Green | remainder = extrude(1) Blue }
上下文查询

在此示例中,边缘属性被采样并用于设置距离。

dist(orientation) = case orientation == "park"   : 1
                    case orientation == "street" : 7
                    case orientation == "lot"    : 0
                    case orientation == "back"   : 3
                    else                         : 0

dist = dist(edgeAttr.getString("orientation"))

Lot --> setbackPerEdge(dist) { all = Green }
边缘属性
 

setbackPerEdge作为后退

本实施例说明的事实,setbackPerEdge内部评估每个边缘的距离,构建阵列,并将其传递到挫折。虽然选择器只选择了一个边缘,但是调试功能被评估4次,每个边缘一次。

debug = print(comp.index+5)

Lot --> setbackPerEdge(debug) { front = Green }

Was this article helpful?