一种零部件序号自动标注的方法技术

技术编号:19594936 阅读:32 留言:0更新日期:2018-11-28 05:24
本发明专利技术涉及一种零部件序号自动标注的方法,该方法通过对三维数字产品的零部件在同一个视觉窗口下进行单色渲染,然后将单色渲染结果图转化为灰度图,然后对灰度图进行扫描提取零部件的二维轮廓边界,并对边界进行离散化,再根据离散化的边界轮廓对二维形状进行三角网格化,形成具有顶点和面边信息的三角化网格模型,再使用精确测地线算法计算以三角网格每一个顶点为源点的测地场,并通过测地距离场计算二维网格模型的质心,在零部件渲染图的外围按四边形区域等距生成待标注的目标点,再以质心点为源点,标注点为目标点计算得到一个欧式距离矩阵,建立目标优化函数并计算得到源点到目标点的最优连线结果,从而保证零部件标注的最优性和唯一性。

【技术实现步骤摘要】
一种零部件序号自动标注的方法
本专利技术涉及产品标注领域,尤其涉及一种零部件序号自动标注的方法。
技术介绍
对工业产品零部件进行有序标注是工业产品生产过程中必不可少的一道工序,目前在机械工程设计与制造领域,广泛采用了计算机辅助设计与制造(CAD/CAM)技术,虽然Pro/E、UG、Solidwork和Catia等CAD/CAM一体化软件得到普遍使用,但工厂技术文件都以图样来表达,通常由上述CAD/CAM软件完成3D造型,再转成工程图,在AUTOCAD平台完成标注等工作,在利用AUTOCAD完成装配图的标注中,必须对零部件编写序号,AUTOCAD等软件本身没有直接标注零部件序号的命令,通常完成一个序号标注,需要用画线(line)或引线(leader)命令去画指引线,然后再用TEXT(文字)命令写入零件序号。完成一个标注,至少需要十几个操作步骤,不仅速度慢、效率低,特别是零部件数目较多时,重复操作劳动强度大,零件序号要手工每次输入,标注文字的最终位置需要手工控制,比较随意,图形不美观,难以符合国家机械制图标准,目前虽有一些序号标注的程序,但智能化程度不足,需人工干预较多,要输入较多参数,当三维产品模型在二维工程图中的投影出的形状较为复杂时,一些软件自动生成的标注线指向的零部件会存在误差并出席标注线交叉。
技术实现思路
针对上述现有技术的现状,本专利技术所要解决的技术问题是针对上述现有技术提供一种能够直接为三维产品模型的零部件进行自动序号并从零部件的质心出发进行规则标注,又能够避免零标注线相互交叉,且标注速度快的一种零部件序号自动标注的方法。本专利技术解决上述技术问题所采用的技术方案为:一种零部件序号自动标注的方法,依次包括如下步骤:步骤(1)将需要进行标注的三维数字产品模型在窗口化应用程序中以宽度为W、高度为H的分辨率且在直角坐标系O-XYZ中固定一个三维视角对产品的所有零部件依次进行单色渲染。步骤(2)将三维数字产品的一个零部件进行单色渲染后,后台对当前渲染窗口的结果保存为一幅RGBA的参数图像Irgb,其分辨率为W×H,并把Irgb转化为灰度图Igray。步骤(3)根据已得到的灰度图Igray,其任意一点像素点的值非1即0,假如其是边界点,那么该点的像素值为1,并且在其邻域内至少存在一个0像素点。使用2×2邻域像素区域对灰度图进行扫描,则四个像素值得和有0,1,2,3,4五种情况,当像素和为0时,说明四像素点为全黑点,当像素和为4时,说明四像素点为全白点,这都不是边界区域。当像素和为1或2或3时,说明四点中既有0像素点也有1像素点,即为需要处理的边界像素区域点集。因此通过2×2邻域像素对灰度图Igray进行逐行扫描,并刷选出像素和等于1或2或3的像素区域,使用4-邻接边缘进行描述,标记出所有满足条件的像素区域中的1像素点,从而得到所有的像素边界点集Boundary。步骤(4)根据所有边界点集Boundary的像素位置,为每一个边界点BP赋予一个二空间坐标值(x,y),x,y为边界点BP在灰度图Igray中的像素的横坐标和纵坐标位置,并根据边界轮廓对二维形状进行三角化。步骤(5)二维形状边界三角化后形成具有顶点V和面边E信息的三角化网格模型,使用精确测地线算法计算以三角网格每一个顶点为源点的测地剧场,并通过测地距离场计算二维三角化网格模型的质心。其中,二维形状的质心计算如下步骤(5-1)到步骤(5-4)。步骤(5-1)计算三角化网格内部以一个顶点为源点到其他各个点的测地距离场Dfiled,并通过公式计算该点到其他个点测地距离的平均值,公式中ρ(x)为在顶点x出的密度,通常取ρ(x)=1,dg(x,y)为点y到点x的内部距离。步骤(5-2)通过公式计算三角网格模型内部的质心点,c即为二维形状的质心位置。步骤(5-3)建立能量函数可采用梯度下降法进行求解,其梯度函数由E(y)恒正且有界,该能量函数的收敛性能够得到保证。步骤(5-4)计算几何体的几何质心需要最小化公式所述的能量函数,且其梯度函数中梯度向量具有明确的几何意义,可通过从x到y的最短路径跟踪得到,其方向为该最短路的结束方向,长度为1,在具体实现中,需要注意以下问题,(1)当y跑出边界时,通过将y的新旧位置连线与表面求交的方式将y拉回去,(2)基于内部距离的惯性矩E(y)的极小值不一定唯一,因此我们随机选取10个不同的初值分别优化E(y),并取最优的y作为几何质心。步骤(6)使用步骤(1)-步骤(5)的方法为三维数值产品的所有N个零部件计算得到对应的二维质心点位置集{c1,c2Lcn}。步骤(7)建立以宽度为W、高度为H的四边形区域,以长度spaceLen作为间隔距离在W×H的四边形区域上均匀采样生成M个点,其中M≥N,对M个点按逆时针进行排序并作为产品标注的目标点。步骤(8)为了得到一个零部件的质心位置只指向一个目标点且每一条质心点和目标点的连续不交叉,建立目标优化函数其中dij为第i(1≤i≤M)个质心点到第j(1≤j≤N)标注目标点的欧式距离,目标优化函数的限制条件为且Xij∈{1,0},求解优化目标函数如下步骤(8-1)和步骤(8-2)。步骤(8-1)计算N个质心位置点到M个标注目的点的欧式距离,形成一个欧式距离矩阵disMatrix。步骤(8-2)变换距离矩阵disMatrix,使各行各列都出现0元素。距离矩阵disMatrix每行元素都减去该行最小元素;距离矩阵disMatrix每列元素都减去该列最小元素。步骤(8-3)建立一个与距离矩阵disMatrix行数和列数一样标记矩阵signMatrix,并将标记矩阵signMatrix中所有元素的值初始化为1,行标识向量lineVector(共N个数值),列标识向量rowVector(共M个数值),两个标识向量元素的初始值为0。步骤(8-4)从距离矩阵disMatrix第一行开始搜索,若该行只有一个零元素,记录零元素的位置(i,j),在标记矩阵signMatrix上位置(i,j)对应的值记为0,在距离矩阵disMatrix中遍历第i行及第j列元素值为0所在的位置(m,n),在标记矩阵signMatrix位置(m,n)对应的值记为2。如果标记矩阵signMatrix所有行都有0元素,则跳转到步骤(9)。步骤(8-5)从标记矩阵signMatrix第一行开始搜索,若该行没有元素的值为0,则记录行号i,并将标识向量lineVector第i个元素赋值为1(即lineVector(i)=1)。步骤(8-6)再遍历标记矩阵signMatrix中其他行,若该行没有元素的值为2,记录行号i,并在该行中找出值为0的列号j,并将标识向量rowVector第i个元素赋值为1(即rowVector(i)=1)。步骤(8-7)找出标识向量lineVector中值为1的位置i和标识向量rowVector中值为1的位置j,在距离矩阵disMatrix中在所有第i行上且不在第j列中的元素最小的值uij。步骤(8-8)在距离矩阵disMatrix中在所有i行的值减去uij(其中元素值为0的元素不再相减),在所有j行的值加上uij。步骤(8-9)重复上述步骤(8-4)到步骤(8-9)的步骤。步骤(9)对已求解得到的最优距离矩阵di本文档来自技高网...

【技术保护点】
1.一种零部件序号自动标注的方法,用于对三维数字产品的零部件进行自动连线标注,其特征在于,依次包括如下步骤:步骤(1)将需要进行标注的三维数字产品模型在窗口化应用程序中以宽度为W、高度为H的分辨率且在直角坐标系O‑XYZ中固定一个三维视角对产品的所有零部件依次进行单色渲染。步骤(2)将三维数字产品的一个零部件进行单色渲染后,后台对当前渲染窗口的结果保存为一幅RGBA的参数图像Irgb,其分辨率为W×H,并把Irgb转化为灰度图Igray。步骤(3)根据已得到的灰度图Igray,其任意一点像素点的值非1即0,假如其是边界点,那么该点的像素值为1,并且在其邻域内至少存在一个0像素点。使用2×2邻域像素区域对灰度图进行扫描,则四个像素值得和有0,1,2,3,4五种情况,当像素和为0时,说明四像素点为全黑点,当像素和为4时,说明四像素点为全白点,这都不是边界区域。当像素和为1或2或3时,说明四点中既有0像素点也有1像素点,即为需要处理的边界像素区域点集。因此通过2×2邻域像素对灰度图Igray进行逐行扫描,并刷选出像素和等于1或2或3的像素区域,使用4‑邻接边缘进行描述,标记出所有满足条件的像素区域中的1像素点,从而得到所有的像素边界点集Boundary。步骤(4)根据所有边界点集Boundary的像素位置,为每一个边界点BP赋予一个二空间坐标值(x,y),x,y为边界点BP在灰度图Igray中的像素的横坐标和纵坐标位置,并根据边界轮廓对二维形状进行三角化。步骤(5)二维形状边界三角化后形成具有顶点V和面边E信息的三角化网格模型,使用精确测地线算法计算以三角网格每一个顶点为源点的测地剧场,并通过测地距离场计算二维三角化网格模型的质心。其中,二维形状的质心计算如下步骤(5‑1)到步骤(5‑4)。步骤(5‑1)计算三角化网格内部以一个顶点为源点到其他各个点的测地距离场Dfiled,并通过公式...

【技术特征摘要】
1.一种零部件序号自动标注的方法,用于对三维数字产品的零部件进行自动连线标注,其特征在于,依次包括如下步骤:步骤(1)将需要进行标注的三维数字产品模型在窗口化应用程序中以宽度为W、高度为H的分辨率且在直角坐标系O-XYZ中固定一个三维视角对产品的所有零部件依次进行单色渲染。步骤(2)将三维数字产品的一个零部件进行单色渲染后,后台对当前渲染窗口的结果保存为一幅RGBA的参数图像Irgb,其分辨率为W×H,并把Irgb转化为灰度图Igray。步骤(3)根据已得到的灰度图Igray,其任意一点像素点的值非1即0,假如其是边界点,那么该点的像素值为1,并且在其邻域内至少存在一个0像素点。使用2×2邻域像素区域对灰度图进行扫描,则四个像素值得和有0,1,2,3,4五种情况,当像素和为0时,说明四像素点为全黑点,当像素和为4时,说明四像素点为全白点,这都不是边界区域。当像素和为1或2或3时,说明四点中既有0像素点也有1像素点,即为需要处理的边界像素区域点集。因此通过2×2邻域像素对灰度图Igray进行逐行扫描,并刷选出像素和等于1或2或3的像素区域,使用4-邻接边缘进行描述,标记出所有满足条件的像素区域中的1像素点,从而得到所有的像素边界点集Boundary。步骤(4)根据所有边界点集Boundary的像素位置,为每一个边界点BP赋予一个二空间坐标值(x,y),x,y为边界点BP在灰度图Igray中的像素的横坐标和纵坐标位置,并根据边界轮廓对二维形状进行三角化。步骤(5)二维形状边界三角化后形成具有顶点V和面边E信息的三角化网格模型,使用精确测地线算法计算以三角网格每一个顶点为源点的测地剧场,并通过测地距离场计算二维三角化网格模型的质心。其中,二维形状的质心计算如下步骤(5-1)到步骤(5-4)。步骤(5-1)计算三角化网格内部以一个顶点为源点到其他各个点的测地距离场Dfiled,并通过公式计算该点到其他个点测地距离的平均值,公式中ρ(x)为在顶点x出的密度,通常取ρ(x)=1,dg(x,y)为点y到点x的内部距离。步骤(5-2)通过公式计算三角网格模型内部的质心点,c即为二维形状的质心位置。步骤(5-3)建立能量函数可采用梯度下降法进行求解,其梯度函数由E(y)恒正且有界,该能量函数的收敛性能够得到保证。步骤(5-4)计算几何体的几何质心需要最小化公式所述的能量函数,且其梯度函数中梯度向量具有明确的几何意义,可通过从x到y的最短路径跟踪得到,其方向为该最短路的结束方向,长度为1,在具体实现中,需要注意以下问题,(1)当y跑出边界时,通过将y的新旧位置连线与表面求交的方式将y拉回去,(2)基于内部距离的惯性矩E(y)的极小值不一定唯一,因此我们随机选取10个不同的初值分别优化E(y),并取最优的y作为几何质心。步骤(6)使用步骤(1)-步骤(5)的方法为三维数值产品的所有N个零部件计算得到对应的二...

【专利技术属性】
技术研发人员:刘邦权辛士庆孟文龙孙德超
申请(专利权)人:宁波大红鹰学院
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1