一种2.5D模型几何清理方法与流程
- 国知局
- 2024-08-05 12:13:15
本发明涉及仿真设计领域,具体涉及一种2.5d模型几何清理方法。
背景技术:
1、在eda(electronic design automation,电子设计自动化)数值仿真领域常使用2.5d模型来表示层状的电路板结构。如图2所示,2.5d模型由多个2d模型堆叠而成,每层的2d结构由多个多边形组成。
2、2.5d模型中包含了多层电路板和各种电子元件,这些元件和电路板层之间的相互作用和电磁耦合关系复杂,难以直接进行仿真计算。中国专利cn117078890a提出了一种三维几何模型网格剖分方法,通过该网格剖分方法能够将这些复杂的模型结构离散化,转化为更容易处理的网格单元,从而方便仿真软件进行计算和分析。
3、因此,网格剖分在eda数值仿真领域中具有不可替代的重要性,它不仅是连接电路板模型与仿真分析的桥梁,更是确保仿真结果准确性和可靠性的关键步骤。然而,在处理大规模复杂电路板结构的2.5d模型时,由于设计复杂度极高,常常会遇到一些几何上的问题,如线段之间的相交、点与点之间的距离过近、点与线段之间的接近度过高,以及线段间夹角过小等。这些问题往往会导致网格剖分过程失败,进而使整个仿真流程陷入停滞状态。
技术实现思路
1、为了解决上述问题,本发明提出了一种2.5d模型几何清理方法,以提升2.5d模型网格剖分的成功率。
2、本发明提出了一种2.5d模型几何清理方法,包括如下步骤:
3、步骤1,基于自适应四叉树合并相邻点:使用四叉树将平面内的点划分至多个子区域内,合并各子区域内的相邻点;
4、步骤2,进行边相交运算:判断两条边是否相交,若两条边相交则计算交点位置,添加交点;
5、步骤3,清除尖角:如果两条边有一个共用的端点,且两条边的夹角小于设定的最小角度 α tol,则这两条边的夹角为尖角,通过添加或移动一个点以清除尖角;所述添加一个点为在这两条边中较长的一条边上添加一个点,所述移动一个点为将较短的一条边的非共用的端点移动到较长的一条边上;
6、步骤4,将点对齐到边:将与边接近度过高的点沿边的法线方向移动到边上;
7、步骤5,简化多边形:如果一个点到以与该点相邻的两个点作为端点的线段之间的距离小于给定值,则该点为待移除点,该点被多个多边形共有,如果该点在所有多边形上都为待移除点,则移除该点;
8、步骤6,局部更新:判断是否有发生变化的点和边,若有,则返回步骤1对发生变化的点和边进行下一步计算,否则不进行下一步计算。
9、在一个实施例中,所述步骤1中,使用四叉树将平面内的点划分至多个子区域内,包括如下步骤:
10、计算所有多边形顶点的平面空间包围盒;
11、将所述平面空间包围盒平均分为4份,每份即为一个子区域;
12、计算每个子区域内的点数量;
13、递归分割子区域:如果子区域内的点数量大于指定的值m,则继续对该子区域进行平均分割,将其分为四个更小的子区域,直到所有子区域内的点数量都小于等于指定的值m。
14、在一个实施例中,所述步骤1中,合并各子区域内的相邻点,包括:
15、对每个子区域内的点进行两两对比,如果任意两个点之间的距离小于指定的容差值,则这两个点为相邻点,将这两个点合并为一个点。
16、在一个实施例中,所述步骤2中,在判断两条边是否相交之前,采用rtree数据结构搜索需要进行边相交运算的所有边;
17、或者,所述步骤4中,在将与边接近度过高的点沿边的法线方向移动到边上之前,采用rtree数据结构搜索需要将点对齐到边的所有边。
18、在一个实施例中,所述步骤2中判断两条边是否相交,包括:
19、令两条边为边ab和边cd;
20、若点a和点b在边cd所在直线的同侧,点c和点d在边ab所在直线的同侧,则边ab和边cd不相交;
21、若点a和点b在边cd所在直线的两侧,点c和点d在边ab所在直线的同侧,则边ab和边cd不相交;
22、若点a和点b在边cd所在直线的同侧,点c和点d在边ab所在直线的两侧,则边ab和边cd不相交;
23、若点a和点b在边cd所在直线的两侧,点c和点d在边ab所在直线的两侧,则边ab和边cd相交。
24、在一个实施例中,所述步骤2中,若两条边相交则计算交点位置,包括如下步骤:
25、令两条边为边ab和边cd;
26、若边ab和边cd相交于点e,则计算点c和点d到边ab所在直线的距离 h c和 h d;
27、根据点c和点d到边ab所在直线的距离 h c和 h d,计算交点e位置,交点e位置的计算公式如下:
28、,
29、其中,、、分别指的是点e、点c、点d的位置, h c 、h d分别指的是点c和点d到边ab所在直线的距离。
30、在一个实施例中,所述步骤3中,通过添加或移动一个点以清除尖角,包括如下步骤:
31、令有一个共用的端点两条边为边ab和边ac,且∠bac < α tol;
32、令边ab的长度大于边ac的长度;
33、在边ab上取一个点d,点d连接点c,满足∠bdc = α tol,点d将边ab分为线段ad和线段db两段,点a和点c之间被分为线段ad和线段dc两段,同时去除原来的边ac;如果在边ab上没有点d满足∠bdc = α tol,则将点c移动到边ab上,将边ab分为ac和cb两段。
34、在一个实施例中,所述步骤4包括:
35、如果一个点到一条边的距离小于阈值 h tol,则该点为与该边接近度过高的点,沿该边的法线方向将该点移动到该边上。
36、在一个实施例中,所述步骤6中,发生变化的点和边包括有变化的点及其周围的点和边。
37、在一个实施例中,所述判断是否有发生变化的点和边,包括:
38、所述基于自适应四叉树合并相邻点中,如果有发生合并的点,则所有发生合并的点标记为有变化的点;
39、所述进行边相交运算中,如果有两个边相交,则将交点标记为有变化的点;
40、所述清除尖角中,如果有尖角被清除,则将添加的点或移动的点标记为有变化的点;
41、所述将点对齐到边中,如果有点对齐到边,则将移动的点标记为有变化的点;
42、所述简化多边形中,如果有移除的点,则将其邻接的点标记为有变化的点;
43、其中,给定一个影响半径r,距离有变化的点小于影响半径r的点和边被标记为其周围的点和边。
44、本发明的一种2.5d模型几何清理方法具有如下有益效果:
45、1、该几何清理方法解决了线段之间的相交、点与点之间的距离过近、点与线段之间的接近度过高,以及线段间夹角过小的问题,提升了2.5d模型网格剖分的成功率。
46、2、该几何清理方法降低了各步骤计算的时间复杂度,减少计算耗时,提高计算效率。
本文地址:https://www.jishuxx.com/zhuanli/20240802/261617.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。