语法
- offset(distance)
- offset(distance, keepFaces)
参数
- distance - float偏移距离,可为正也可以为负。
- keepFaces - selector{ all | inside | border } - 选择要保留的面。 默认值为 all。
描述
offset 操作用于为当前形状几何的每个面在距离 distance 处构造偏移面。 根据参数的符号,偏移面将分别在内部(负号)或外部(正号)进行构造。
注:
生成的形状包含偏移面和边界面(即原始面和偏移面之间的差异)。 如果只需偏移面,则只能通过使用组件分割提取对应的面(请参阅以下示例)。 或者,可以提供偏移选择器作为第二个参数。
范围
会根据新几何调整范围大小。
遮挡物形状
组件标签
相关内容
示例
偏移面和边界面
下图列出了内部和外部情况中的偏移面(蓝色)和边界面(黄色)。
原始面(位于中间)会缩小(负偏移)和放大(正偏移)。 偏移面采用蓝色,边界面采用黄色。 请注意,放大时,偏移面和边界面会重叠。
这些偏移面是使用以下规则生成的,
attr blue = "#3957A5"
attr yellow = "#F2BB1D"
Lot --> offset(-3) A
A --> comp(f) { inside: I | border: O }
I --> color(blue)
O --> color(yellow)
其中 offset 介于 -3 和 3 之间。
要提取偏移面,需要将 inside 选择器用于组件分割。 在外部情况中,这可能令人困惑,因为在此情况下偏移面实际位于外部。
注:
使用正偏移时,边界面(黄色)和偏移面(蓝色)会重叠。 在此情况下,边界面的法线指向下方(见下文)。
面方向
在下图中,对于每个面,标记第一条边。
在内部情况 (offset = -1) 中,内部和边界面均逆时针定向(正)。 | |
在外部情况 (offset = 1) 中,只有蓝色面逆时针定向。 黄色边界面为顺时针(负)。 |
注:
由于在外部情况中边界面为负,以下布尔方程适用于这两种情况:内部面 + 边界面 = 原始面。