了解 Mech-MSR 工程中的数据流
关于数据流
在Mech-MSR中,每个“步骤”表示一个算法处理单元,它接收输入,执行计算,并输出结果。用户可通过端口连接多个步骤形成数据流,逐步处理各种类型的数据,最终完成整个测量和检测任务。

数据类型
在Mech-MSR工程中,数据类型描述的是步骤之间数据传输的基本形式,例如Surface(表面数据)、Profile(轮廓线)、Shape3DList(三维几何特征)、NumberList(数值列表)等等。通常,连接端口的数据类型应相同,才能确保数据能够正确传递和处理。
单击此处,了解如何在Mech-MSR中查看端口数据类型
右键单击工程编辑区空白处,选择设置步骤端口显示选项,然后选择显示类型和名字或只显示类型选项,端口上可显示数据类型。
端口的数据类型名称包含在一对<>
符号中,例如:<Surface>
、<Profile>
、<NumberList>
、<Shape3DList>
。

此外,通过显示的数据类型名称,你还可以获取以下信息:
-
名称后缀
-
:表示可选输入项。例如,多数步骤的输入端口对齐参数组(PoseList-
)非必要输入,输入为空不会影响步骤运行。 -
名称后缀
[]
:表示端口的声明维度信息。参考数据维度小节了解详情。
数据维度
在Mech-MSR工程中,数据维度表示数据的结构层级。
-
端口声明维度
表示端口预设的数据结构层级,即期望接收或输出的数据维度。
单击此处,了解如何在Mech-MSR中查看端口声明维度
若数据类型仅显示类型名称,表示0维,在数据类型名称后每添加一对
[]
符号,表示增加一个数据维度。示例:
-
Surface
:表示0维表面数据; -
Surface []
:表示1维表面数据; -
Surface [][]
:表示2维表面数据。
-
-
实际输入/输出数据维度
表示步骤实际运行时,通过端口接收或输出的数据的维度,可能大于、等于或小于声明维度。查看循环深度了解如何根据步骤运行逻辑计算实际输入/输出数据维度。
在Mech-MSR工程中,步骤可以接收和输出与端口声明维度不同的数据,但步骤不一定能顺利运行,或者运行结果不一定能满足预期。
框架循环
当实际输入数据维度大于端口声明维度,步骤运行时会根据端口声明维度对输入数据进行逐层循环处理。步骤的这一循环运行过程即为框架循环。
若步骤需要进行框架循环,步骤卡片右下角会出现 图标,图标上的数字表示循环层数(层数为1时不显示数字)
;若当前框架循环不可行,则出现
图标。

循环深度
循环深度表示步骤处理某端口数据时需要循环运行的层数,由端口上方的循环图标 表示,图标上的数字表示循环层数(层数为1时不显示数字)。
循环深度的计算公式:循环深度 = 实际输入数据的维度 - 端口声明维度。由此,可推算出数据的实际维度。
当步骤的多个端口均有输入时,需要确保各个端口数据的循环深度相同,否则步骤无法运行。 |
- 示例
-
如下图所示,“定位表面特征点”步骤的输入端口表面数据处出现
图标,表示该端口数据需要步骤逐层循环处理,循环深度为2。已知端口声明维度为0,则可得出实际输入数据的维度为2。
升维和降维
单击此处,查看功能入口
右键单击数据流,然后选择切片升维或合并降维选项,改变数据维度。

切片升维
切片升维通过对数据进行切片操作,将数据提升一个维度。数据升维后,端口上方会显示 图标。
|

合并降维
合并降维通过合并操作将多个数据合并,将数据降低一个维度。数据降维后,端口上方会显示 图标。
|

复用输入
若端口数据无法或者没有必要进行升维或降维操作,可选择步骤循环运行时反复使用维度较低的端口数据(即复用输入),从而确保步骤能正常运行。被复用的端口上方会显示 图标。
单击此处,查看功能入口
在步骤的参数配置区,展开运行标志,并勾选复用输入选项。

|
错误排查
数据循环深度不一致
问题现象:
运行工程或步骤,弹窗提示某步骤“数据循环深度不一致,……”。
解决方案:
-
复用输入:若任意一个端口数据不是列表,尝试在步骤参数栏的“运行标志”下勾选复用输入。
-
降低维度:若循环深度较高的端口数据为数组(列表),右键单击数据流连线,选择合并降维降低数据维度,从而保证端口数据的循环深度一致。
-
提升维度:若循环深度较低的端口数据为数组(列表),右键单击数据流连线,选择切片升维提高数据维度,从而保证端口数据的循环深度一致。
-
检查各个端口的输入,确保输入数据正确。
端口数据个数不一致
问题现象:
运行工程或步骤,弹窗提示某步骤“端口数据个数不一致,……”。
解决方案:
-
若个数较少的端口数据不是列表,在步骤参数栏的“运行标志”下勾选复用输入。
-
若个数较少的端口数据是列表,右键单击数据流连线,选择合并降维降低数据维度,然后在步骤参数栏的“运行标志”下勾选复用输入。
-
若以上方法仍无法解决问题,可尝试使用数据提取步骤或其他有效方法,确保端口数据个数一致。
无法通过切片操作增加维度
问题现象:
单击数据流,然后从右键菜单中选择切片升维,运行步骤或工程后,弹窗提示“无法通过切片操作增加维度,……”。
可能原因:
-
该端口的输入数据不是列表。
-
升维后维度超过步骤处理能力上限。
解决方案:
取消勾选切片升维选项。若存在循环深度不一致问题,可参考数据循环深度不一致问题寻求其他解决方案。如果问题仍未解决,联系梅卡曼德技术支持。
无法通过合并操作降低维度
问题现象:
单击数据流,然后从右键菜单中选择合并降维,运行步骤或工程后,弹窗提示“无法通过合并操作降低维度,……”。
可能原因:
-
该端口的输入数据已为0维,无法再降维。
-
该端口的输入数据不是列表,无法降维。
解决方案:
取消勾选合并降维选项。若存在循环深度不一致问题,可参考数据循环深度不一致问题寻求其他解决方案。如果问题仍未解决,联系梅卡曼德技术支持。