语法
float[] comp(component) { selector operator expression | … }
string[] comp(component) { selector operator expression | … }
bool[] comp(component) { selector operator expression | … }
参数
component, selector, operator
这些参数与 comp 操作的相同。
expression -(浮点型、字符串、布尔)
逐个组件计算的表达式。 所有表达式的类型必须相同。
返回
包含每个组件的 expression 返回值的数组。
描述
comp 函数与 comp 操作非常相似,可用于将形状拆分成不同的拓扑组件(相对于 component、selector、operator),从而生成新的组件形状。 但是与操作相比,函数不会按形状操作的顺序处理所选组件。 而是会对所选的每个组件形状执行函数 expression 计算。 对应的返回值将以有序数组的形式进行组织,作为 comp 函数的结果返回。 有关可用 component、selectors 和 operators 的详细信息,请参考 comp 操作的文档。
返回的数组具有诸多属性:
component 分别设置为 f, e 等时,其大小将等于面数、边数等。
例如,如果 component 设置为 f,数组将包含每个面的 expression 返回值:位于位置 0 且索引为 0 的面的值,位于位置 1 且索引为 1 的面的值,以此类推。
对于每个对应拓扑实体,将复制为合并的组件形状 (operator =) 计算的 expressions 并插入相关索引位置。
对于 selector 未选择的拓扑实体,将使用默认值(分别为 0, “”, false)插入相关的索引位置。
注:
comp 函数用于收集有关当前形状及其组件的信息,而不会更改当前形状或将后续形状添加到形状树。
返回的数组大小有限。 可在程序运行时首选项中进行配置(默认值:100000)。
相关内容
数组类型运算符
comp 操作
setback 操作
comp 属性
边属性函数
解释示例
折点 | 组件形状属性
形状分割成其 6 个折点 (all)。 系统会请求每个折点组件的组件索引。 这些值将在数组中按折点索引顺序进行组织。
const array = comp(v) { all : comp.index }
Lot –> print(array)
(6)[0, 1, 2, 3, 4, 5]
形状分割成其 6 个折点 (
边 | 范围形状属性
在本示例中,将具有 7 条边的形状分割成其 6 条 border 边。 每个边组件会通过范围属性请求自己的长度。 边 2 未选中,但是会以默认值 0 插入数组中。
edgeLength = scope.sx
const array = comp(e) { border : edgeLength }
(7)[7,15,0,17,15,10,16]
具有 7 条边的形状分割成其 6 条
面边 | 合并形状运算符
具有 8 个面边的形状分割成其 2 个 front 面边以及由 2 个 back 面边 (operator =) 组成的合并形状。 对于每个 front 边,将使用组件形状属性构成一个字符串。 第二个字符串表达式仅计算一次,但是返回值将插入所有相应的 back 边索引处。 其余边未选中,但是会以默认值(空字符串 “”)插入。
const array = comp(fe) { front : comp.sel + comp.index |
back = str(comp.index) }
(8)[front0,,0,,,0,,front1]
分割成 2 个
面 | 遮挡查询
具有 6 个面的形状分割成由 4 个 side 面组成的形状 将计算一次遮挡查询,并将结果插入所有 side 面的数组中。 其余面未选中,但是会以默认值 (false) 插入。
const array = comp(f) { side = touches }
(6)[false,true,true,true,true,false]
分割成 4 个
有关应用程序,请参阅 setback 操作等。