3D直线线轮廓度
算子功能
计算形位公差-直线线轮廓度
该算子分为1D和3D模式,1D模式为计算一条直线与理论直线的线轮廓度,3D模式为计算两条直线与两条理论直线的线轮廓度。
如下图所示,计算理论点到实际直线的距离,记为𝑑1, 𝑑2, …, 𝑑n,则线轮廓度为:
2 × 𝑚𝑎𝑥(𝑑1, 𝑑2, …, 𝑑n)
参数介绍
输入参数

| 参数 | 范围 | 默认值 | 说明 | 图示 |
|---|---|---|---|---|
| 输入图像 | 0-8 | 0 | 图像输入的IM编号 | ![]() |
计算参数
1D

| 参数 | 范围 | 默认值 | 说明 | 图示 |
|---|---|---|---|---|
| 实际直线 | 1D直线 | - | 实际直线上一点和方向向量 | |
| 理论直线 | json文件 | - | 理论直线采样点文件 | |
| 贴合点云 | true/false | false | 将理论位置点平移到最贴合区域框选点云的位置,使得测量值最小 | |
| 使用区域参数 | true/false | false | 启用则以区域作为输入,不启用则以输入图像作为输入 | |
| 区域 | 1D窗口 | 1D窗口 | 手动框选合适的ROI区域可以通过绑定选择已存在的ROI区域 | |
| 理论直线拟合方法 | 最小二乘法/RANSAC | - | 选择拟合理论直线的方法 | |
| 距离阈值 | 0.0-50.0 | 0.02 | 选择合适的距离阈值,当噪点多时,调大该参数,当噪点少则调小该参数 | |
| 最大迭代次数 | 100-10000 | 1000 | 设置迭代次数的最大值 |
3D

| 参数 | 范围 | 默认值 | 说明 | 图示 |
|---|---|---|---|---|
| 实际直线1 | 3D直线 | - | 实际直线1上一点和方向向量 | |
| 实际直线2 | 3D直线 | - | 实际直线2上一点和方向向量 | |
| 理论直线 | json文件 | - | 理论直线采样点文件若存在两条不同的直线,则放置在同一文件内 | |
| 贴合点云 | true/false | false | 将理论位置点平移到最贴合区域框选点云的位置,使得测量值最小 | |
| 区域1 | 2D窗口/2D圆形窗口/2D多边形窗口/盒子/圆柱盒子/旋转盒子/点集(仅绑定) | 盒子 | 手动框选合适的ROI区域可以通过绑定选择已存在的ROI区域 | |
| 区域2 | 2D窗口/2D圆形窗口/2D多边形窗口/盒子/圆柱盒子/旋转盒子/点集(仅绑定) | 盒子 | 手动框选合适的ROI区域可以通过绑定选择已存在的ROI区域 | |
| 理论直线拟合方法 | 最小二乘法/RANSAC | - | 选择拟合理论直线的方法 | |
| 距离阈值 | 0.0-50.0 | 0.02 | 选择合适的距离阈值,当噪点多时,调大该参数,当噪点少则调小该参数 | |
| 最大迭代次数 | 100-10000 | 1000 | 设置迭代次数的最大值 |
结果显示
1D

| 参数 | 范围 | 默认值 | 说明 | 图示 |
|---|---|---|---|---|
| 实际拟合线 | true/false | false | 输入的实际拟合线,若启用,则显示在IM上 | |
| 理论直线 | true/false | false | 输入的理论直线,若启用,则显示在IM上 | |
| 理论直线点到实际直线垂足 | true/false | false | 输入的理论直线点到实际直线的垂足,若启用,则显示在IM上 | |
| 理论直线点到实际直线垂足连线 | true/false | false | 输入的理论直线点与实际直线的垂足两点的连线,若启用,则显示在IM上 | |
| 线轮廓度 | true/false | false | 输出的线轮廓度,若启用,则显示在IM上 |
3D

| 参数 | 范围 | 默认值 | 说明 | 图示 |
|---|---|---|---|---|
| 实际拟合线1 | true/false | false | 输入的实际拟合线1,若启用,则显示在IM上 | |
| 实际拟合线2 | true/false | false | 输入的实际拟合线2,若启用,则显示在IM上 | |
| 理论直线1 | true/false | false | 输入的理论直线1,若启用,则显示在IM上 | |
| 理论直线2 | true/false | false | 输入的理论直线2,若启用,则显示在IM上 | |
| 理论直线点到实际直线垂足 | true/false | false | 输入的理论直线点到实际直线的垂足,若启用,则显示在IM上 | |
| 理论直线点到实际直线垂足连线 | true/false | false | 输入的理论直线点与实际直线的垂足两点的连线,若启用,则显示在IM上 | |
| 线轮廓度 | true/false | false | 输出的线轮廓度,若启用,则显示在IM上 |
输出参数
1D

| 名称 | 类型 | 范围 | 说明 |
|---|---|---|---|
| Result | bool | true/false | true为成功 false为失败 |
| Warning | bool | true/false | true表示有警告 false表示没有 |
| Message | string | 输出成功或错误或警告信息,如果没有错误或警告为空 | |
| Time | float | 算子执行时间,单位: ms | |
| theoretical_line | line1d | 理论直线 | |
| parallelism | float | 线轮廓度 | |
| result | string | OK/NG | 线轮廓度是否在范围内 |
3D

| 名称 | 类型 | 范围 | 说明 |
|---|---|---|---|
| Result | bool | true/false | true为成功 false为失败 |
| Warning | bool | true/false | true表示有警告 false表示没有 |
| Message | string | 输出成功或错误或警告信息,如果没有错误或警告为空 | |
| Time | float | 算子执行时间,单位: ms | |
| theoretical_line1 | line3d | 理论直线1 | |
| theoretical_line2 | line3d | 理论直线2 | |
| parallelism | float | 线轮廓度 | |
| result | string | OK/NG | 线轮廓度是否在范围内 |
提示
更多参数类型详细说明,请参看类型定义
异常排查
| 序号 | 异常信息 | 对应参数 | 解决方法 |
|---|---|---|---|
| 1 | 输入点云或轮廓点数少于2 | 确认IM是否存在至少两个有效点,若不满足该条件,请加载点云或切换符合要求的IM | |
| 2 | 实际直线{1}的类型为{0},错误的输入类型 | 直线类型,序号 | 1D模式下检查直线类型是否为1D直线,3D模式下检查直线类型是否为3D直线 |
| 3 | 参数 {0} 不能为空 | 路径 | 检查路径是否为空 |
| 4 | 文件 {0} 不存在或无法访问 | 路径 | 检查路径是否有效 |
| 5 | 输入的理论直线拟合方法为{0},无效的拟合方法 | 拟合方法 | 检查直线拟合方法为最小二乘法/RANSAC其中之一 |
| 6 | 输入的理论直线点云为空 | 检查理论直线点json文件是否为空 | |
| 7 | 输入轮廓度范围的最小值大于最大值,无效的轮廓度范围 | 设置轮廓度范围最小值小于等于最大值 | |
| 8 | 理论直线点云点数小于2 | 检查输入的理论直线点云点数是否小于2 | |
| 9 | 实际直线{0}方向向量无效 | 序号 | 检查该直线方向向量是否全为0 |
| 10 | 输入的模式为{0},无效的模式 | 模式 | 检查模式是否为1D/3D其中之一 |
| 11 | 输入的理论线点云不为轮廓点 | 检查理论线点云是否某一行的值全为某个定值 | |
| 12 | 输入的区域类型是{0},无效区域类型 | 区域类型 | 模式为1D时,检查区域类型是否为1D窗口;模式为3D时检查区域类型是否为2D窗口/2D圆形窗口/2D多边形窗口/盒子/圆柱盒子/旋转盒子/点集其中之一 |
| 13 | 输入的多边形顶点个数小于3,无法形成多边形 | 添加2d多边形窗口顶点数,使得顶点数至少为三 | |
| 14 | 输入区域为空 | 1. 检查是否框选为空 2. 检查点集是否为空 |
示例介绍
工程设计
选择
加载点云工具,加载需要处理的3d点云图到IM0;选择
3D直线线轮廓度工具。
工具使用
选择需要进行操作的输入图像,图像序号要与工程中图像所在IM序号一致
不启用使用区域参数或启用区域并选择区域类型为盒子,将盒子移动到待测位置,包围住待测点云
使用技巧
1. 通过图像窗口上的ROI控制器来拖动或缩放盒子;
2. 直接在计算参数中修改盒子的起点或终点坐标来调整盒子位置和大小
设置参数
在结果显示栏中勾选想要显示的内容
点击
测试,查看图像窗口和参数是否符合预期没有问题后点击
保存,在运行列表中运行该算子,即可在对应的IM查看运行结果
1D


3D


