在 iLogic 中处理规则

创建规则

在您创建规则之前,请创建要包含在规则中的所有参数。

  1. 在功能区上,单击 “管理”选项卡 “iLogic”面板 “添加规则”
  2. 在“规则名称”对话框中,输入新规则的名称,然后单击“确定”
  3. 使用“编辑规则”对话框定义规则。
    • 在零件或工程图文档中,单击参数组以在“参数”选项卡的右侧显示该参数列表。然后,双击该列表中的参数以将该名称插入到规则文本中。

      在部件文档中,选择“三维模型”选项卡以显示零部件,或选择“文件树”选项卡以显示子部件和零件文件。展开零件文件项目以显示该文件内的参数和特征。

      注: 当您在“模型”树中单击非参数项目时,其名称会列在“名称”选项卡(在“参数”选项卡旁边)下。您可以双击此列表中的项目以将名称插入至规则中。许多工程图代码段都需要视图名称。双击列表中的相应项目,可获得当前工程图中的视图名称,以便将其包含在规则中。
    • 在项目上单击鼠标右键,然后选择“捕获当前状态”以将为项目指定值的文字插入到规则中。

      例如,捕获参数的当前状态以插入该参数及其当前值,例如 d0 = 4.0 in

      捕获参数时始终同时捕获其单位,但在编写新表达式时不需要使用单位。您可以在参数组上单击鼠标右键,以捕获特定类型的所有参数的状态。也可以在特征或零部件上单击鼠标右键,以捕获其当前的 IsActive 状态(抑制或未抑制)。

    • 使用“系统和自定义”选项卡下“代码段”区域中列出的代码段添加函数,然后可以为规则自定义这些函数。双击某个代码段可将其添加至规则。
    • 可使用规则文本区域上方的编辑工具栏上的选项操纵规则的外观。也可以使用这些选项插入条件语句、关键字和运算符。
  4. 单击“确定”以保存规则。

编辑规则

  1. 在功能区上,单击 “管理”选项卡 “iLogic”面板 “iLogic 浏览器” (如果当前未显示该浏览器)。
  2. 在“iLogic 浏览器”中,单击“规则”选项卡,以在打开的文档中编辑规则。或者,单击“外部规则”选项卡,以为外部文件中的零部件编辑规则。
  3. 双击规则,或单击鼠标右键并从关联菜单中选择“编辑规则”。
  4. 使用“编辑规则”对话框编辑规则。在您输入文本时,系统会对您的文本应用相应的颜色编码以提高可读性。
  5. 完成后,请单击“确定”。

重命名规则

若要重命名规则,请在“iLogic 浏览器”中的名称上缓慢单击两次(两次不连续的单击)以启用编辑模式,然后更改现有的名称。

插入规则语法

使用“编辑规则”对话框中规则文本区域上方的工具栏上的下拉列表,将语法字符串插入到规则中,而不是手动输入语法。插入后,您可以根据需要自定义这些字符串。提供适用于以下各项的选项:

  • 条件语句
  • 关键字
  • 运算符

插入字符串的步骤:

  1. 将光标置于规则中的目标位置。
  2. 从其中一个下拉列表中选择字符串。系统会使用相应的颜色编码插入字符串,以提高可读性。
  3. 可根据需要编辑插入的字符串。

在规则中插入代码段

使用“编辑规则”对话框的“代码段”区域中的选项将代码段插入到规则中。然后,您可以根据需要修改插入的代码段。

  1. 在规则文本区域中,将光标置于插入点处。
  2. 在“代码段”区域中单击“系统”或“自定义”选项卡,以显示该选项卡可用的类别。
  3. 双击代码段,以在光标位置插入该代码段。系统将对代码段的每个组成部分(例如条件文字、函数及变量和参数的占位符)进行颜色编码,以提高可读性。
  4. 编辑插入的代码段。

在规则中处理可收拢的代码区域

创建可收拢的代码区域和注释

定义可收拢的代码区域和注释,可使规则文本区域更整洁。

代码区域

  • 插入单引号(其后跟一个左方括号),以指示可收拢的代码区域的开始。使用单引号(其后跟一个右方括号),以指示可收拢的代码区域的结束。
  • 单击节点图标 (-) 可收拢代码。

注释

  • 在一行的开头插入三个单引号可将其定义为可收拢的注释。如果注释占了多行,请在每行的开头均插入三个单引号。
  • 单击节点图标 (-) 可收拢注释。

操纵可收拢的代码区域和注释的节点显示

在规则文本区域中使用以下关联菜单选项可操控可收拢的代码区域和注释:

  • 单击鼠标右键,然后选择“节点显示”“切换当前代码节点显示”,可在光标位置展开和收拢代码区域或注释。
  • 单击鼠标右键,然后选择“节点显示”“切换所有代码节点显示”,可展开和收拢规则中的所有可收拢代码区域和注释。
  • 单击鼠标右键,然后选择“节点显示”“停止代码节点显示”,可禁用所有节点显示功能和展开所有收拢的代码区域或注释。节点显示树也会从显示中删除。若要启用节点显示功能,请单击鼠标右键并选择“节点显示”“启动代码节点显示”

阻止规则自动运行

  1. 在“规则编辑器”中打开规则。
  2. 选择“选项”选项卡。
  3. 选择“抑制”复选框。
  4. 单击“确定”。
    注: 您可以手动运行抑制的规则。也可以在“iLogic 浏览器”中抑制规则。

运行规则,但不显示 Inventor 对话框

  1. 在“规则编辑器”中打开规则。
  2. 选择“选项”选项卡。
  3. 选择“静默操作”复选框。
  4. 单击“确定”。

当所参考的参数值发生更改时立即运行从属规则

  1. 在“规则编辑器”中打开规则。
  2. 选择“选项”选项卡。
  3. 选中标记为“立即触发从属规则”的复选框。
  4. 单击“确定”。
    注: 通过立即运行从属规则,您可以在设定参数后包含明确的模型更新。发生更新时,参数已更改,并且从属规则已运行。

阻止规则在参数更改时运行

  1. 在“规则编辑器”中打开规则。
  2. 选择“选项”选项卡。
  3. 选中标记为“不自动运行”的复选框。
  4. 单击“确定”。
    注: 如果选择此选项,您将只能通过以下方式运行规则:手动运行、通过事件触发器运行,或者通过 iLogicVB.RunRule 运行。

在规则间共享代码

  1. 在“规则编辑器”中打开规则。
  2. 选择“选项”选项卡。
  3. 选中标记为“直接 VB 代码”的复选框。
  4. 单击“确定”。

iLogic 不会预处理规则中标识为直接 VB 代码的代码,因此,Inventor 参数名称在规则中无法识别。规则应该包含可以从其他规则中调用的类别或模块。使用此选项可在规则间共享代码,或者作为保留代码模块化的方法。但是,请注意,共享代码更难编写。

为“规则编辑器”选择其他字形和字号

  1. 在“规则编辑器”中打开规则。
  2. 选择“选项”选项卡。
  3. 单击“选择字体”
  4. 选择字体和字号。“样例”文本框会显示选择的效果。
  5. 单击“确定”。

为“捕获当前状态”选项选择语法

对部件内的零部件中的参数使用“捕获当前状态”时,此选项仅影响部件:

  1. 在“规则编辑器”中打开规则。
  2. 选择“选项”选项卡。
  3. 选中“使用零部件名称”复选框以将零部件名称(例如 Parameter("PartA:1", "d0") = 5.6 in)作为语法的一部分包含进来。为使规则更容易移植,建议选中此选项。

    或者,可以清除该复选框以排除零部件名称(例如 PartA.ipt.d0 = 5.6 in)。

  4. 单击“确定”。
    注: 在部件级创建规则时,您可以通过单击参数名称将参数插入到规则中。如果您以后将零部件名称从其原文件名更改为其他名称,使用参数语法可以更容易找到该零部件。

运行规则

若要手动运行规则,请在“iLogic 浏览器”中的规则上单击鼠标右键,然后从关联菜单中选择“运行规则”。

若要确保规则中的参数与模型同步,请在运行规则之前从关联菜单中选择“重新生成规则”。

若要在规则内明确运行其他规则,请使用 iLogicVb.RunRule 函数。

在 iLogic 浏览器中对树重排序

在“iLogic 浏览器”中,拖放任意规则可以更改其在树中的排序。位于您放置规则的位置上或该位置下方的所有规则都将在树中下移。

重新生成规则

将特定规则中的参数与模型同步的步骤:

  1. 在“iLogic 浏览器”中选择规则。
  2. 单击鼠标右键,然后从关联菜单中选择“重新生成规则”。

该命令会将规则重新连接至 Inventor 参数,重新编译规则,然后运行规则。

重新生成当前文档中的所有规则

使用该命令可将所有规则中的参数与模型同步。

  1. 在“iLogic 浏览器”中选择文档。
  2. 单击鼠标右键,然后从关联菜单中选择“重新生成所有规则”。

或者,您可以使用功能区上的“重新生成所有规则”命令。选择 “管理”选项卡 “iLogic”面板 “重新生成所有规则”

删除规则

  1. 在功能区上,单击 “管理”选项卡 “iLogic”面板 “iLogic 浏览器”
  2. 在规则上单击鼠标右键,然后从关联菜单中选择“删除”。
  3. 当系统提示您确认选择时单击“确定”。

删除文档中的所有规则

当您已完成模型配置并且想要保存或导出样例配置时,请使用该命令。此命令会删除所有规则。

注: 如果在部件中运行此命令,则子部件和零件中的所有规则也将被删除。

使用外部规则

创建外部规则

“iLogic 浏览器”包含一个外部规则选项卡。通过此选项卡,您可以加载外部规则或创建新外部规则。

使现有规则成为外部规则的步骤:

  1. 打开规则。
  2. 复制代码。
  3. 创建新的外部规则,并将代码粘贴到新规则中。

将外部规则另存为 .iLogicVb 文件(建议使用此扩展名),或者另存为 .vb 或 .txt 文件。将外部规则保存到从其他规则中运行这些外部规则时能够找到的文件夹中。iLogic 会按照所列顺序在以下文件夹中查找外部规则文件:

  • 当前的 Inventor 文档所在的文件夹(允许复制模型以及关联的规则)
  • 当前的 Inventor 项目工作空间文件夹
  • 在 iLogic 配置中设定的文件夹列表(通常用于工作组或公司规则)

“iLogic 浏览器”为树中的顶部节点(“文件中的外部规则”)及每个规则提供关联菜单。

创建外部规则图标

您可以为“iLogic 浏览器”中显示的外部规则加入图标。在规则文件所在的文件夹中创建一个与规则文件同名的 .bmp 文件(建议大小为 16 x 16)。

例如,如果外部规则名为 Custom Checks Rule.iLogicVb,则将该图标文件命名为 Custom Checks Rule.bmp

创建位图图像后,重新启动 Autodesk Inventor 即可显示该图标。Autodesk Inventor 运行时,您无法编辑该图标。

编辑外部规则

若要编辑外部规则,请打开“编辑规则”对话框,然后双击树中的规则以进行编辑。

也可以使用外部程序(例如“记事本”)来编辑规则。保存规则后,在树中使用关联菜单中的“从文件重新加载”可将更改带入 Inventor 中。

外部规则和参数

外部规则不会为响应特定参数更改而自动运行。与内部规则不同,参数名称不能自动用作规则变量。

例如,以下规则语句无法执行:

d1 = d0 * 0.5

而应使用以下语句:

Parameter("d1") = Parameter("d0") * 0.5

此语句适用于具有名为 d0 和 d1 的参数的任何零件或部件。该语句可用于对共享相同项目的相关零件执行操作。

使用向导创建特殊规则

注意: 使用 iLogic Form Designer 创建自定义用户界面表单。用户界面可以包含用于触发规则、更改参数值和设置 iProperty 的控件。iLogic Form Designer 不需要进行任何编程。当所需的用户界面超出 iLogic Form Designer 的功能范围时,请使用 Visual Basic 来设计表单并对其进行编程。

根据模型参数控制对话框

  1. 在“编辑规则”对话框的“向导”选项卡上单击“为对话框创建规则”

    “打开 DLL 文件”对话框会显示包含先前创建的 DLL 文件的 iLogicAdd 文件夹的内容。

    注: 您可能需要创建 iLogicAdd 文件夹,路径为 C:\Program Files\Autodesk\Inventor {版本号}\Bin\iLogicAdd
  2. 选择 DLL 以使用相应的类别和变量名称填充“外部 DLL 的规则”对话框。
  3. 单击“确定”以生成代码。

捕获当前显示视图

  1. 在“编辑规则”对话框的“向导”选项卡上单击“捕获当前视图”
  2. 从“捕获视图”对话框中选择一个大小选项。
    • 保存并恢复当前视图范围 - 将视图恢复为规则捕获视图时的方向和缩放设置。
    • 恢复时不更改视图大小 - 将模型移动至显示屏中心并设定方向,但不更改缩放比例。
    • 恢复时调整为模型大小 - 将模型移动至显示屏的中间位置并填充显示屏(与“全部缩放”相同)。
  3. 单击“确定”以生成代码。

生成消息框

使用此向导创建生成消息框的规则。

  1. 在“编辑规则”对话框的“向导”选项卡上单击“消息框”
  2. 输入要显示在消息框顶部的标题。
  3. 选择要显示在消息框上的按钮组合。
  4. 指定默认按钮,方法是根据按钮选集,选择与该按钮在按钮顺序中的相对位置对应的号码。

    例如,如果您选择了“YesNoCancel”作为按钮方案,而您的默认按钮为“No”,则应选择 “2”

  5. 选择要显示在消息框中的状态图标。
  6. 输入要显示在消息框中的文字,应置于双引号内。
  7. 单击“预览”以显示使用您选择的项目的消息框。
  8. 单击“确定”以生成代码。

当参数值超出指定范围时显示诊断信息

  1. 在“编辑规则”对话框的“向导”选项卡上单击“参数极限值”
  2. 输入参数名称。
  3. 指定最大值和最小值。
  4. 输入要针对最大值和最小值超范围情况显示的消息标题和消息正文。
  5. 单击“应用”以生成代码,或单击“默认消息”以将消息重置为其默认文字。

使用规则显示对话框

您可以使用规则显示让用户进行输入的对话框。对话框可以包含在规则中;但是,将其包含在外部 DLL(类库)中会更加简单、灵活。

使用 Visual Studio 版本 2005 或 2008。Visual Basic Express 可以从 Microsoft 免费下载。

Visual Basic 2008 快速入门

  1. 如果您的计算机上还没有安装 Visual Basic 2008 Express,请从 Microsoft® 网站下载并进行安装。该下载是免费的。
  2. 打开 Visual Basic 2008 Express,然后创建类库类型的项目。
  3. 将该项目命名为 ClassLibrary1(默认名称),然后单击“确定”。将您键入的名称准确地记在一张纸上。以后此名称在这些指令中十分重要。

    系统将显示一个新窗口,“方案资源管理器”位于该窗口的右上角。

  4. 在“方案资源管理器”中,在该项目名称上单击鼠标右键并选择“添加”,然后从子菜单中选择“新建项”。系统将显示“添加新项”对话框。
  5. 选择“对话框”模板,然后单击“添加”。

    系统将在 Windows Form Designer 中显示对话框的图形视图。您可以使用此界面将控件添加至对话框。

    屏幕左侧的“工具箱”列出了您可以添加至对话框的控件。对于此项目,请添加文本框以显示 Inventor 参数的值,并且可让您编辑该参数。

  6. 从“工具箱”面板的“常用控件”组中单击“文本框”并将其拖放至对话框中的灰色区域。您可以根据需要重新调整对话框的大小。
  7. 为该文本框添加标签,以显示参数名称。
  8. 小心避开标签和文本框,双击对话框的背景以显示代码编辑器。系统将显示以下代码。
  9. 立即将光标移动至以下行下方 -
    Public Class Dialog1
  10. 添加此行 -
    Public d0 As Double
  11. 将光标放在子例程 OK_Button_Click 的顶部,Me.DialogResult... 语句的前面,然后按 Enter 键以添加新行。
  12. 在新行上,添加 -
    d0 = TextBox1.Text

    您的代码显示如下 -

  13. 使用“文件”“保存”或者“文件”“全部保存”保存您的工作。

    现在,您基本可以构建项目了。当您执行构建操作时,Visual Basic 会创建 DLL 文件。您可以通过修改构建操作的输出路径指定 Visual Basic 创建此文件的位置。

  14. 单击项目标题所在的选项卡,然后再次单击“编译”选项卡。输出路径为 -

    Program Files\Autodesk\Inventor {版本号}\Bin\iLogicAdd\

  15. 若要构建项目,请在顶部的菜单中单击“构建”选项卡。如果构建过程成功完成,则会在屏幕左下角的状态栏中显示“构建成功”消息。
  16. 使用“全部保存”再次保存您的工作,并打开 Inventor。
  17. 使用“添加规则”创建名为 Form Rule 的规则,该规则由以下代码组成 -
    AddReference "ClassLibrary1"
    Sub Main()
    dim dlg as new ClassLibrary1.Dialog1
    dlg.d0 = d0
    i = dlg.ShowDialog()
    if (i = vbOK)then
    d0 = dlg.d0
    end if
    End Sub
    注: 也可以使用“编辑规则”对话框的“向导”选项卡上的“为对话框创建规则”创建此代码。

    此规则会将 Inventor 参数 d0 的当前值发送给对话框,然后显示该对话框。使用对话框的用户可以在对话框中编辑该值。如果该用户单击“确定”,则会将对话框中的值重新指定给该参数。

创建对话框

创建可让您显示并修改某些参数值的对话框的步骤:

  1. 打开 Visual Studio。
  2. 创建类库类型的项目。
  3. 在“方案资源管理器”中,在该项目名称上单击鼠标右键,然后依次选择“添加”“新建项”“对话框”。

    系统将在 Windows Form Designer 中显示对话框的图形视图。您可以使用此界面将控件添加至对话框。

  4. 单击“视图”“工具箱”以预览可用的控件。
  5. 如果您需要有显示 Inventor 参数值并进行编辑的功能,请添加文本框控件。为每个文本框添加标签,以显示参数名称。
  6. 双击对话框的背景。

    代码编辑器将显示在名为 Dialog1_Load 的新子例程中。

  7. 在此子例程中,在子例程结尾前面添加此行 -
    TextBox1.Text = d0
  8. 将光标移动至以下行下方 -
    Public Class Dialog1
  9. 添加此行 -
    Public d0 As Double
  10. 在名为 OK_Button_Click 的子例程顶部添加此行 -
    d0 = TextBox1.Text

    现在您的代码显示如下 -

    Imports System.Windows.Forms
    Public Class Dialog1
    Public d0 As Double 
    Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click  
      d0 = TextBox1.Text
      Me.DialogResult = System.Windows.Forms.DialogResult.OK
      Me.Close()
    End Sub
    Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
      Me.DialogResult = System.Windows.Forms.DialogResult.Cancel  
      Me.Close()
    End Sub
    Private Sub Dialog1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       TextBox1.Text = d0
    End Sub
    End Class
  11. 构建项目,并使用“文件”“全部保存”保存项目。

构建项目的同时会创建一个 DLL。您可以:

  • 将该 DLL 复制到 iLogicAdd 目录中,该目录位于 Autodesk Inventor 程序的 Bin 目录下(通常位于 C:\Program Files\Autodesk\Inventor {版本号}\Bin\iLogicAdd)。
  • 更改项目设置,以将该 DLL 自动发送至该目录。使用 “iLogic 配置”命令可更改 iLogic 查找 DLL 的目录。请参见“展开 iLogic 功能”,以获取有关在规则中使用 DLL 文件的详细信息。

以下示例规则使用对话框:

AddReference "ClassLibrary1"
Sub Main()
dim dlg as new ClassLibrary1.Dialog1
dlg.d0 = d0
i = dlg.ShowDialog()
if (i = vbOK) then
d0= dlg.d0
end if
End Sub

此规则会将 Inventor 参数 d0 的当前值发送给对话框,然后显示该对话框。使用对话框的用户可以在对话框中编辑该值。如果该用户单击“确定”,则会将对话框中的值重新指定给该参数。

可以自动生成类似的对话框代码。在“编辑规则”对话框中,选择“向导”选项卡,然后选择“为对话框创建规则”。