声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。
iLogic 功能
iLogic 使用户可以进行规则驱动的设计,以一种简单的方式捕获和重复使用自己的作品。使用 iLogic 可让设计成为标准化的、自动执行的过程,并可配置虚拟的产品。
iLogic 函数
iLogic 将规则作为对象直接嵌入到零件、部件和工程图文档中。规则可确定并驱动设计的参数和属性值。通过控制这些值,您可以定义模型的属性、特征和零部件的行为。知识内容可以直接保存在文档中,就像存储几何设计元素一样。 iLogic 规则可以利用 Autodesk Inventor 中当前可用的自定义参数类型,例如文本、真/假和多值列表。您可以使用这些参数类型来编写规则,这些规则不仅仅涉及数字型输入值。
Autodesk Inventor“参数”对话框支持这些专用参数,通过高级过滤函数帮助定义、管理和编辑参数的输入值。
iLogic 中的 Automation 函数
几乎没有或彻底没有编程经验的设计师和工程师都可以执行 iLogic 自动化函数。使用自动化函数可以执行以下操作:
声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。
? ? ? ? ? ? ?
根据在部件级规则中定义的条件语句,自动搜索 iPart 或 iAssembly 配置并进行更改。
从使用条件参数的规则中,激活零件和部件特征或激活部件和装配约束。 当孔尺寸或杆尺寸发生更改时,自动更新和驱动螺纹规格。
读取、写入和响应设计文档的材料或外观、零件的质量或体积以及设计参数。 当模型更改生成新配置后,更新 BOM 表信息。
限制或自动更正用户输入的值,以确保生成的配置是有效的且符合设计规格和标准。
读取和写入 Excel 电子表格文档。
用于消息和输入框的函数可以在规则运行时提供反馈、选项和信息。
使用 iLogic 规则创建的自定义界面
使用 iLogic 规则将自定义形式直接与零件或部件设计参数关联。该功能提供了规则驱动设计模板的用户界面。
注: 若要下载 Visual Basic 2008 Express Edition,请访问 Microsoft? 网站。
在 iLogic 规则集成的 VB.NET
通过在 iLogic 规则中直接使用 VB.NET,您可以:
? ? ? ? ? ?
读取和写入 HTML 文件、文本文件、Word 文档和其他格式的文件。 与其他 Windows 应用程序进行通信。 以 DWF 格式或其他文件格式自动发布。 启动外部应用程序和现有的 VBA 宏。
连接到外部数据库应用程序,例如 Microsoft? Access 或 SQL Server。 直接使用 Inventor API 函数。
iLogic 中的参数
除了标准参数外,您还可以在 Autodesk Inventor 模型中创建和编辑文本参数和真/假参数。文本参数是由文本字符组成的字符串,而真/假参数包括布尔值 True 或 False。可以在规则中使用这两种类型的参数来驱动Autodesk Inventor 参数或任何可由规则驱动的对象。在规则中,这些参数代表标准的 VB.NET 类型:String 和 Boolean。
声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。
在 VB.NET 中,应将字符串值置于双引号内。例如:
string1 = \
许多 iLogic 函数都包含字符串参数,这些参数也同样位于引号内。例如包含 Autodesk Inventor 模型中零部件和特征的名称。 如前所述,布尔参数可以是 True 或 False。例如:
boolean1 = True boolean2 = False
布尔值 True 和 False 不需要用引号引起来。
字符串(文本)参数可以指定给 Text 类型的 Inventor iProperty。布尔 (true/false) 参数可以指定给 Yes or No 类型的 Inventor iProperty。 以下是一个规则语法示例:
iProperties.Value(\iProperties.Value(\
相反,您还可以从文本参数和真/假参数来设定 iProperty 值:
string1 = iProperties.Value(\boolean1 = iProperties.Value(\
iLogic 中的多值参数
多值参数是具有存储的一系列可能值的 Autodesk Inventor 参数。但是,像其他参数一样,多值参数在任何一次使用时都只具有单个值。它不会自动锁定到多值列表中的某一个值,尽管您可以使用规则实现该情况。
您可以在“参数”对话框中创建和编辑多值参数。在任意列中的参数上单击鼠标右键,然后选择“生成多值”以指定该参数可以具有多个值。使用显示的对话框输入一系列值。也可以从文本编辑器或其他应用程序(如 Microsoft? Excel)中粘贴一系列值。
对于数值型参数,值列表可以包含分数或表达式。例如:
? ?
3/8 12.5 mm
声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。
? d0 * 0.8
对于多值参数或真/假参数,“表达式”单元格具有一个下拉列表,您可以从中单击当前值(或用于数值型参数的表达式)。
在规则中,可以使用多值函数为参数读取和写入一系列值。
iLogic 中的条件语句
可以使用 Visual Basic (VB.NET) 编程语言创建 iLogic 规则。If-Then-Else 等条件语句可让规则根据特定的条件执行操作.
iLogic 中的 If-Then-Else 语句
在 If-Then-Else 语句中,当条件为真时执行一组操作,当条件为假时执行另一组操作:
(1) 条件 (2) 真 (3) 假 (4) 如果条件为真,则执行这些语句 (5) 如果条件为假,则执行这些语句
执行真或假语句后,程序控制将继续执行下一个语句。
在 iLogic 中,您可以使用代码段或多行代码形式来实现 If-Then-Else 结构。 例如:
If size = “small” Then
声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。
length = 6.0 Else
length = 12 End If
如果条件表达式为 true,则将执行关键字 Then 与 Else 之间的语句,而忽略关键字 Else 与 End If 之间的语句。如果条件表达式为 false,则将执行关键字 Else 与 End If 之间的语句,而忽略关键字 Then 与 Else 之间的语句。在任何情况下,程序控制都会继续执行 End If 语句后面的语句。
iLogic 中的 If-Then 语句
在 If-Then-Else 语句中,无论条件为 true 还是 false,都将执行操作。但是,有时仅当条件为 true 时才执行一个或一组操作,条件为 false 时则不执行任何操作:
(1) 条件 (2) 真 (3) 如果条件为真,则执行这些语句 (4) 假 您可以忽略代码段 If 结构的 Else 部分。例如:
If size = “small” Then
声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。
length = 6.0 End If
iLogic 中的 null 或 empty 操作集
您还可以在代码段形式的 If 语句中使用 null 操作集或 empty 操作集。例如,您可以通过以下代码段来说明“如果条件为真,则不执行任何操作;反之,则执行指定操作”:
If length > 20 Then
Else MessageBox.Show(\\End If
使用空操作集时,可以在 true 语句通常会出现的位置添加注释来提高可读性:
If length > 20 Then ’do nothing
Else MessageBox.Show(\Invalid Size.Length must be at least 20 in \\End If
将 If 语句用作单行语句
尽管代码段形式的 If 语句可提高可读性,但您还可以将 If 语句编写为单行形式。在该格式中,未使用 End If 语句。 例如:
If length < 20 Then MessageBox.Show(\If mass < 1000 Then length =20 Else length =40
在条件表达式中使用布尔变量
声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。
布尔变量(可具有 True 或 False 值)可用在关系表达式适用的任何地方。 例如,以下两个语句等效:
If Feature.IsActive(\If Feature.IsActive(\
在第二个语句中,True 值是暗指的。
相似地,使用以下两个语句都可以测试布尔变量是否为假:
If Feature.IsActive(\If Not Feature.IsActive(\
这些示例可以显示函数的结果。其他示例包括:将参数名称用作布尔变量,或使用局部变量保存布尔值。
iLogic 中的条件语句 Case 结构
Case 结构让您可以在两个以上的情况之间进行选择:
声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。
(1) Case 转化码 (2) Case“1” (3) Case“2” (4) Case“3” (5) Case Else (6) 当转换码 =“1”时要执行的操作 (7) 当转换码 =“2”时要执行的操作 (8) 当转换码 =“3”时要执行的操作 (9) 当转换码不等于“1”、“2”、“3”时要执行的操作 可以使用扩展的代码段 If 结构或 Select Case 语句结构来实现 Case 结构。
iLogic 中的扩展的代码段 If 语句 (If-Then-ElseIf)
扩展的代码段 If 语句使用一个或多个嵌套在第一个 If 子句和最后一个 Else 子句之间的 ElseIf 子句。关键字 ElseIf 是一个单词。 例如:
If material = \density = 0.284
ElseIf material = \density = 0.323
ElseIf material = \density = 0.098 End If
在该格式中,程序将执行与找到的第一个真条件表达式关联的语句。然后,程序会退回到 End If 语句后面的语句。使用最后一个 Else 语句捕捉发生异常条件(与前面的 If 或 ElseIf 条件不匹配)时出现的错误。
使用 ElseIf,则无需将多个 End If 语句编码至嵌套的 If 结构中。为了进行比较,前一个示例还可以编写为:
If material = \density = 0.284 Else
If material = \
声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。
density = 0.323 Else
If material = \density = 0.098 End If End If End If
iLogic 中的 Select Case 语句
Select Case 是具有多个选项的强大语句。 例如:
Select Case material Case “Steel” density =0.284 Case “ Copper” density = 0.323 Case “Aluminum” density = 0.098 Case Else density = 0
MessageBox.Show(\
声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。
End Select
在该格式中,Select Case 语句会指定要测试的表达式。每个后续的 Case 子句会指定一个或多个要与测试表达式进行比较的表达式。包含与测试表达式匹配的表达式的第一个 Case 子句将执行关联的操作。然后,程序控制将转至 End Select 语句后面的语句。最后一个 Case Else 子句将捕捉当测试表达式的异常值与任何先前 Case 子句中的表达式列表都不匹配时发生的错误。 Select Case 之后的测试表达式可以是更复杂的表达式,例如:
Select Case radius +1
Select Case MinOfMany(x,y,z)
Case 子句中的表达式列表可以是以下任何一种格式:
格式
<表达式>[,表达式,...]
<表达式> To <表达式>
Is<关系操作符表达式> (先前表达式的任意组合)
例如:
Select Case width Case 1,2,3,4,5
MessageBox.Show(\Case 6 to 15
MessageBox.Show(\Case Is > 15
MessageBox.Show(\End Select
声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。
Select Case 语句不需要与任何特定变量或表达式关联。使用以下格式,可以使用该语句来评估任意数量的条件:
Select Case True Case length >= 10 width = length -1 thickness = length/5 Case length < 10 width = length - .75 thickness = length/6 End Select
在各种条件语句下执行操作
在真或假条件下执行替换操作
1. 2. 3. 4. 5. 6.
在“编辑规则”对话框的规则文本区域中,将光标放在所需的位置。 从工具栏中的下拉列表中选择 If...Then...EndIf。 使用第一个要评估的表达式替换 My_expression。
在 If-Then 语句和 EndIf 语句之间的行上输入条件为真时要执行的操作。 将光标放在您刚才输入的操作末尾,从下拉列表中选择“Else”。 在 Else 语句和 EndIf 语句之间的行上输入条件为假时要执行的操作。
输入要执行的操作时,您可以使用“代码段”区域中的选项在光标位置插入函数。然后您可以为该函数添加适当的参数。
注: 您也可以手动输入这些步骤中所描述的任意文字;但是使用下拉列表和代码段可以减少出错几率。
声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。
如果一个条件为真,则执行操作
1. 2. 3. 4.
在“编辑规则”对话框的规则文本区域中,将光标放在所需的位置。 从工具栏中的下拉列表中选择 If...Then...EndIf。 使用要评估的表达式替换 My_expression。
在 If-Then 语句和 EndIf 语句之间的行上输入条件为真时要执行的操作。
输入要执行的操作时,请使用“代码段”区域中的选项在光标位置插入函数。然后您可以为该函数添加适当的参数。
注: 您也可以手动输入这些步骤中所描述的任意文字;但是使用下拉列表和代码段可以减少出错几率。
在某个条件下不执行任何操作
1. 2. 3. 4. 5.
? ?
在“编辑规则”对话框的规则文本区域中,将光标放在所需的位置。 从工具栏中的下拉列表中选择 If...Then...EndIf。
将光标放在插入的两行之间,然后从下拉列表中选择 Else。 使用要评估的表达式替换 My_expression。
<建议>在语句中输入注释,例如“do nothing”,来替换通常使用的操作。
在 If-Then 语句末尾输入注释,以便当条件为真时不执行任何操作。 在 Else 语句之后输入注释,以便当条件为假时不执行任何操作。
根据要包含该操作的条件,输入在真或假条件下要执行的操作。
6.
输入要执行的操作时,请使用“代码段”区域中的选项在光标位置插入函数。然后您可以为该函数添加适当的参数。
注: 您也可以手动输入这些步骤中所描述的任意文字;但是使用下拉列表和代码段可以减少出错几率。
在两个以上的条件下执行替换操作
1. 2.
在“编辑规则”对话框的规则文本区域中,将光标放在所需的位置。 从工具栏中的下拉列表中选择 If...Then...EndIf。
声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。
3. 4. 5. 6. 7.
使用第一个要评估的表达式替换 My_expression。 在两行之间输入在该条件下要执行的操作。
将光标放在刚输入的操作末尾后,从下拉列表中选择“ElseIf...Then”,然后使用要评估的下一个表达式来替换 My_expression。
在该条件下的空白行中,输入在该条件下要执行的操作。 重复前面的两个步骤任意次,直到列完剩余的条件。
输入要执行的操作时,请使用“代码段”区域中的选项在光标位置插入函数。然后您可以为该函数添加适当的参数。
注: 您也可以手动输入这些步骤中所描述的任意文字;但是使用下拉列表和代码段可以减少出错几率。
根据与测试 case 的比较情况,执行替换操作
Select Case
1. 2. 3. 4. 5. 6. 7. 8. 9.
在“编辑规则”对话框的规则文本区域中,将光标放在所需的位置。 从工具栏中的“关键字”下拉列表中选择“Select Case”。 在插入的语句末尾添加一个空格,然后输入测试表达式。 按 Enter 键,然后从工具栏中的“关键字”列表中选择“Case”。
在插入的语句末尾添加一个空格,然后输入第一个要与测试表达式进行比较的表达式。
在该表达式下的空白行中,输入在该条件下要执行的操作。 重复前面的两个步骤任意次,直到列完每个表达式。
将光标放在上一个表达式下方的空白行上,然后从“关键字”菜单中选择“Case Else”。
在插入的语句下方的空白行上,输入最后一个 Case 子句以捕捉异常结果,然后按 Enter 键。
将光标放在上一个表达式下方的空白行上,然后从“关键字”菜单中选择“End Select”。
10.
声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。
输入要执行的操作时,请使用“代码段”区域中的选项在光标位置插入函数。然后您可以为该函数添加适当的参数。
注: 您也可以手动输入这些步骤中所描述的任意文字;但是使用下拉列表和代码段可以减少出错几率。
条件语句格式参考
If-Then-Else 格式
If
If-Then 格式
If
Null 格式
If
If 语句为一行代码
If
扩展的代码段 If (If-Then-ElseIf) 格式
If 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 true>...ElseIf Select Case 格式 Select Case 用于 iLogic 中的规则的函数 函数是在程序中执行的指令。该指令可以包含参数或要求输入特定内容才能成功运行。 函数通常按照特定的顺序排列,以便获得所需的结果。例如,一个函数从数据库中检索信息片断,下一个函数对该数据执行某些操作。通常,每个函数都不依赖于程序中的后续代码。 iLogic 提供了一些函数,用于修改 Inventor 模型,或从模型读取一些数据并将数据返回给用户。在“编辑规则”对话框中可以将这些函数用作代码段。您可以在为模型定义的规则(Visual Basic 小程序)中放置函数。当规则运行时,将执行该规则中的函数。 规则函数的类别 iLogic 提供了许多可在规则中使用的函数。这些函数被分组到类别中。 以下是一个说明函数如何在规则中显示的示例: returnValue = Category.FunctionName(argument1, argument2,...) 参数可以是文本字符串、布尔值(真或假)或数字。 文本字符串值需要置于双引号内。“ComponentName:1”和“Hole2”是文本字符串的示例。在前一个示例中,如果参数是文本字符串,则函数显示为: returnValue = Category.FunctionName(“ComponentName:1”,“Hole2”) 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 iLogic 文本参数可以用作预期获得文本字符串的函数的参数。Inventor 数值型参数可以用作预期获得数字的函数的参数。 返回值可以是文本字符串、布尔值(真/假)或数字。返回值通常是您想从模型读取或检索的信息。您可以测试返回值,或将返回值指定给规则中的参数或局部变量。 某些函数没有返回值。在 VB.NET 中,该类型的函数称为 Sub。该类型函数通常用于更改模型。例如: Category.FunctionName(argument1, argument2, ...) 可以使用另一种类型的函数向 Inventor 模型中的某些对象写入或指定值。在 VB.NET 中,该类型的函数称为 Property。例如: Category.FunctionName(argument1, argument2, ...) = value 在该示例中,该函数要向模型写入值。 本节内容 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 在 iLogic 中使用函数 iLogic 中的 Parameter 函数 iLogic 中的特征函数 iLogic 中的零部件功能 iLogic 中的 iProperty 函数 iLogic 参考中的 Excel 数据链接函数 iLogic 中的 iPart 和 iAssembly 函数 iLogic 中的 iFeature 函数 iLogic 中的装配约束函数 iLogic 参考中的测量函数 iLogic 中的定位特征函数 iLogic 参考中的消息框函数 iLogic 中的文档函数 在 iLogic 中运行其他函数 iLogic 参考中的 BOM 表函数 iLogic 中的数学函数 标准函数和 iLogic 字符串函数 iLogic 中的变量函数 iLogic 中的材料特性函数 iLogic 中的钣金函数 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 ? ? ? iLogic 中的工程图函数 iLogic 参考中的高级工程图 API 函数 iLogic 中的高级 API 函数 父主题: iLogic 相关参考 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? iLogic 中的 Parameter 函数 iLogic 中的特征函数 iLogic 中的零部件功能 iLogic 中的 iProperty 函数 iLogic 参考中的 Excel 数据链接函数 iLogic 中的 iPart 和 iAssembly 函数 iLogic 中的 iFeature 函数 iLogic 中的装配约束函数 iLogic 参考中的测量函数 iLogic 中的定位特征函数 iLogic 参考中的消息框函数 iLogic 中的文档函数 在 iLogic 中运行其他函数 iLogic 参考中的 BOM 表函数 iLogic 中的数学函数 标准函数和 iLogic 字符串函数 iLogic 中的变量函数 iLogic 中的材料特性函数 iLogic 中的钣金函数 iLogic 中的工程图函数 iLogic 参考中的高级工程图 API 函数 iLogic 中的高级 API 函数 在 iLogic 中使用函数 将函数添加到规则 1. 从 iLogic 浏览器的“规则”选项卡或“外部规则”选项卡上选择规则。 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 2. 3. 4. 5. 6. 单击鼠标右键并选择“编辑规则”。 在“编辑规则”对话框的规则文本区域中,将光标放到您想插入函数的位置。大多数函数都是从新行上开始。 在“代码段”区域中找到函数。 双击鼠标按钮以添加函数。 如果函数包含任何参数或需要任何输入,请根据需要编辑插入的代码。 注: 若要手动添加函数,请在所需的位置键入函数。还可以复制规则中已有的函数,然后修改副本。 编辑规则中的函数 您可以使用标准文本编辑技巧编辑规则中的函数。使用规则文本区域上方的工具栏或关联菜单来辅助执行特定操作。 如果您要添加函数,有时编辑规则中已有的相似函数的副本会更快、更有效。使用“复制/粘贴”以创建可以编辑的现有函数的副本。 iLogic 中的 Parameter 函数 若要访问参数函数,请展开“代码段”区域中的“系统”选项卡下的“参数”节点。 Parameter Parameter(\ 该函数可以直接更改参数值。 在部件中,您可以访问受抑制零部件中的参数。但是,如果零部件受抑制,则无法使用指定的语句直接访问零部件参数,如下所示: PartA.ipt.d12 = 6.3 而可以使用: Parameter(\ 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 请注意,指定的是零部件名称,而不是文件名称。尽管您为该函数指定了特定的零部件编号,但是参数更改会影响该零部件的所有引用。零部件名称只是函数用来识别文件的一种方式。 如果替换了零部件,请手动重命名零部件以保留它的名称。 您还可以针对零部件名称使用 MakePath 函数: Parameter(MakePath(\ 您可以使用以下其中一个语句的语法来读取参数的当前值。 param_val = Parameter(\ param_val = Parameter(\ 如这些示例所示,参数可以在当前文档中。您可以使用从该规则中可访问的任何参数的名称。 在不受抑制的零部件中,您可以指定文件名称而不是零部件名称:您可以使用该方法来更改基础零件(并不显示为部件中的零部件)中的参数。 Parameter(\ 如果未找到参数,则 Parameter 函数会生成错误消息。可以使用以下代码抑制错误消息: Parameter.Quiet = True 如果您知道会缺少参数,可以使用该技巧,为此类情况做好准备。 访问基础零件中的参数 可以从衍生零件或部件中访问基础零件中的参数。还可以从包含由基础零件衍生的零件的部件中访问这些参数。 有时,从部件中的规则驱动基础零件中的参数非常实用。该技巧称为自上而下造型。更改基础参数时,所有衍生零件中的链接参数也会更改。 零件及其参数在“编辑规则”对话框中的“模型”树中并不始终可见。您可以使用 Parameter 函数访问它们。例如,若要更改基础零件中的参数,请使用: Parameter(\ 通常,您不需要从基础零件中读取参数值。参数已经链接到您正在操作的零件或部件中。 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 高级参数函数 使用 Parameter.Param 函数可以直接访问 Inventor 参数。从 Autodesk Inventor API 返回的对象为 Parameter 类型: param = Parameter.Param(\If (param IsNot Nothing) Then param.Expression = \ param.Tolerance.SetToDeviation(0.002 * 2.54, -0.004 * 2.54) param.Comment = \End If 您还可以使用一行代码: Parameter.Param(\ 您可以使用以下代码访问 Autodesk Inventor 参数的更多特性: param = Parameter.Param(\Parameter.Param(\ 这些函数会提供 Inventor.Parameter 类的对象。有关该类的详细信息,请参见 Inventor 编程帮助。 多值函数 使用多值函数可以访问和更改使用多值参数存储的一系列值。以下示例显示了此类函数的用法: MultiValue.SetList(“d0”, 0.5, 0.75, 1.0, 1.25) 为参数 d0 设定一系列可用的值。 MultiValue.SetList(“d0”, “3/8”, “d1 * 2”, “d1 * 3”) 设定表达式而不是值。您可以在该列表中混合使用表达式和值。 MultiValue.SetList(“filename.ipt.str0”, “Value1”, “Value2”) 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 为零件中的文本参数设定一系列值。 MultiValue.SetList(“Part1:1”, “d0”, 0.5, 0.75, 1.0, 1.25) 为零部件中的参数设定一系列值。 values = MultiValue.List(“d0”) 获取当前值列表,其中变量 values 是 VB.NET 类型 ArrayList 的对象。 MultiValue.SetValueOptions(True, DefaultIndex := 0, NumericCompare := “=”) 强制参数使用其多值列表中的值。如果您稍后更改了该多值列表,它还会将该参数的当前值设定为列表中的一个值。如果在新列表中找到了该参数值,该函数将不更改该值。 ? DefaultIndex := 0 如果当前参数值不在新列表中,该参数将设定为列表中的第一个值 (Index 0)。 ? ? NumericCompare := \ 测试是否相等。您还可以使用 \或 \。 ? MultiValue.SetValueOptions(False) 当您更改参数的多值列表时,参数的实际值不会更改。该行为是 MultiValue 的默认行为。 MultiValue.List(“MyStringParam”) = iProperties.Materials 将文本参数设定给值列表,该值列表对应于当前激活标准中可用的材料列表。 MultiValue.List(“d0”) = New Double() {0.5, 0.75, 1.0, 1.25} 使用替代方法设定值列表。 可以在描述 GoExcel.CellValues 的部分中找到使用 Microsoft? Excel 中的值的示例。 MultiValue.UpdateAfterChange = True 与将 Parameter.UpdateAfterChange 设置为“True”类似,该语法导致在通过 MultiValue.List 或 MultiValue.SetList 函数对参数值进行更改后,Inventor 模型会进行更新。 True 将导致在更改参数后,模型(文档)会进行更新。只有使用参数函数更改参数时,才会生效: ? Parameter.UpdateAfterChange = True ? 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 True 将导致在通过参数函数更改参数值后,模型(文档)会进行更新。只有使用参数函数更改参数时,才会生效。例如: ? ? Parameter.UpdateAfterChange = True ? Parameter(\= 2.5 这将更新模型。 ? 注: (\= 2.5 将不会更新模型。 ? 若要在规则的中间(更改某些参数之后)更新模型,请同时使用以下两个语句: ? RuleParametersOutput() 注: - 这会将参数局部变量的当前值指定给模型。 ? ? InventorVb.DocumentUpdate() 如果您不需要在规则的中间更新模型,可以告诉系统在运行完规则后更新。使用此语句:iLogicVb.UpdateWhenDone = True。 MultiValue.Quiet = True 抑制在找不到参数时显示错误消息。如果您知道会缺少参数,可以使用该函数,为此类情况做好准备。例如,参数可能不存在于应用该规则的部分零件中。 foundVal = MultiValue.FindValue(aList, \ 查找列表中最接近条件的值。aList 可以是 ArrayList 或 Array。用于比较的参数可以是 \、\或 \。 以下示例将查找小于或等于 4.0 的值。如果存在多个值,则返回最接近 4.0 的值。如果不存在匹配的值,该示例将返回 VB 常量 \。 foundVal = MultiValue.FindValue(MultiValue.List(\ 您可以测试该情况。 iLogic 中的特征函数 iLogic 提供了一些用于设定或读取特征抑制状态、颜色和螺纹规格的函数。 对螺纹使用特征函数以设定或读取螺纹特征或螺纹孔的特性。这些特性还显示在螺纹特征或螺纹孔的编辑对话框中。 若要访问特征函数,请展开“代码段”区域中的“系统”选项卡下的“特征”节点。 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 Feature.IsActive(使用特征名称) 设定或读取零件或部件特征的抑制状态。使用该函数可以抑制或解除抑制 Inventor 零件或部件的任何特征。当您更改特征的激活状态时,还会更改从属特征。这样便不再需要在规则中指定从属特征。 注: 手动更改特征的激活状态不会导致参考这些特征的规则自动触发。在零件中,您可以将此类规则添加到由“特征抑制更改”事件触发的规则列表中,以便自动触发这些规则。可以使用“事件触发器”命令访问该事件。 如果您在编写了包含该函数的规则后更改了特征名称,请编辑该规则。使用新名称替换旧名称。在编写规则之前更改特征名称(如果需要)。 特征名称必须始终放在引号中。 语法 Feature.IsActive(“featurename”) 示例 if bracket_width >= 3 then Feature.IsActive(\Feature.IsActive(\else Feature.IsActive(\end if Feature.IsActive(使用零部件名称和特征名称) 函数 Feature.IsActive 的该变体通过指定零部件和特征名称,可以设定或读取零件或子部件中特征的抑制状态。从部件级规则中,使用该语法可以控制零件中特征的激活状态。 语法 Feature.IsActive(“componentname”, “featurename”) 示例 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 设定抑制状态: Feature.IsActive(\ 读取抑制状态: MyBooleanParameter = Feature.IsActive(\ Feature.Color 通过指定特征名称,设定或读取零件特征的颜色。该函数对部件特征不起作用。 颜色值是文本字符串。必须将该文本包含在引号中。该值还必须与当前 Autodesk Inventor 文档的激活标准中的可用颜色在拼写和大小写方面完全匹配。 语法 Feature.Color(\ 示例 若要设定颜色: Feature.Color(\ Feature.Color(\\ 若要读取颜色: MyStringParameter = Feature.Color(\ 通过指定零部件名称和特征名称来设定或读取子部件或零件特征的颜色。 Feature.Color(\ Feature.ThreadDesignation 设定或读取零件或部件文档中的螺纹特征的螺纹规格。螺纹规格是文本字符串。必须将它指定为与螺纹特征编辑对话框的“规格”字段中所显示的字符串完全匹配。 对于锥螺纹,请指定将在“螺纹”对话框的“大小”字段中显示的值。该值通常是完整螺纹规格的缩写版本。 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 语法 Feature.ThreadDesignation(\ (可选)使用以下语法来显示当前螺纹规格(使用设定螺纹规格所需的格式)。 threadDes = Feature.ThreadDesignation(\ 使用规则为孔设定螺纹规格时,孔尺寸会自动调整。 对于螺纹杆,您可以使用规则同时更改杆直径和螺纹规格。杆直径必须符合螺纹规格。 示例 If rod_type = \ Feature.ThreadDesignation(\rod_diameter = 0.375 ElseIf rod_type = \ Feature.ThreadDesignation(\rod_diameter = 0.500 End If 您还可以从部件级规则中设定或读取零件或部件文档中的螺纹特征的螺纹规格。指定零部件名称或文件名称以及螺纹特征名称: Feature.ThreadDesignation(\\ Feature.ThreadDesignation(\ Feature.SetThread 对孔或螺纹特征进行主要更改。设定类型、规格和公差等级。使用该函数可以在英制和公制螺纹之间切换。您无法在直螺纹和锥螺纹之间切换。 注: 对于锥螺纹,使用空字符串 (\替换螺纹公差等级。并且使用“尺寸”而不是“规格”。 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 语法 Feature.SetThread(\class\ 还可以使用以下语法对零部件中的孔或螺纹特征进行主要更改。 Feature.SetThread(\designation\ Feature.ThreadType 获取孔或螺纹特征的螺纹类型。例如,“ANSI 统一标准螺钉螺纹”、“ANSI 公制螺纹规格”等。若要更改类型,请使用 SetThread,同时设定规格和级别。 语法 currentType = Feature.ThreadType(\ 还可以使用该语法来获取零部件中的孔或螺纹特征的螺纹类型: currentType = Feature.ThreadType(\ Feature.ThreadClass 设定孔或螺纹特征的螺纹公差等级。数值越大,精确度越高。 语法 Feature.ThreadClass(\ 使用该语法可以获取孔或螺纹特征的螺纹公差等级: currentClass = Feature.ThreadClass(\ 使用该语法可以设定零部件中的孔或螺纹特征的螺纹公差等级。 Feature.ThreadClass(\ 注: 不能应用于锥螺纹。 获取零部件中的孔或螺纹特征的螺纹公差等级。 currentClass = Feature.ThreadClass(\ iLogic 中的零部件功能 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 iLogic 提供了一些用于设定或读取零部件抑制状态和颜色的规则函数,还提供了一个用于使用其他零部件替换一个零部件的函数。这些函数对于驱动不同的零件或部件配置非常有用。 您可以创建模型(零件或部件),其中包含表达所有可能有效的产品配置所需的零部件。该方法称为“超级造型”。当零件或零部件太复杂或太多,超级造型变得不可行时,请使用 Component.Replace 函数。 若要访问零部件函数,请展开“代码段”区域中的“系统”选项卡下的“零部件”节点。 零部件命名 在规则中参考名称之前,请自定义所有零部件名称。当您更改 Autodesk Inventor 为零部件指定的默认名称时,确保这些名称不会随参考的 .ipt 或 .iam 文件更改而更改。 您可以将零部件改回初始名称,并保留这种稳定性。若要更改零部件,请对名称进行小改动,然后再将它改回初始名称。 对于资源中心零部件,应用 Component.IsActive 函数和 Component.Replace 函数时需要更改名称。 Component.IsActive 设定或读取部件的抑制状态和 BOM 表结构。使用该函数可以从部件配置中引入零部件或从中排除零部件。 该函数适用于单个零部件或零部件阵列。应用于阵列时,请使用阵列名称。阵列必须与规则位于同一个部件等级上并且不在子部件中。 请勿抑制子零部件。另一个好方法是从零部件中的规则中执行抑制。 例如,名为 TopAssembly 的部件包含 SubAssembly:1,并且该子部件包含 SamplePart:1。 使用 SubAssembly 中的规则可以抑制 SamplePart:1。该规则可以包含用于驱动抑制状态的参数,您可以使用 TopAssembly 中的规则驱动该参数。 当您使用 iLogic 抑制零部件时,零部件的 BOM 表结构将设定为“参考”。该操作可以防止零部件显示在 BOM 表中。零部件会显示在“模型数据”视图中,但是不显示在“装配结构”或“仅零件”视图中。如果解除抑制零部件,iLogic 会将零部件返回抑制前的状态(“普通件”、“不可拆分件”、“外购件”或“虚拟件”)。 使用 iLogic 规则更改部件的抑制状态之前,请创建并激活新的自定义详细等级。 语法 Component.IsActive(\ 示例 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 您可以使用 1 代替 true,使用 0 代替 false。 若要设定抑制状态和 BOM 表结构: Component.IsActive(\Component.IsActive(\Component.IsActive(\Component.IsActive(\ 若要读取抑制状态和 BOM 表结构: MyBooleanParam = Component.IsActive(\If Component.IsActive(\' do something End If Component.iComponentIsActive 该函数是 Component.IsActive 的变体,可以设定或读取 iPart 或 iAssembly 零部件的抑制状态。如果您未手动更改零部件名称,则 iPart 和 iAssembly 需要使用该特定语法。 建议您更改零部件名称。如果要更改零部件名称,请使用 Component.IsActive,而不是该函数。 语法 Component.iComponentIsActive(“iPartParentName:1”) iPartParentName 不带 .ipt 文件扩展名的工厂零件名称。 Component.Color 设定或读取零部件的颜色。 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 语法 Component.Color(“iPartA:1”) 示例 设定颜色: Component.Color(\ Component.Color(\Component.Color(\ 读取颜色: MyStringParameter = Component.Color(\ Component.Visible 设定或读取零部件的可见性。该函数不会更改零部件的 BOM 表结构。 语法 Component.Visible(\ 示例 设定可见性: Component.Visible(\Component.Visible(\ 读取可见性: parameter = Component.Visible(\parameter = Component.Visible(\ If Component.Visible(\do something End If 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 Component.SkipDocumentSave 指定在零部件文档发生更改然后又被规则抑制后,是否保存该文档。 语法 Component.SkipDocumentSave = True 设定为 True 时,将不保存零部件文档。 默认值为 False (Component.SkipDocumentSave = False);将保存零部件文档。 Component.Replace 使用其他零件或子部件替换一个零件或子部件。该函数还可以用于替换零部件阵列。 在要交换的零部件中使用 iMate 以保持装配约束固定不变。您可以为零件交换零件,为部件交换零件,或为零件交换部件。 该功能将在多个文件夹中搜索要用作替换的文件: ? ? ? 要替换的零部件文档所在的文件夹 部件文档所在的文件夹 当前项目的工作空间文件夹 文件名可以是相对路径(相对于其中任意搜索位置)。 注: 使用该函数之前,“稳定”零部件名称以防止它在交换时发生更改。若要稳定零部件名称,请将它更改为其他名称。甚至可以先更改它,然后再将它改回初始名称,以使其稳定。如果未成功稳定该名称,替换操作会将零部件更改为与其他名称匹配。再次运行该规则时,它将无法找到该零部件。 语法 Component.Replace(“ComponentToReplaceName”, “OtherPartfilename.ipt”, ComponentToReplaceName 要替换的零件或子部件的名称。 OtherPartfilename 要用作替换的零件或部件。 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 将该布尔值设定为 True,以替换该零部件的所有引用。将该值设定为 False,以仅替换单独命名的引用。 示例 If PartType = \ Component.Replace(\ElseIf PartType = \ Component.Replace(\End If Component.Replace(使用指定的详细等级) Component.Replace 函数的该变体使用特定详细等级的其他零部件来替换部件中的某个零部件。 语法 Component.Replace(\Detail>\ 在该函数中, 您还可以使用其他详细等级的相同子部件来替换子部件。 Component.ReplaceiPart 必须对具有自定义参数的 iPart 使用该函数;还建议对标准 iPart 使用该函数。当零部件是 iPart 时,使用该函数而不是 Component.Replace。替换后,您可以使用 iPart.ChangeRow 或 iPart.FindRow 来更改特定的 iPart 配置。 对于具有自定义参数的 iPart,请在 rowNumber 后列出自定义参数的值。这些值必须按照在表中被找到的顺序列出。 语法 Component.ReplaceiPart(\ 使用 rowNumber 替换零部件,同时选择 iPart 行。 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 示例 若要设定自定义参数,请在规则中的 Component.ReplaceiPart 中重复自定义值,然后在 iPart.ChangeRow 或 iPart.FindRow 中重复自定义值。 对于 ChangeRow: Component.ReplaceiPart(\rowNumber, customParam1, customParam2) iPart.ChangeRow(\rowNumber, customParam1, customParam2) 对于 FindRow: Component.ReplaceiPart(\rowNumber, customParam1, customParam2) i = iPart.FindRow(\\\3.0, \customParam1, customParam2) MakePath 定义子部件中零部件名称的路径。若要指定路径,请按照子部件在树中的显示顺序列出所有子部件等级。如果您想指定的零部件名称与部件中其他地方的零部件名称相同,则需要该函数。 语法 MakePath(“SubassemblyComponentName”,“PartComponentName”) 示例 Component.Color(MakePath(\ Component.IsActive(MakePath(\\2:1\ iLogic 中的 iProperty 函数 iLogic 提供了一些规则函数,用于设定或获取 Inventor 零件、部件和工程图文档的 iProperty。当使用规则将设计更改或修改为新配置后,保持设计文档的 iProperty 最新。iProperty 必须是最新的,以便 BOM 表是正确的。还可以使用规则读取文档的 iProperty 值并对这些值响应。例如,您可以使用规则在材料特性 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 被更改后更改零件的厚度。如果零件的质量超过了最大值或最小值,规则可能会引发更改。使用规则可以设定或读取任何可以手动设定的 iProperty。 若要访问 iProperty 函数,请展开“代码段”区域中的“系统”选项卡下的“iProperty”节点。 iProperties.Value 语法 iProperties.Value(\ 读取或设定包含规则的文档中的特性值。 iProperties.Value(\ 在部件级规则中使用该函数,可以访问零件或子部件的 iProperty。 如果零件或子部件的文件名称进行了更改,规则文本也必须进行更改。 最好使用零部件名称(在自定义零部件名称之后),而不是文件名。 iProperties.Value(\name\ 设定或读取零部件中的特性值。该函数使用零部件名称而不是文件名。自定义零部件名称(更改初始默认名称),以便该名称在文件参考发生更改时不发生更改。 示例 设定 iProperty 值: iProperties.Value(\ 读取 iProperty 值: MyStringParam = iProperties.Value(\ 设定自定义 iProperty 值: iProperties.Value(\ iProperties.Value(\\= \Inc\'text type iProperties.Value(\\= CDate(\' date type iProperties.Value(\ 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 读取自定义 iProperty 值: age = iProperties.Value(\ company = iProperties.Value(\thedate = CStr(iProperties.Value(\insured = iProperties.Value(\ 注意事项 ? ? 大多数特性都是文本字符串。 名称中包含 date 的特性是日期。在规则中,这些特性可以读取到 VB.NET 类型 Date 的局部变量中并由这些变量设置。通常,您不需要知道特性类型,因为 VB.NET 会自动转换该值。 “预估成本”特性(在“项目”下)是一个数字。 ? “设计状态”特性(在“状态”下)是一个特例。使用数字,即使它在 iProperty ? 编辑器中显示为一列选项。以下示例使用了临时变量。 Work_In_Progress = 1 Pending = 2 Released = 3 iProperties.Value(\ ? 过时的函数 以前的 iLogic 版本使用以下函数从部件中的零件获取 iProperty: iProperties.ValueInDoc(\ 参考文件名。 iProperties.ValueInComponent(\\ 参考零部件名称。 尽管“编辑规则”对话框的“代码段”区域中已不再包含这些函数,但是仍可以在规则中使用它们。但是,建议优先使用 iProperties.Value 函数而不是那些过时的函数。 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 iProperties.StylesInEnglish 该函数支持在不同语言版本的 Autodesk Inventor 中使用相同的文档。当您对规则中的材料和颜色使用英文名称时,模型的可移植性更强。如果您将该函数设置为 True,则用于返回任何材料或颜色名称的任何函数都返回英文名称。您可以使用以 Autodesk Inventor 安装语言表示的名称来设定材料或颜色名称。但是建议您使用英文名称以保持一致。当您将 iProperties.StylesInEnglish 值设置为 True 时,以下函数将返回英文名称。 ? ? ? ? ? ? iProperties.Material iProperties.MaterialOfComponent iProperties.Materials iProperties.PartColor Feature.Color Component.Color iProperties.Material 设定或读取文档的材料。 设定材料时,请使用与激活的标准物理材质列表中所显示的名称完全一样的材料名称(区分大小写)。材料值始终为文本字符串,且包含在引号中。 示例 若要设定材料: iProperties.Material = \ 若要读取材料: MyStringParam = iProperties.Material iProperties.Material(“filename.ipt”) 通过指定文件名设定或读取部件中的零件材料。 iProperties.Material(“componentName:1”) 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 在部件级规则中使用该函数,可以通过指定零部件名称访问部件中的零件材料。 iProperties.PartColor 设定或读取零件的当前颜色。零件颜色值是文本字符串,并包含在引号中。更改颜色不会影响当前的材料值。 该函数仅适用于零件。 示例 若要设定颜色: iProperties.PartColor = \iProperties.PartColor = \ 若要读取颜色: MyStringParam = iProperties.PartColor iProperties.Mass 读取或写入包含该规则的零件或部件文档的质量。 如果写入质量,写入值会替代计算的质量。若要恢复计算的值,请将质量设定为 -1。 iProperties.Mass(“filename.ipt”) 通过指定文件名,读取或写入部件中的零件或子部件的质量。 iProperties.Mass(“component name:1”) 通过指定零部件名称,读取或写入部件中的零部件的质量。还可以使用该函数读取或写入虚拟零部件的质量。 示例 若要读取质量: MyMassParam = iProperties.Mass MyMassParam = iProperties.Mass(\MyMassParam = iProperties.Mass(\ 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 若要设定质量(替代自动计算值): iProperties.Mass = 3 kg iProperties.Mass(\iProperties.Mass(\ massiProperties.Mass = -1 'set the mass back to automatic calculation iProperties.Volume 读取或设定包含该规则的文档的体积。 iProperties.Volume(“filename.ipt”) 通过指定文件名,读取或写入包含该规则的零件或子部件的体积。 iProperties.Volume(“component:1”) 通过指定零部件名称,读取或写入部件中的零部件的体积。还可以使用该函数读取或写入虚拟零部件的体积。 示例 若要读取体积: MyVolumeParam = iProperties.Volume MyVolumeParam = iProperties.Volume(\MyVolumeParam = iProperties.Volume(\ 若要设定体积(替代自动计算值): iProperties.Volume = 12.4 in^3 iProperties.Volume(\iProperties.Volume(\ iProperties.Volume = -1 'set it back to automatic calculation 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 iProperties.CenterOfGravity 读取包含该规则的文档中的模型重心。 语法 pt = iProperties.CenterOfGravity pt 表示 Inventor.Point 类型,Inventor API 的帮助中对此进行了描述。您可以读取该点的 X、Y 和 Z 值(用规则文档的单位表示)。 cx = pt.X cy = pt.Y cz = pt.Z pt = iProperties.CenterOfGravity(\ 通过指定零部件名称,读取部件中的零部件重心。 iProperties.Area 读取包含该规则的文档中的模型曲面面积。 语法 surfaceArea = iProperties.Area surfaceArea = iProperties.Area(“component:1”) 通过指定零部件名称,读取部件中的零部件的曲面面积。 iLogic 参考中的 Excel 数据链接函数 iLogic 提供了一些用于读取和写入 Microsoft? Excel 电子表格文档的规则函数。若要访问 Excel 数据链接函数,请展开“代码段”区域中的“系统”选项卡下的“Excel 数据链接”节点。 提供了以下两种类型的 Excel 数据链接函数: ? ? 用于从表中读取数据的函数 用于从特定的单元格读取和写入数据的函数 若要读取和写入其他文件格式,请将自定义 VB.NET 代码添加到规则中。 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 使用专用函数 ThisBOM.Export 将部件 BOM 表导出为 Microsoft? Excel 和其他格式。 指定 Excel 文件 您可以将 Microsoft? Excel 数据嵌入或链接到 Autodesk Inventor 文档,或者将其保留为外部文件。该函数需要文件名,或者链接式或嵌入式 Excel 文件的规格。 如果需要文件名,您可以指定相对路径或绝对路径。但是,使用绝对路径可能会导致难以将模型发送给其他计算机上的其他用户。如果未指定路径,iLogic 会假定 Excel 文档位于当前 Inventor 文档所在的文件夹中。相对路径将被解释为相对于包含该 Inventor 文档的文件夹。 iLogic 还会在项目工作空间路径下搜索文件。您可以使用项目工作空间路径下的相对路径。 支持的文件扩展名包括 .xls、.xlsx、.xlsm 和 .xlsb。 您还可以指定链接式或嵌入式电子表格,而不是文件名。针对嵌入式电子表格使用语法 3rd Party:Embedding#。 针对链接式电子表格使用语法 3rd Party:LinkedName.xls。指定在 Autodesk Inventor 模型树中“第三方软件”下显示的名称。 如果使用嵌入式表,请使用“参数”对话框上的“链接”嵌入该表。请勿更改 Autodesk Inventor 为嵌入式表指定的默认名称(例如,Embedding 1)。GoExcel 需要初始名称。 注: 请勿在语法 3rd Party:Name 中的 : 字符后添加空格。 若要链接文件,请单击“管理”选项卡 对话框中的“链接”。 “插入”面板 “插入对象”,或者使用“参数” GoExcel.FindRow 根据一个或多个列值条件搜索行。 语法 GoExcel.FindRow(\ to look for, \title\ ”filename” 指定数据文件。 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 ”sheetname” 包含要搜索的表的 Excel 文档中的工作表。该工作表可以是现有的任意工作表。 ”first column title” 要搜索的表中的第一列的标题。列标题通常放在第 1 行中,并且从 A 列开始。 ”operator” 可能值包括: ? <= 查找列值小于或等于指定值的行。 ? ? >= 查找列值大于或等于指定值的行。 ? ? = 查找文本或数字列值等于指定值的行。 ? value to look for 可以使用明确的值、参数或局部变量指定的文本值或数字值。 ”second column title” 要搜索的表中的第二列的标题。 ”operator” <=、>= 或 = value to look for ”third column title” 根据多个条件查找行。 返回值 符合搜索条件的行号(整数)。如果找不到符合条件的行,则该值为 -1。 可能的错误 ? ? ? ? 找不到文件 找不到工作表名称 找不到列名称 输入值是错误的类型(不符合列值类型) Excel 表要求 ? 表配置必须是水平的(按行而不是按列定义的配置)。 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 ? ? 列的第一个单元格必须是标题。 查询值可以是数字或文本。 示例 这些示例将参数变量 i 的值设为表中的行号。Dia 等于 0.2,Len 大于或等于 4.1。第一个示例参考了外部电子表格,第二个示例参考了嵌入式电子表格。 i = GoExcel.FindRow(\\\\0.2, \\ i = GoExcel.FindRow(\0.2, \ 在这些示例中,第 5、6 和 7 行符合第一个条件 Dia=.2。但是,只有第 7 行同时符合条件 Dia=.2 和 len>=4.1。 GoExcel.CurrentRowValue 读取使用 GoExcel.FindRow 函数找到的行中的值。 语法 GoExcel.CurrentRowValue(\ ”column name” 用于要从当前行检索的单元格值的列标题名称。 返回值 当前行(先前使用 GoExcel.FindRow 函数找到的行)的列中的单元格值。 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 错误 如果未找到列,则返回错误消息。 示例 i = GoExcel.FindRow(\\\\screw_length_required) thread_diameter = GoExcel.CurrentRowValue(\screw_length = GoExcel.CurrentRowValue(\head_diameter = GoExcel.CurrentRowValue(\head_thickness = GoExcel.CurrentRowValue(\socket_size = GoExcel.CurrentRowValue(\thread_pitch = GoExcel.CurrentRowValue(\ GoExcel.CellValue 读取电子表格单元格的值或将值写入电子表格单元格。 语法 GoExcel.CellValue(\ ”filename” 请参见“指定 Excel 文件”。 ”sheetname” 包含目标单元格的 Excel 文档中的工作表名称。该工作表可以是现有的任意工作表。 ”cell number” 要读取或写入的单元格地址(例如“A7”)。您还以指定工作表内的特定范围。 返回值 ? 单元格值 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 ? 出错时不进行任何指定。 错误 ? ? 找不到文件 找不到工作表名称 Excel 表格式要求 单元格值可以是数字或文本。 示例 读取嵌入式电子表格: head_rad = GoExcel.CellValue(\Party:Embedding 4\\ 写入嵌入式电子表格: GoExcel.CellValue(\Party:Embedding 4\\\head_rad 读取外部电子表格: head_rad = GoExcel.CellValue(\message =GoExcel.CellValue(\ 写入外部电子表格: GoExcel.CellValue(\\\= \World\GoExcel.Save 注: 需要使用 GoExcel.Save 保存对电子表格所做的更改: GoExcel.CurrentCellValue, GoExcel.CellValue 继使用 GoExcel.CellValue 或 GoExcel.Open 函数之后,从电子表格中的特定单元格地址读取值或向特定单元格地址写入值。该函数使用先前打开的文件和工作表。 语法 GoExcel.CurrentCellValue(\ GoExcel.CellValue(\ (without specifying a filename and sheet name) 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 ”cellnumber” 单元格地址或特定的单元格值范围,用于从当前电子表格读取值或向其中写入值。 返回值 指定的单元格号中的单元格值。 错误 ? ? 未指定出错时的返回值 错误消息显示 示例 从一个电子表格读取一系列单元格: head_rad = GoExcel.CellValue(\head_thick = GoExcel.CellValue(\pin_length = GoExcel.CellValue(\shaft_rad = GoExcel.CellValue(\ 在电子表格文档中写入一系列单元格: GoExcel.CellValue(\GoExcel.CellValue(\GoExcel.CellValue(\GoExcel.CellValue(\GoExcel.Save GoExcel.NameRangeValue 用法与 CellValue 函数类似。不再使用单元格地址,而是指定在 Excel 工作簿中定义的特定范围。该名称必须是工作簿中的名称,该范围必须限定为一个单元格。您可以使用标准 CellValue 语法(使用名称而不是单元格地址)访问工作表内的特定范围。 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 在规则中使用 NamedRangeValue 之前,先使 用 GoExcel.CellValue 或 GoExcel.Open 打开 Excel 文件。 语法 GoExcel.NamedRangeValue(\ GoExcel.Open 打开指定的 Excel 电子表格,还可以激活特定的工作表。然后,可以使 用 GoExcel.FindRow 和 GoExcel.CellValue 等函数从工作表中提取信息或修改工作表。 语法 GoExcel.Open(\name\ ”filename” 请参见“指定 Excel 文件”。 ”sheetname” 要激活的 Excel 文档中的工作表名称。该工作表可以是现有的任意工作表。 返回值 N/A 错误 未找到 Excel 文件。 示例 当未指定工作表名称时,将假设工作表名称为“Sheet1”。 GoExcel.Open(\ 还可以指定其他工作表。 GoExcel.Open(\ GoExcel.Save 保存当前的 Excel 文档。如果您使 用 GoExcel.CellValue 或 GoExcel.CurrentCellValue 函数修改了单元格,请使用该函数。 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 返回值 N/A 错误 N/A 示例 GoExcel.CellValue(\World!\ GoExcel.CellValue(\GoExcel.Save GoExcel.CellValues 该函数有两个用途: ? ? 从 Excel 电子表格中的指定单元格范围读取值,并将这些值指定给多值列表。 从多值列表获取值,然后将这些值写入到 Excel 电子表格中的指定单元格范围。 从 Excel 电子表格读取 您可以从垂直方向的单元格范围读取。该函数将从第一个单元格开始持续向下读取值,直到到达函数中指定的第二个单元格为止: Multivalue.List(\= GoExcel.CellValues(\\ 如果空字符串 (\代替了第二个单元格地址,将从第一个单元格地址开始持续向下读取值,直到遇到一个空单元格为止: Multivalue.List(\= GoExcel.CellValues(\\ 您可以从水平方向的单元格范围读取: Multivalue.List(\= GoExcel.CellValues(\\ 如果先前在规则中参考了电子表格,您还可以省略文件名和工作表名称: 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 Multivalue.List(\ 写入 Excel 电子表格 您可以将值写入垂直方向的单元格范围。该函数将从第一个单元格开始持续向下写入值,直到到达函数中指定的第二个单元格为止: GoExcel.CellValues(\Multivalue.List(\ 您可以将值写入垂直方向的单元格范围。如果空字符串 (\代替了第二个单元格地址,iLogic 将使用与多值列表成员数相同的单元格来包含这些成员。 GoExcel.CellValues(\Multivalue.List(\ 您可以将值写入水平方向的单元格范围: GoExcel.CellValues(\Multivalue.List(\ 如果先前在规则中参考了电子表格,您还可以省略文件名和工作表名称: GoExcel.CellValues(\ GoExcel.Close 关闭当前的 Excel 电子表格。 GoExcel.TitleRow 用在 GoExcel.FindRow 之前,用于指定电子表格中包含列名称的行的行号。默认行号为 1。如果在列名称行上方有额外的行,请更改该值。 示例 GoExcel.TitleRow = 2 GoExcel.FindRowStart 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 用在 GoExcel.FindRow 函数之前,用于指定电子表格中包含数据的第一个行的行号。默认的行号为 2。 语法 GoExcel.FindRowStart = 开始有数据的行。 示例 默认值 2 表示数据从第 2 行开始,跟在一个标题行之后: GoExcel.FindRowStart = 2 如果有两个标题行,请在规则中包含 GoExcel.FindRow 的语句之前添加以下语句: GoExcel.FindRowStart = 3 GoExcel.ChangeSourceOfLinked 用于从 iLogic 规则中访问“更改源”操作。 该函数使用其他电子表格替换当前驱动模型的 Excel 电子表格。然后新电子表格中包含的值将驱动模型的尺寸。 注: 从链接式 Excel 电子表格的关联菜单中,该函数还可以用作手动操作。 语法 changeOK = GoExcel.ChangeSourceOfLinked(partialOldName, newName) partialOldName 要替换的电子表格名称部分。 partialOldName 可以是空字符串 \,以匹配第一个链接式 Excel 文件。通常,零件或部件只有一个 Excel 文件。 newName 完整的新电子表格名称,可以是绝对文件名也可以是相对文件名。 示例 If size = \ changeOK = GoExcel.ChangeSourceOfLinked(\ 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 ElseIf size = \ changeOK = GoExcel.ChangeSourceOfLinked(\\ElseIf size = \ changeOK = GoExcel.ChangeSourceOfLinked(\End If GoExcel.Tolerance 与 GoExcel.FindRow 函数一起使用,用于搜索某个范围内的值,而不是一个确切值。默认公差为 0.0000001 并且与文档单位无关。 语法 GoExcel.Tolerance = 您可以使用以下语句进行搜索: GoExcel.Tolerance = 0.001 i = GoExcel.FindRow(\ 该语句将变为与以下不使用公差的搜索语句等效: i = GoExcel.FindRow(\\\\2.299, \ GoExcel.DisplayAlerts 防止显示 Excel 提示对话框。 语法 GoExcel.DisplayAlerts = True GoExcel.DisplayAlerts = False 声明:此文章是从inventor2016版官方在线帮助的网页中复制下来的,只是为了学习方便,仅供参考。 True 显示 Microsoft? Excel 提示(默认)。 False 不显示 Excel 提示。 GoExcel.Application 访问 Excel 应用程序对象。仅当您接触过 Excel COM 界面时才可使用该函数。在规则中使用该函数之前,请调用另一个 GoExcel 函数以初始化该应用程序。 语法 excelApp = GoExcel.Application iLogic 中的 iPart 和 iAssembly 函数 使用 iPart 和 iAssembly 函数可驱动部件中的 iPart 和 iAssembly 配置。您可以使用规则根据定义的条件和逻辑,更改 iPart 和 iAssembly 的当前配置。 这些函数用于 iAssembly 的方式与用于 iPart 的方式一样,但是,自定义参数只能用于 iPart。若要对 iAssembly 使用该函数,您还可以在指定函数时使用 iAssembly 替换 iPart。 若要访问 iPart 和 iAssembly 函数,请展开“代码段”区域中的“系统”选项卡下的“iPart”节点。 还有用于 iFeature 的相似函数。详细信息,请参见 iFeature 函数。 iPart.ChangeRow 更改 iPart 或 iAssembly 表中的激活行。 语法 iPart.ChangeRow(\ “iChangedComponentName:1” 零部件名称,与在 Autodesk Inventor 部件浏览器中显示的名称一样。更改 Inventor 指定的默认零部件名称以稳定该名称,并防止在选择表中的其他行时该名称发生更改。 “memberName”