您可以不将 iLogic 规则存储在 Inventor 模型中,而将其放在外部文件中。这种存储方法可让您在多个不同的位置使用同一规则。
若要在外部文件中存储规则,需要先为新文件设定默认文件扩展名。应该根据文件的编辑方式选择默认扩展名。例如,如果您要在 Visual Studio 中编辑文件,则可以将默认扩展名设定为 .vb。.txt 扩展名可让您使用文字编辑器(例如 Microsoft 记事本)编辑规则。或者,如果您的文件包含将被 iLogic 预处理的标准 iLogic 规则代码,则可以将默认扩展名设定为 .iLogicVB。
iLogic 规则可以使用其他 .NET 部件中的代码。您可以指定这些 .NET 部件所在的目录。您可以使用编程工具(例如 Visual Studio 2008)开发 .NET 部件。请参见“高级规则编程”,以获取有关在规则中使用 .NET 部件的详细信息。
iLogic 提供了一个自动化接口。您可以使用此接口从 Inventor VBA、VB6 或 .NET 代码访问参数和规则。
类 iLogicAutomation 可启用此功能。
在 VBA 或 VB 项目中,您可以将其作为后期绑定类型(声明为对象)使用,而无需添加参考。由于它不是完整的 .COM 对象,您无法浏览其方法。
iLogic 使用称为 DoubleForEquals 的自定义数据类型存储参数值。DoubleForEquals 支持简单的数值比较。此参数与标准的 VB.NET 类型 Double 相似。但在比较 DoubleForEquals 值时,会将其视为 Single 值(有 7 个而非 15 个小数位)。在默认情况下,规则中的参数将声明为 DoubleForEquals。
利用 DoubleForEquals,在比较中忽略舍入错误更加容易。例如,假设您的零件使用英寸作为文档单位,而您有一个值为 13/16 英寸的参数。由于参数值在模型中以厘米存储,该零件在规则中不会准确地等于 13/16。然后,该值会被转换为英寸以在规则中使用。考虑以下比较:
if d0 = 13/16 then ...
在此示例中,如果 d0 为 Double 类型,比较则会失败。但是,如果 d0 为 DoubleForEquals 类型,比较则会成功。
DoubleForEquals 将值存储为 Double 类型,并将值视为 Double 值执行所有计算。只有执行比较时,才将值视为 Single 值。
如果需要,您可以使用 CDbl 函数将参数值转换为 Double 值。
DoubleForEquals 在 VB.NET 中为 Structure(一种值类型)。
DoubleForEquals 将与零进行的比较视为特殊案例。如果测试相等的两个数值中有一个为零,则如果另一个数值小于 0.0000001(绝对值),测试会成功。
此比较使得忽略值中接近于零的舍去错误更加容易。例如,以下比较确定 x = 0:
angle = PI/2 x = cos(angle) If (x = 0) Then ... End If
DoubleForEquals 是规则中使用的所有 Inventor 参数的默认类型。您可以出于以下原因禁用此设置: