语法
- inline(geometryMergeStrategy) Rule
- inline(geometryMergeStrategy) subdivision
- inline(geometryMergeStrategy) { operations }
参数
- geometryMergeStrategy - selector定义对生成形状的几何进行组合的方式:
- append - 按原样附加几何。
- unify - 使用 3D 布尔 union 操作。
- 语法选项:
- Rule - 规则的名称。
- subdivision - 细分操作(请参阅几何细分)。
- { operations } - 花括号中的一系列形状操作。
描述
inline 关键字用于触发指定规则、细分操作或形状操作序列的即时派生。 然后将生成的形状自动合并为用于替换当前形状的单个形状。 如果其生成单个形状,则可以按原样进行合并。 如果其生成多个形状,则将根据 geometryMergeStrategy 对其几何进行组合。
如果内联形状具有冲突的材料属性,则会将每个形状的材料写入几何,这意味着将保留所有材料。 对于其他属性,如果内联形状具有冲突的值或者进行了多个 set 操作,则将保留当前形状的值。
概念
当调用规则(即 MyRule)时,将创建当前形状的副本,并添加其作为后继规则。 然后,将使用指定规则分别生成该形状,并且对当前形状没有任何影响。 因此,color(1,0,0) 操作对 Extruded 没有任何影响,并且生成的形状树具有两个独立的叶形状:Extruded 和 Result。 | |
内联 MyRule 允许继续使用其结果。 这意味着可以像影响当前形状的形状操作一样使用规则。 因此,color(1,0,0) 操作继续执行 Extruded,并且生成的形状树仅具有单个树形状:Result。 |
几何合并策略
正确的 geometryMergeStrategy 将取决于建模目标。 目前,提供了两种策略:
- append
用于简单采集多个形状的几何并将其放入单个网格中。 将不会执行任何几何清理,并且所有组件保持原样。
- unify
用于将相交形状的几何与 3D 布尔操作相结合。 将以拓扑方式连接相交的面,并移除内部面。
相关内容
示例
网格拓扑
内联用于将立方体的着色面组合为单个形状。 仅附加这些面,因此其不会共享折点。 可以使用 cleanupGeometry 进行修复。 |
F 型建筑物
不使用内联:将初始形状分割为 F 形状。 将单独对每个部分进行拉伸,并在顶部建造一个独立、分离的屋顶。 | |
使用内联:FShapePieces 规则为内联规则,由此可将所有部分组合为单个形状。 如果使用 append,则几何将保持不变,这意味着这些部分不是通过共享边进行连接。 要连接这些部分并将其合并为单个覆盖区面,可以使用 cleanupGeometry 操作。 由此将生成单个拉伸体量和单个接缝屋顶。 |
两种选择中的最佳选择
将生成两个不同的标记布局。 如果使用 inline(append),则会将其组合为单个形状。 然后,可以使用 comp 函数和标签来比较两个布局的面积,并且仅继续使用较大的布局。 |
统一螺旋台阶
StepsRec(nSteps) 规则将递归生成螺旋楼梯的台阶。 当使用 unify 内联规则时,可将这些台阶组合为单个形状,并使用 3D 布尔 union 操作将其几何合并为单个密封网格。 |
内联和标签
可将初始形状分割为 3 个部分,不同的基本几何资产将插入每个部分,然后对其进行标记。 使用 unify 内联 split 可将其合并到单个密封网格中,同时保留单个面组件上的标签。 | |
2D 中的相同示例。 将保留所有原始边和标签,由此可使用标签标识相交部分。 |