场思维 - 隐式建模入门
有关如何在 Inspire 内隐式建模中使用场的详细描述,以及有助于您直观思考场驱动设计的视频和说明性示例。
大多数计算机辅助设计 (CAD) 通过描述包围 3D 对象的曲面来表示 3D 对象(即“边界表示法 (BRep)”)。这包括参数化曲面(例如,NURBS)、镶嵌面网格(例如,平面三角形)和细分曲面。隐式建模不是 BRRep;它是体积表示法。它将几何体表示为一个场,这个场对有关对象外部空间中每个位置以及对象内部空间中每个位置的信息进行编码。曲面本身被隐式表示为空间中外部区域和内部区域之间的边界。
当我们说“场”时,我们在说什么?
“场”一词对于不同的人群和不同的学科有不同的含义。为了清楚起见,在隐式建模的环境中,术语“场”采用以下定义:在空间中的每个坐标处,通常在某些实际边界内,场返回一个带符号的标量值(例如,1.0、-3.1、0.0 等)。我们使用“场”作为更完整的术语“标量场”的缩写。场编码的信息的形式为 {x 坐标,y 坐标,z 坐标,带符号的标量值}。
隐式建模利用了几何体环境中的一些重要约定。首先,假设负标量值是建模对象的内部,正标量值是外部。对象曲面本身会出现在空间中每个返回零标量值的位置。因此,场中的带符号标量值可以立即对空间中的任何坐标进行内部/外部检查。
以下段落描述了在隐式建模中有用且属于此定义范围的不同类型的场。
带符号的距离场 (SDF)
SDF 特别有用,因为它们可以进行即时内部/外部检查,并且可以告诉您某个点与物体曲面的距离有多近。这种布置对于为给定几何体创建精确的偏移曲面而言是最佳选择,并且还可以实现曲面之间的受控融合、倒角操作等。
无符号的距离场 (UDF)
UDF 与 SDF 共享所有相同的属性,但有一个明显的例外:场中的所有标量值都具有相同的符号 (+/-),无论它们是在建模对象的内部还是外部。某些几何图形会通过结构生成 UDF,例如直线、曲线和点。这是因为这些对象没有明确定义的内部和外部概念。然而,有时构建 UDF 来代替 SDF 可能很有用。这是通过取 SDF 的绝对值并产生所有正距离来实现的。
类距离标量场
某些场的行为与 SDF(或 UDF)类似,但它们的标量不会对到曲面的准确距离进行编码。通常,这些场的标量值在曲面处为零,并且随着远离曲面(向内或向外)而增加。然而,标量变化的速率可能与真实 SDF 的变化速率不同。您可以将其看成是标量值在远离曲面的每单位长度上的变化。在 SDF 中,当将标量值与远离曲面的距离进行比较时,标量以 1:1 的比例变化。相反,类距离标量场中的标量可能以 2:1 的比率变化,从而不会对到曲面的距离编码。
作为说明性示例,请考虑下图,它显示了 Gyroid 格栅结构场的截面图。尽管在后台对场进行了一些重新调整以改善类距离属性,但通过仔细观察发现,条纹(例如蓝色和白色)间隔不均匀,并且在远离曲面时会变得扭曲。这是因为 Gyroid 格栅结构的基础方程会产生类距离标量场,而不是 SDF。
请注意,许多隐式建模函数在类距离标量场上同样有效。但是,在融合、倒角和偏移这些场时应小心,因为它们可能无法创建您所需的精确厚度或半径。
二元和分段常数场
可以创建二元场,按照惯例,该二元场在对象外部和曲面上的所有位置都为零,而在对象曲面内部的所有位置都为 1。这些场对于遮蔽空间中的区域以限制下游操作的范围非常有用。例如,您可能希望在某些区域内严格应用几何体编辑,而不将它们应用到其他地方。笼统地说,就好比在说“在所有这些位置上执行操作,但不在其他位置进行执行操作”。
与二元场类似,创建常量场也很有用。通常,这些场在对象内部和对象上具有一个用户定义的值,并且在对象外部具有相同或不同的用户指定值。例如,您可以创建一个场,此场在对象内部和曲面上的标量值为 3,在对象外部的标量值为 5。这些场可用于设置(例如,不同区域中格栅单元的厚度)。
插值标量场
- 仿真数据
- 测量数据
- 来自数学函数的采样值
- 来自以往经验的知识
使用场创建形状
如前所述,场可用于通过提取穿过空间中所有场为零的位置的等值面来创建几何体。我们现在将给出一个简单的例子来解释其工作原理。
在 3D 笛卡尔坐标系中,球体的常用方程是
,
其中, 是球体的中心坐标,而 是半径。然而,为了将球体表示为 SDF,我们采用以下格式表示球体方程:
使用场编辑现有形状的属性(即场驱动设计)
我们现在将展示:场可用于局部改变现有几何体的某些参数或尺寸。下图显示了支柱格栅的截面视图,其中绿色面是格栅与截面之间的交点。如您所见,支柱的厚度从顶部蓝色平面到底部蓝色平面呈线性减小。这是场驱动设计的一个简单示例。这个场是根据到 z=0 平面的距离创建的,其中模型的距离范围在 z 方向(两个蓝色平面)上从 -50mm 延伸到 +50mm。我们使用“重新缩放”复选框选项将这些距离映射到 1mm 到 4mm 的合适厚度范围。需要明确的是,在距参考平面 -50mm 处,厚度将为 1mm,在距参考平面 +50mm 处,厚度将为 4mm。
这一原则可以通过两种方式应用于整个隐式建模工作流程。第一种方法是在结构历史中使用场之前,通常基于一些参考几何体来定义场。换句话说,您可以在构造使用场控制其参数之一的几何体之前构造该场。为此,您应该点击主“隐式建模”功能区中的场图标。
第二种方法是在最终将使用该场的几何体的环境中创建场。继续上面的支柱格栅示例,可以使用场驱动设计来控制支柱直径和单位单元格尺寸。下面以红色突出显示的“场”小图标按钮可以清楚地表明这一点。使用此方法时,您应该设置所有非场驱动的参数(例如单位单元格类型),然后使用相关的图标就地创建场。在上面的示例中,通过点击“支柱直径”旁边的场图标创建场,然后使用全局 z 平面 (z=0) 定义该场。
- 将格栅结构或壳体的局部厚度与结构仿真数据联系起来,从而仔细地将材料放置在需要的地方
- 根据该位置所经历的应力水平自动控制整个模型的倒角半径,从而有效地缓解局部应力提升
- 局部加强或削弱结构,有意通过首选路径传递力,例如安全吸收冲击
- 局部改变格栅结构的尺寸以改变非结构属性,例如电磁行为、流体流动的渗透率或压降、声学性能、换热系数等。
- 从一种几何体类型无缝合并到另一种几何体类型,以在特定位置创建不同的(元)材料属性(例如,从一种格栅类型变形为另一种格栅类型,以在同一对象中利用它们各自的优势)
使用隐式建模时的一些常见误解和陷阱
“我习惯使用草图”传统 CAD 工作流程往往从 2D 草图开始,然后使用少量工具将其发展为 3D 几何特征,松散映射到制造流程(挤出、旋转等)。隐式建模的不同之处在于,它从一开始就通过定义、组合和融合体积 (3D) 形状表示来构建形状。如果您需要根据草图开发模型,则应遵循传统的 CAD 工作流程,然后在适当的时候将模型转换为隐式格式。
“为什么我不能点击单个几何特征?”传统 CAD 由 NURBS 曲面驱动,明确定义包围建模对象的曲面。每个曲面的修剪线在曲面和特征之间形成明确的边界,也可以通过构造获得。隐式建模没有这样的几何特征,并且不能轻松选择、突出显示或编辑它们。这是因为对象的整个曲面是单个等值面,隐含为对象场的内部区域和外部区域之间的边界。因此,很难选择曲面上的点、分隔几何特征的线以及孤立的面。目前,这是为创建复杂、稳健和场驱动几何体方面为额外灵活性所付出的代价。
“为什么没有尺寸工具?”由于隐式建模不是草图、几何特征和约束驱动(如传统 CAD),因此尺寸工具的用途受到限制。相反,应在创建时仔细输入几何体尺寸和位置,可能由变量或场控制以增加灵活性。
我想将我的隐式建模转换/导出为参数化 CAD (NURBS)几乎每种几何体表示法都可以轻松转换为隐式格式。此转换过程会输出对象的 SDF。然而,隐式几何体并不总是能够轻松地转换回其他格式。隐式几何体易于网格化,并且可以输出为.STL、.OBJ 和.3MF 格式。用户应注意,非常复杂的隐式模型可能会产生三角形数量非常多的密集网格。返回参数化 CAD 的途径是通过 PolyNURBS 工具。该工具可用于将细分曲面拟合到隐式模型,使其成为可编辑的 CAD 曲面。同样,在这些步骤中应该小心,因为您将在拟合过程中权衡计算时间和准确性。对于非常复杂的模型来说,参数化 CAD 是一个糟糕的选择,因为其曲面太多,无法有效地处理模型。
“为什么锐边看起来很圆润?”尽管许多场在技术上具有无限分辨率,但它们最终还是使用 3D 网格进行采样。该网格的粗细度由“可视化质量”控制。如果网格无限精细,锐边就会非常锐利。随着网格变得更粗糙以匹配可用的计算资源,在渲染和任何后续转换(例如三角形网格)中,锐边会变得有些圆润。为了说明这一点,下面的两张图分别以“极低”和“极高”可视化质量显示了相同的格栅结构。为了最大限度地减少这种影响,用户应该以计算机可以承受的最高可视化质量完成设计,甚至可能使用自定义质量。
一个不太明显的陷阱:并非所有隐式建模操作在组合 SDF 时都会保留距离
隐式建模中的一种常见操作是将单独的主体组合起来形成一个连接的主体。这通常称为布尔联合运算,但隐式建模使用较短的术语“合并”。有人认为将两个主体(每个主体由一个 SDF 表示)结合起来会产生另一个 SDF,这是可以理解的。不过,让我们看看在这种情况下场会发生什么情况。下面的图像是使用以下步骤创建的(第一张图像显示了该场的截面视图,第二张图像显示了 3D 对象的截面视图):
- 创建两个相互偏移但仍然重叠的长方体基元。
- 合并对象(布尔并集)。
- 创建合并对象的向内壳体,以创建壁厚恒定的中空对象。
总而言之,简单地合并多个 SDF 并不一定会在操作后产生 SDF。其他操作也是如此,例如平滑化、变形和偏移操作。一般情况下使用隐式建模时,记住这一点很有用。
结束语
您现在已经了解了 Inspire 隐式建模后台发生的事情。使用该软件时记住这些信息将使您能够利用隐式建模的主要优势,包括场驱动设计,同时避免一些常见的陷阱。其余帮助文件中给出了有关如何使用“隐式建模”功能区中每个工具的具体信息。
当我们说“场”时,我们在说什么?
场一词对于不同的人群和不同的学科有不同的含义。
为了清楚起见,在隐式建模的环境中,术语场采用以下定义:在空间中的每个坐标处,通常在某些实际边界内,场返回一个带符号的标量值(例如,1.0、-3.1、0.0 等)。我们使用场作为更完整的术语标量场的缩写。场编码的信息的形式为 {x 坐标,y 坐标,z 坐标,带符号的标量值}。
隐式建模利用了几何体环境中的一些重要约定。首先,假设负标量值是建模对象的内部,正标量值是外部。对象曲面本身会出现在空间中每个返回零标量值的位置。因此,场中的带符号标量值可以立即对空间中的任何坐标进行内部/外部检查。
不同类型的场
对在隐式建模中有用且属于此定义范围的不同类型的场的描述。
带符号的距离场 (SDF)
SDF 特别有用,因为它们可以进行即时内部/外部检查,并且可以告诉您某个点与物体曲面的距离有多近。这种布置对于为给定几何体创建精确的偏移曲面而言是最佳选择,并且还可以实现曲面之间的受控融合、倒角操作等。
无符号的距离场 (UDF)
UDF 与 SDF 共享所有相同的属性,但有一个明显的例外:场中的所有标量值都具有相同的符号 (+/-),无论它们是在建模对象的内部还是外部。某些几何图形会通过结构生成 UDF,例如直线、曲线和点。这是因为这些对象没有明确定义的内部和外部概念。然而,有时构建 UDF 来代替 SDF 可能很有用。这是通过取 SDF 的绝对值并产生所有正距离来实现的。
类距离标量场
二元和分段常数场
可以创建二元场,按照惯例,该二元场在对象外部和曲面上的所有位置都为零,而在对象曲面内部的所有位置都为 1。这些场对于遮蔽空间中的区域以限制下游操作的范围非常有用。例如,您可能希望在某些区域内严格应用几何体编辑,而不将它们应用到其他地方。笼统地说,就好比在说“在所有这些位置上执行操作,但不在其他位置进行执行操作”。
与二元场类似,创建常量场也很有用。通常,这些场在对象内部和对象上具有一个用户定义的值,并且在对象外部具有相同或不同的用户指定值。例如,您可以创建一个场,此场在对象内部和曲面上的标量值为 3,在对象外部的标量值为 5。这些场可用于设置,例如,不同区域中格栅单元的厚度。
插值标量场
- 仿真数据
- 测量数据
- 来自数学函数的采样值
- 来自以往经验的知识
反距离加权
最近邻插值法
最近邻插值更易于可视化。场中的每个位置均采用点云中最近点的标量值。由于空间中的附近位置可能会“捕捉”到不同的标量值,因此这种技术会强制生成的插值标量场发生突变。
使用场创建形状
场可用于通过提取穿过空间中所有场为零的位置的等值面来创建几何体。
我们现在将给出一个简单的例子来解释其工作原理。
在 3D 笛卡尔坐标系中,球体的常用方程是
,
其中, 是球体的中心坐标,而 是半径。
然而,为了将球体表示为 SDF,我们采用以下格式表示球体方程:
场驱动设计:使用场编辑现有形状的属性
场可用于局部改变现有几何体的某些参数或尺寸。
此处提供场驱动设计的一个简单例子。
- 将格栅结构或壳体的局部厚度与结构仿真数据联系起来,从而仔细地将材料放置在需要的地方
- 根据该位置所经历的应力水平自动控制整个模型的倒角半径,从而有效地缓解局部应力提升
- 局部加强或削弱结构,有意通过首选路径传递力(例如安全吸收冲击)
- 局部改变格栅结构的尺寸以改变非结构属性(例如电磁行为、流体流动的渗透率或压降、声学性能、换热系数等)
- 从一种几何体类型无缝合并到另一种几何体类型,以在特定位置创建不同的(元)材料属性(例如,从一种格栅类型变形为另一种格栅类型,以在同一对象中利用它们各自的优势)
操作方法视频:在格栅结构中创建场驱动效果
这些视频展示了如何使用隐式几何体、隐式主体、BRep 或结构几何体以及点云在格栅结构中创建场驱动效果。
该视频展示了如何使用隐式几何和隐式主体在格栅结构中创建场驱动效果。
该视频展示了使用 BRep 或结构几何体在格栅结构中创建场驱动效果的不同方法。
该视频展示了根据仿真数据创建的点云,该点云随后用于驱动一些格栅结构属性。
隐式建模的误解和陷阱
使用隐式建模时的一些常见但不太明显的误解和陷阱
使用隐式建模时的一些常见误解和陷阱
“我习惯使用草图。”
传统 CAD 工作流程往往从 2D 草图开始,然后使用少量工具将其发展为 3D 几何特征,松散映射到制造流程(挤出、旋转等)。隐式建模的不同之处在于,它从一开始就通过定义、组合和融合体积 (3D) 形状表示来构建形状。如果您需要根据草图开发模型,则应遵循传统的 CAD 工作流程,然后在适当的时候将模型转换为隐式格式。
“为什么我不能点击单个几何特征?”
传统 CAD 由 NURBS 曲面驱动,明确定义包围建模对象的曲面。每个曲面的修剪线在曲面和特征之间形成明确的边界,也可以通过构造获得。隐式建模没有这样的几何特征,并且不能轻松选择、突出显示或编辑它们。这是因为对象的整个曲面是单个等值面,隐含为对象场的内部区域和外部区域之间的边界。因此,很难选择曲面上的点、分隔几何特征的线以及孤立的面。目前,这是为创建复杂、稳健和场驱动几何体方面为额外灵活性所付出的代价。
“为什么没有尺寸工具?”
由于隐式建模不是草图、几何特征和约束驱动(如传统 CAD),因此尺寸工具的用途受到限制。相反,应在创建时仔细输入几何体尺寸和位置,可能由变量或场控制以增加灵活性。
“我想将我的隐式建模转换/导出为参数化 CAD (NURBS)。”
几乎每种几何体表示都可以轻松转换为隐式格式。此转换过程会输出对象的 SDF。然而,隐式几何体并不总是能够轻松地转换回其他格式。隐式几何体易于网格化,并且可以输出为 .stl、.obj 和 .3mf 格式。您应注意,非常复杂的隐式模型可能会产生三角形数量非常多的密集网格。返回参数化 CAD 的途径是通过 PolyNURBS 工具。该工具可用于将细分曲面拟合到隐式模型,使其成为可编辑的 CAD 曲面。同样,在这些步骤中应该小心,因为您将在拟合过程中权衡计算时间和准确性。对于非常复杂的模型来说,参数化 CAD 是一个糟糕的选择,因为其曲面太多,无法有效地处理模型。
“为什么锐边看起来很圆润?”
尽管许多场在技术上具有无限分辨率,但它们最终还是使用 3D 网格进行采样。该网格的粗细度由可视化质量控制。如果网格无限精细,锐边就会非常锐利。随着网格变得更粗糙以匹配可用的计算资源,在渲染和任何后续转换(例如三角形网格)中,锐边会变得有些圆润。
为了最大限度地减少这种影响,您应该以计算机可以承受的最高可视化质量完成设计,甚至可能使用自定义质量。
一个不太明显的陷阱:并非所有隐式建模操作在组合 SDF 时都会保留距离
隐式建模中的一种常见操作是将单独的主体组合起来形成一个连接的主体。这通常称为布尔联合运算,但隐式建模使用较短的术语“合并”。有人认为将两个主体(每个主体由一个 SDF 表示)结合起来会产生另一个 SDF,这是可以理解的。不过,让我们看看在这种情况下场会发生什么情况。下面的图像是使用以下步骤创建的:
- 创建两个相互偏移但仍然重叠的长方体基元。
- 合并对象(布尔并集)。
- 创建合并对象的向内壳体,以创建壁厚恒定的中空对象。
仔细检查上面的图像会发现壁厚并不恒定。具体来说,壁厚导致内角接触的区域表示壁厚大于预期。
总而言之,简单地合并多个 SDF 并不一定会在操作后产生 SDF。其他操作也是如此,例如平滑化、变形和偏移操作。一般情况下使用隐式建模时,记住这一点很有用。
场驱动设计结束语
您现在已经了解了 Inspire 隐式建模后台发生的事情。使用该应用时记住这些信息将使您能够利用隐式建模的主要优势,包括场驱动设计,同时避免一些常见的陷阱。
隐式建模文档中的其余部分给出了有关如何使用“隐式建模”功能区中每个工具的具体信息。