return = opinfo(param, source_op, mode)

Mastercam 2017之前的版本中,若需获取 Z 轴的最大值与最小值,通常需借助缓冲区(buff)机制实现。具体步骤包括预先读取深度数据并写入缓存文件,随后读取该文件并对缓存中的数值进行比较以确定极值。此外,由于系统提供的缓冲区数量有限(仅包含 buff1 至 buff10 共十组),在使用过程中可能面临缓冲区资源不足的问题。

如今,我们可以借助新版提供的 opinfo 函数来实现相同功能。此前已介绍过 opinfo的基本用法,接下来将通过实际示例展示该函数的强大能力。

opinfo 用法简述

以下为实现该功能的具体方法与步骤:

1:添加如下标签(若已存在同名标签,请自行更名):

counter : 0

2:定义四个用于存储 Z 向极值的标签(若与现有标签冲突,请相应更名)

fmt     2      min_z_comm
fmt     2      max_z_comm
fmt     2      min_z_op
fmt     2      max_z_op

3:在适当位置加入以下循环代码,用于遍历当前所选刀具路径并计算 Z 轴的最大值与最小值,最后输出结果(若与其他代码重复,请调整名称):

p_output_z_range
      min_z_comm = opinfo(19, 0)
      max_z_comm = opinfo(16, 0)
      counter = 1
      status = opinfo(92, counter)
      while status <> -99999,
        [
        min_z_op = opinfo(19, counter)
        max_z_op = opinfo(16, counter)
        if min_z_op < min_z_comm, min_z_comm = min_z_op
        if max_z_op > max_z_comm, max_z_comm = max_z_op
        counter = counter + 1
        status = opinfo(92, counter)
        ]
      "OVERALL MAX Z = ", *max_z_comm, e$
      "OVERALL MIN Z = ", *min_z_comm, e$

4:在 psof$ 或任意希望输出极值的位置调用上述代码块:

p_output_z_range

输出结果请自行测试!!!

5:此外,还可以添加以下代码
用于测试所有的值:

lzq_ceshi
      ceshi = opinfo(jishu, 0)