一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种自动识别结构边界并有序排列的方法与流程

2022-09-14 23:54:46 来源:中国专利 TAG:


1.本发明属于轮胎设计技术领域,具体涉及一种自动识别结构边界并有序排列的方法。


背景技术:

2.物体受力的有限元分析在工程工业及制造业的研发发展过程中是比较常见的方法,对物体施加力的作用使其变形,得到物体变形前后的轮廓图,能够更加直观的分析物体变形前后的轮廓变化,而自动提取物体结构轮廓则会更加节约时间,提高效率。
3.以轮胎为例,轮胎断面轮廓在充气前后的变化对于轮胎设计具有重要的指导意义,因此,在轮胎结构设计初期会对轮胎的二维充气过程进行有限元仿真,分析充气前后二维轮廓的变化。利用商业化的软件对比前后轮廓变化不直观,因此想要直观的可量化的分析轮廓前后变化,需要对变化前后各个节点坐标进行测量,不仅工作量大,操作繁琐,而且有测量误差。


技术实现要素:

4.本发明的目的在于解决现有技术中存在的上述问题,提出了一种自动识别结构边界并有序排列的方法,该方法利用python语言实现结构轮廓的自动提取,提高了数据处理效率及准确性。
5.本发明的技术方案是:
6.一种自动识别结构边界并有序排列的方法,包括以下步骤:
7.(1)读取odb文件,提取所有单元及节点,建立字典nd、ed和cd;
8.(2)读取字典nd中任一节点编号,通过读取字典ed找到与此节点相邻的节点,读取字典cd中这些相邻节点的坐标,计算与此节点相邻的所有的夹角的和,据此计算每个节点周围所有单元的角度和;
9.(3)当步骤(2)中计算的节点的角度和小于360
°
时,此节点为轮廓边界节点,据此获得所有的边界节点,建立集合nt1;
10.(4)依次确定集合nt1中的第一节点、第二节点及其余边界节点,将所有的边界节点排序并连接成轮廓曲线。
11.进一步的,所述步骤(1)中,利用python语言读取abaqus计算完成的odb文件,读取结构体的所有单元的编号及节点的编号,建立三个字典nd、ed和cd。
12.进一步的,所述字典nd的key键为结构体中所有节点的编号,每个key键的值为与此节点相邻的单元的编号;字典ed的key键为结构体中所有单元的编号,每个key键的值为与此单元共用的节点的编号;字典cd的key键为结构体中所有节点的编号,每个key键的值为节点的坐标。
13.进一步的,所述步骤(2)中,结构体中与每个节点相邻的单元有1个、2个、3个、4个或多个,读取字典nd中任意的节点编号,找到与其相邻的所有节点,根据每个节点的坐标计
算两个向量的夹角,将与此节点相邻的所有的夹角求和;根据上述方法计算每个节点周围同一单元内所有相邻节点的角度和。
14.进一步的,所述步骤(3)中,如果计算得到的角度和小于360
°
,此节点即为轮廓边界节点,据此循环至找到所有轮廓边界节点的编号,建立集合nt1,同时输出边界节点所在单元的编号,建立集合et1。
15.进一步的,所述步骤(4)中,利用python语言选择集合nt1中第一个节点,找到与该节点共用的边界单元,判断共用边界单元的个数,若该个数等于2,则此节点作为第一节点,若该个数不等于2,则选择集合nt1中第二个节点,循环至找到该个数等于2的节点,即为第一节点;
16.判断与第一节点共用的边界单元,找到单元中与第一节点相邻的边界节点,选择与第一节点呈逆时针方向的边界节点作为第二节点;
17.判断与第二节点共用的边界单元以及单元中包含的除共用节点及前面已经有的节点外的边界节点,判断节点个数,根据节点个数是否大于等于1找到这几个节点属于的同一单元,以共用节点起始点逆时针排序,按逆时针方向与共用节点相邻的节点为下一个节点,以此循环判断出所有的边界节点。
18.进一步的,所述步骤(4)中,利用python语言选择集合nt1中第一个节点编号为n0,找到与n0共用的边界单元,判断共用边界单元的个数n,如果n等于2,则节点n0作为第一节点n1,如果n不等于2,则选择集合nt1中第二个节点编号为n0,按照上述方法循环直到找到n等于2的节点作为第一节点n1;
19.读取字典nd与n1共用的边界单元,读取字典ed中的边界单元中与n1相邻的节点,判断n1与这两个边界节点是否为逆时针方向,选择逆时针方向的边界节点为第二节点n2;
20.判断与n2共用的边界单元以及单元中包含的除共用节点及前面已经有的节点n1外的边界节点,判断节点个数m,如果m等于1,则此节点为n3,如果m不等于1,找到m个节点共同的单元,将节点按照逆时针方向排序,按逆时针方向与n2相邻的节点定为n3,下一步寻找与n3相邻的单元中除共用节点及前面已经有的节点外的边界节点个数m,判断m的值,以此循环,按照上述方法依次将其余的边界节点排序。
21.进一步的,所述步骤(4)中,将已排序的边界节点编号依次连接绘制dxf文件并输出。
22.本发明的有益效果:
23.(1)本发明所提供的方法主要利用计算机编程语言python实现对有限元前后处理的二维结构轮廓进行提取,自动提取节点并形成闭合轮廓直接生成dxf文件,根据变形前后的轮廓曲线,可以对结构体变形前后的形变进行可量化的参数分析;并且,通过自动读取有限元结构文件自动生成二维轮廓曲线,大大地缩减了数据提取时间,降低了人为取数可能造成的错误。
24.(2)与已有的提取方法相比,本发明方法自动化程度高,不局限于边界节点只有三个及以下单元共用的情况,适合任意复杂结构网格边界轮廓提取,准确性高。
附图说明
25.图1为本发明提供的方法流程示意图;
26.图2为本发明提供的几何结构体的网格划分图;
27.图3为本发明提供的自动提取处的轮廓连线图。
具体实施方式
28.为了进一步理解本发明,下面将结合附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
29.如图1所示,本发明提供了一种自动识别结构边界并有序排列的方法,步骤如下:
30.有限元计算完成的odb文件包含了结构体的单元及节点信息,利用python程序读取所有的节点,以及共用节点的单元信息,建立字典nd、字典ed和字典cd,如图2所示,字典nd为
31.{1:[108],8:[105,106],2:[108,109,112],3:[112],4:[107,106,111,110],5:[107,108,109,110],6:[108,107,104],7:[106,107,104,105],9:[101,102,104],10:[103,105],11:[102,103,105,104],12:[106,111],13:[111,110,109,112],14:[103],15:[102,103],16:[101,102],17:[101]}
[0032]
字典ed为
[0033]
{101:[9,16,17],102:[9,11,15,16],103:[11,10,14,15],104:[6,7,11,9],105:[11,7,8,10],106:[4,12,8,7],107:[5,4,7,6],108:[2,5,6,1],109:[2,13,5],110:[5,13,4],111:[4,13,12],112:[2,3,13]}
[0034]
字典cd为
[0035]
{1:[x1,y1],8:[x8,y8],2:[x2,y2],3:[x3,y3],4:[x4,y4],5:[x5,y5],6:[x6,y6],7:[x7,y7],9:[x9,y9],10:[x10,y10],11:[x11,y11],12:[x12,y12],13:[x13,y13],14:[x14,y14],15:[x15,y15],16:[x16,y16],17:[x17,y17]}
[0036]
利用python程序读取字典nd中的节点编号及相邻的单元编号,根据单元编号从字典ed中读取与此节点相邻的节点,读取字典cd中节点的坐标值,计算相邻节点向量的夹角,每个节点相邻的向量夹角求和。如图2所示,以节点11为例,读取字典nd中节点11周围的4个单元,单元102,单元103,单元105和单元104,读取字典ed中单元102中与节点11(a)相邻的节点为节点9(c)和节点15(d),读取字典cd中节点11、节点9及节点15的坐标,计算出向量ac和向量ad的夹角,同理计算出向量ab与向量ac之间的夹角、向量ad与向量ae之间的夹角、向量ae与向量ab之间的夹角,将四个夹角求和为360
°
,所以非边界节点的角度和均为360
°
。而边界节点相邻的单元角度的和小于360
°
,如图2中节点13即为边界节点。根据此条件判断得到所有的边界节点集合nt1,即(1,8,2,3,6,9,10,12,13,14,15,16,17)。根据边界节点得到边界节点所在的边界单元集合et1,即(108,112,104,106,105,101,102,111,110,109,103)。
[0037]
得到边界节点编号后再进行排序,选择集合nt1中第一个节点编号为n0,即节点1,读取et1中与节点1共用的单元(即单元108)的个数n为1,n不等于2,所以选择集合nt1中第二个节点编号为n0,即节点8,读取et1中与节点8共用的单元(即单元105和106)个数为2,则节点8作为排序的第一节点n1。
[0038]
下一步寻找第二节点n2,判断et1中与n1(即节点8)共用的边界单元为单元105和单元106,单元105和单元106中的与n1相邻的边界节点为10、12,节点8与节点10是逆时针排列,所以选择节点10作为第二节点n2。
[0039]
判断et1中与n2(即节点10)共用的边界单元为单元103和105,单元103和105中除共用节点外的边界节点为节点8、14和15,节点8前面已经存在所以删除,剩余节点14和节点15,即m等于2,判断节点14和节点15同属于单元103,以共用节点10为起点逆时针排序为节点10、节点14、节点15、节点11,与节点10相邻的为节点14,所以节点14为下一个节点,即节点n3。et1中与n3(即节点14)共用的边界单元为单元103,单元103中除共用节点14及前面已经存在的节点10和节点11外的边界节点只有节点15,m等于1,则节点15即为下一个节点n4。按照上述循环方法依次将剩余的节点排序,得到n5为节点16,n6为节点17,n7为节点9,n8为节点6,n9为节点1,n10为节点2,n11为节点3,n12为节点13,n13为节点12,n1-n13排序完成。
[0040]
排序完成后,将排序完成的各点连接成曲线并以dxf格式输出,即得到了如图3加粗部分的轮廓线。
[0041]
本发明提供的上述自动识别结构边界并有序排列的方法,主要通过python语言自动识别边界单元及节点编号,并自动排序,并将提取得到的轮廓信息写入dxf文件中,更加直观的比较结构体的变形图。
[0042]
上述说明仅为本发明的优选实施例,并非是对本发明的限制,尽管参照前述实施例对本发明进行了详细的说明,对于本领域技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改型等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献