offset 操作

语法

  • offset(distance)
  • offset(distance, keepFaces)

参数

  1. distance - float
    偏移距离,可为正也可以为负。
  2. 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) 中,只有蓝色面逆时针定向。 黄色边界面为顺时针(负)。

外部情况

注:

由于在外部情况中边界面为负,以下布尔方程适用于这两种情况:内部面 + 边界面 = 原始面。