评估表达式

如果要评估表达式,即检查应用程序的结果,请使用此工具。表达式可以包含之前工具的数字和字符串结果或已手动指定的值。您可以使用各种表达进行评估。请参阅表达式部分以了解可能使用的表达式的详细说明。

与其他 MERLIC 工具不同,此工具在插入时不具备任何默认参数。如果想要在表达式中使用参数,您需要手动将它们添加到工具。请参阅添加参数部分,了解更多信息。

此工具不显示图形窗口,而是显示可在其中定义表达式的输入字段。已评估表达式的结果在工具底部返回。工具在插入时不具备任何默认参数。

输入表达式

在表达式输入字段中键入时,会弹出一个自动完成列表,其中包含与输入内容匹配的可能函数和运算符。该列表还包含手动添加的参数和以前定义的结果。这意味着您可以在此工具的后续表达式中使用此工具中之前表达式的结果,例如,在第三个表达式中使用第一个表达式的结果。但是,无法在前一个表达式中使用后一个表达式的结果,例如,在第一个表达式中使用第三个表达式的结果。

要直接从整个列表浏览,请使用快捷键 CTRL+Space 手动打开该弹出窗口。请查看运算符类型部分,了解有关可能的函数和运算符的更多信息。

在这个图像中,您可以看到通过 CTRL+Space 手动打开的弹出列表,其中包含所有可能的函数和运算符。在列表顶部,您可以看到第一个表达式“NumberMissing”的结果和参数“Region_Accepted”。

添加、删除和移动表达式

您可以手动添加和删除其他表达式。要添加表达式,单击 工具工作区 底部的“ 添加表达式”按钮。单击输入字段右侧的 按钮可以删除表达式。

或者,右键单击 工具工作区 底部的结果并选择“删除”也可以删除结果及其相应的表达式。

您可以通过拖放的方式来移动已添加的表达式,以改变表达式的顺序,例如,为了在下一个表达式中使用上一个表达式的结果。为此,选择要移动的表达式,将其拖动到所需位置,然后将其放在新位置。

对于每个新表达式,都会创建一个新结果,并在工具底部返回。您可以通过双击工具底部的结果名称来重命名结果。要了解关于工具参数和结果允许使用的命名约定的信息,请参阅重命名工具和连接器主题。

您可以隐藏结果,例如,如果有未连接到任何其他工具并且只在 工具流程 后面的表达式中使用的中间结果。右键单击要隐藏的结果,然后选择“隐藏”。要显示隐藏的结果,使用结果右侧的 按钮。

参数

此工具不具备任何默认参数。因此,在插入此工具时不会显示任何参数。如果想要在表达式中使用参数值,您可使用前一工具的结果值,或为工具定义新的参数。

受支持的语义类型

此工具支持以下语义类型的参数:

  • 任意
  • 双精度浮点数
  • 长整数
  • 字符串

尽管此工具尚不完全支持 MERLIC 中可用的所有语义类型,您仍可使用前一工具的任何数字或字符串结果,即使此结果的语义类型不受支持,例如,“工具状态”。但是,如果创建了到此类结果的连接,相应新参数的语义类型会被转换并设为“任意”。

由于“长整数”语义类型表示具有更大取值范围的整数,我们在以下说明中仍将其称为整数。

添加参数

使用前一工具的结果作为参数

要在表达式中使用前一工具的结果,您需要将结果连接至“评估表达式”工具。

  1. 转到想要在“评估表达式”工具中将其结果用作参数的前一工具。
  2. 将所需工具结果的连接箭头拖至连接的放置目标。此外,您还可打开上下文菜单并单击菜单条目“连接至”。
  3. 选择“评估表达式”工具并单击菜单条目“< 添加连接 >”。

已连接的结果会立即作为“评估表达式”工具的新参数添加。参数的名称和语义类型将自动从已连接结果获取。如果此工具不支持已连接结果值的语义类型,则会为新参数自动设为“任意”。

此外,您还可按如下所述在工具中定义新参数,然后将新参数连接至前一工具的结果。

定义新参数

要定义新参数,您必须添加新的连接器并定义参数设置。

  1. 单击工具面板左上方的 按钮。此时会打开用于定义参数设置的对话框窗口。
  2. 在对话框窗口中选择新参数的语义类型。
  3. 还可选择定义新参数的最小值和最大值。
  4. 单击“确定”以确认您的设置。新参数会立即使用默认名称添加。
  5. 可选择通过双击参数名称来重命名该参数。要了解关于工具参数和工具结果允许使用的命名约定的信息,请参阅重命名工具和连接器章节。
  6. 在连接器定义新参数的值。

保存参数的语义类型和取值范围后,不可以再次更改这些设置。如果您需要调整参数的语义类型或取值范围,您必须使用所需的设置添加另一个新参数。

示例

以下示例视频显示如何在表达式中使用前一工具的结果和新定义的参数值。

表达式

要评估的表达式必须在工具面板的输入字段内定义。只要尚未定义任何表达式或如果定义了无效的表达式,MERLIC 会在 工具面板工具流程 面板中显示错误。但是,此错误仅因缺少表达式或表达式错误而引发。它不提示关键工作区错误。因此,“工具状态”结果在此情况下仍返回“[0; OK]”。

表达式可应用于数字值、字符串值以及混合元组。要将工具参数值用于评估,请在表达式的输入字段中输入参数的名称。还可以定义没有任何参数的表达式。

评估方向

表达式的评估通常从左至右进行。但是,如果在表达式中使用了圆括号,可能会更改评估的顺序。

运算类型

运算通常在描述时假定原子元组 元组是一系列元素,例如数值和字符串。,即长度为 1 的元组。如果元组包含多个元素,大多数运算会按以下方式工作:

  • 如果其中一个元组的长度为 1,则其他元组的所有元素将与该单个值相组合以用于选定的运算。
  • 如果两个元组的长度都大于 1,则两个元组必须具有相同的长度(否则将发生错误)。在此情况下,选定的运算会应用到具有相同索引的所有控件。作为结果的元组与输入元组的长度相同。
  • 如果其中一个元组的长度为 0 ([]),则会发生错误。

我们在下文中介绍可以在表达式中使用的各种运算。

使用特殊字符

此工具使用单引号表示字符串。但是,如果特殊字符使用单引号,那么对应字符应使用反斜杠进行转义,例如,'\t' 被处理为制表符。

结果

基本结果

结果

此结果返回生成的表达式的值。默认情况下,这是第一个表达式的结果。每个其他表达式都会返回一个其他结果。结果的语义类型设置为“任意”。

工具状态

工具状态”返回有关工具状态的信息,因此可用于处理错误。请参阅主题工具状态结果,了解关于不同工具状态结果的更多信息。

其他结果

处理时间:

此结果返回最近一次执行工具的持续时间(以毫秒为单位)。该结果作为附加结果提供。因此,默认情况下它是隐藏的,但是可以通过工具结果旁边的 按钮显示。有关更多信息,处理时间请参工具参考中所阅部分。

应用程序示例

此工具用于以下 MERLIC Vision App 示例:

  • adapt_brightness_for_measuring.mvapp
  • calibrate_for_ruler_changed_distance.mvapp
  • calibrate_for_ruler_distorted.mvapp
  • calibrate_for_ruler_simple.mvapp
  • check_bent_leads.mvapp
  • check_correct_filling_on_3d_height_images.mvapp
  • check_pen_parts.mvapp
  • check_presence_of_fuses.mvapp
  • check_saw_angles.mvapp
  • check_single_switches.mvapp
  • classify_pills.mvapp
  • count_bottles_with_deep_learning.mvapp
  • detect_only_scratches_with_photometric_stereo.mvapp
  • detect_scratches_on_metal.mvapp
  • determine_circle_quality.mvapp
  • evaluate_ecc_200_print_quality.mvapp
  • find_and_count_screw_types.mvapp
  • measure_distance_segment_circle_calibrated.mvapp
  • measure_distance_to_center_led.mvapp
  • recognize_color_of_cables.mvapp
  • segment_pill_defects.mvapp
  • segment_pills_by_shape.mvapp