关于 iLogic 扩展和自定义

您可以不将 iLogic 规则存储在 Inventor 模型中,而不是将它们存储在外部文件中,然后导入或导出外部规则。

在外部文件中存储规则

这种存储方法可让您在多个不同的位置使用同一规则。

iLogic 规则可以使用其他 NET 部件中的代码。您可以指定这些 NET 部件所在的目录。您可以使用编程工具(例如 Visual Studio)开发 NET 部件。有关在规则中使用 NET 部件的详细信息,请参见“高级规则编程”。

导入/导出外部规则配置

导入/导出 iLogic 配置设置(以 XML 文件格式)以在不同用户和计算机之间共享。配置完成后,外部映射文件夹会显示在“标准目录”树下,当内容(子文件夹和规则)更改时,该树将会立即更新或刷新。

创建展开时,将利用和映射外部规则配置设置。

通过快捷关联选项刷新全局表单可以反映最新的表单。

使用 Automation 界面访问参数和规则

iLogic 提供了一个自动化接口。您可以使用此接口从 Inventor VBA、VB6 或 NET 代码访问参数和规则。

iLogicAutomation 可启用此功能。

在 VBA 或 VB 项目中,您可以将其作为后期绑定类型(声明为对象)使用,而无需添加参考。由于它不是完整的 COM 对象,您无法浏览其方法。

DoubleForEquals 数据类型

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 将值与零进行比较

DoubleForEquals 将与零进行的比较视为特殊案例。如果测试相等的两个数值中有一个为零,则如果另一个数值小于 0.0000001(绝对值),测试会成功。

此比较使得忽略值中接近于零的舍去错误更加容易。例如,以下比较确定 x = 0:

angle = PI/2
x = cos(angle)
If (x = 0) Then
...
End If

何时禁用 DoubleForEquals

DoubleForEquals 是规则中使用的所有 Inventor 参数的默认类型。您可以出于以下原因禁用此设置:

其他 VB 学习资源

使用 Web 浏览器联机搜索 VB 教程和信息。