CN113486624A - 实现pcb走线自动等间距的方法、装置及电子设备 - Google Patents
实现pcb走线自动等间距的方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113486624A CN113486624A CN202110747979.9A CN202110747979A CN113486624A CN 113486624 A CN113486624 A CN 113486624A CN 202110747979 A CN202110747979 A CN 202110747979A CN 113486624 A CN113486624 A CN 113486624A
- Authority
- CN
- China
- Prior art keywords
- line segment
- segment group
- target
- coordinates
- segments
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000004590 computer program Methods 0.000 claims description 15
- 238000009432 framing Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000000926 separation method Methods 0.000 claims 3
- 239000011295 pitch Substances 0.000 description 10
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000005587 bubbling Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
- G06F30/3953—Routing detailed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/12—Printed circuit boards [PCB] or multi-chip modules [MCM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Analysis (AREA)
Abstract
本发明提供一种实现PCB走线自动等间距的方法、装置及电子设备。所述方法包括:根据框选指令选中目标线段组,目标线段组包括彼此平行但间距不等的属性为走线的多条线段;识别目标线段组的最边沿的两条线段,作为两条基准线段;计算两条基准线段之间的总间距;根据总间距和目标线段组的线段数,计算各条线段之间的平均间距;根据平均间距调整两条基准线段之间的各条中间线段,使目标线段组的间距相等。本发明能够实现PCB走线自动等间距,提高布线效率和准确性。
Description
技术领域
本发明涉及电路设计技术领域,尤其涉及一种实现PCB走线自动等间距的方法、装置及电子设备。
背景技术
PCB设计中,常常出现多条走线方向一致的情况。当出现此种情况,工程师为了美观与节省板内空间,时常需要将多条走线调整到一起,以相等的间距成组走线。但是目前的设计软件无自动等间距走线调整功能,若要求进行严格的等间距走线,需要手动计算多条走线的坐标值与修正值,再使用调整走线命令进行走线修正。此法效率低而且不够准确。
发明内容
为解决上述问题,本发明提供了一种实现PCB走线自动等间距的方法、装置及电子设备,能够实现PCB走线自动等间距,提高布线效率和准确性。
一方面,本发明提供一种实现PCB走线自动等间距的方法,包括:
根据框选指令选中目标线段组,所述目标线段组包括彼此平行但间距不等的属性为走线的多条线段;
识别所述目标线段组的最边沿的两条线段,作为两条基准线段;
计算所述两条基准线段之间的总间距;
根据所述总间距和所述目标线段组的线段数,计算各条线段之间的平均间距;
根据所述平均间距调整所述两条基准线段之间的各条中间线段,使所述目标线段组的间距相等。
可选地,其中识别所述目标线段组的最边沿的两条线段,作为两条基准线段包括:
依次获取所述目标线段组中各条线段的起点坐标和终点坐标;
根据各条线段的起点坐标和终点坐标判断所述目标线段组的类型,若各条线段的起点和终点横坐标相同,则所述目标线段组为竖直线段组,若各条线段的起点和终点纵坐标相同,则所述目标线段组为水平线段组,若各条线段的起点和终点横坐标、纵坐标均不相同,则所述目标线段组为斜线段组;
若所述目标线段组为竖直线段组,确定起点横坐标最小的线段和起点横坐标最大的线段作为两条基准线段;若所述目标线段组为水平线段组,确定起点纵坐标最小的线段和起点纵坐标最大的线段作为两条基准线段;若所述目标线段组为斜线段组,确定与坐标原点距离最小的线段和与坐标原点距离最大的线段作为两条基准线段。
可选地,其中计算所述两条基准线段之间的总间距包括:
若所述目标线段组为竖直线段组,计算两条基准线段的起点横坐标的差值,作为总间距;
若所述目标线段组为水平线段组,计算两条基准线段的起点纵坐标的差值,作为总间距;
若所述目标线段组为斜线段组,根据两条基准线段各自的起点坐标和终点坐标计算总间距,具体如下式:
d=(|(y12-(x12/(x11-x12)*(y11-y12)))-(y22-(x22/(x21-x22))*(y21-y22)))|)/((1+((y11-y12)/(x11-x12)))1/2),
其中d表示总间距,(x11,y11)、(x12,y12)表示一条基准线段的起点坐标和终点坐标,(x21,y21)、(x22,y22)表示另一条基准线段的起点坐标和终点坐标。
可选地,其中根据所述平均间距调整所述两条基准线段之间的各条中间线段,使所述目标线段组的间距相等包括:
对各条中间线段,依次执行以下操作:
根据所述平均间距计算所述中间线段的新起点坐标和新终点坐标,在所述新起点坐标和所述新终点坐标之间生成新线段;
识别与所述中间线段的原线段相连接的两侧线段;
将所述两侧线段与所述新线段连接;
删除所述中间线段的原线段以及所述两侧线段与所述新线段连接后位于连接点以外的多余线段。
另一方面,本发明提供一种实现PCB走线自动等间距的装置,包括:
框选模块,用于根据框选指令选中目标线段组,所述目标线段组包括彼此平行但间距不等的属性为走线的多条线段;
基准线识别模块,用于识别所述目标线段组的最边沿的两条线段,作为两条基准线段;
第一计算模块,用于计算所述两条基准线段之间的总间距;
第二计算模块,用于根据所述总间距和所述目标线段组的线段数,计算各条线段之间的平均间距;
调整模块,用于根据所述平均间距调整所述两条基准线段之间的各条中间线段,使所述目标线段组的间距相等。
可选地,所述基准线识别模块,包括:
坐标获取单元,用于依次获取所述目标线段组中各条线段的起点坐标和终点坐标;
类型判断单元,用于根据各条线段的起点坐标和终点坐标判断所述目标线段组的类型,若各条线段的起点和终点横坐标相同,则所述目标线段组为竖直线段组,若各条线段的起点和终点纵坐标相同,则所述目标线段组为水平线段组,若各条线段的起点和终点横坐标、纵坐标均不相同,则所述目标线段组为斜线段组;
确定单元,用于若所述目标线段组为竖直线段组,确定起点横坐标最小的线段和起点横坐标最大的线段作为两条基准线段;若所述目标线段组为水平线段组,确定起点纵坐标最小的线段和起点纵坐标最大的线段作为两条基准线段;若所述目标线段组为斜线段组,确定与坐标原点距离最小的线段和与坐标原点距离最大的线段作为两条基准线段。
可选地,所述第一计算模块,用于若所述目标线段组为竖直线段组,计算两条基准线段的起点横坐标的差值,作为总间距;
若所述目标线段组为水平线段组,计算两条基准线段的起点纵坐标的差值,作为总间距;
若所述目标线段组为斜线段组,根据两条基准线段各自的起点坐标和终点坐标计算总间距,具体如下式:
d=(|(y12-(x12/(x11-x12)*(y11-y12)))-(y22-(x22/(x21-x22))*(y21-y22)))|)/((1+((y11-y12)/(x11-x12)))1/2),
其中d表示总间距,(x11,y11)、(x12,y12)表示一条基准线段的起点坐标和终点坐标,(x21,y21)、(x22,y22)表示另一条基准线段的起点坐标和终点坐标。
可选地,所述调整模块,包括:
生成单元,用于对各条中间线段,根据所述平均间距计算所述中间线段的新起点坐标和新终点坐标,在所述新起点坐标和所述新终点坐标之间生成新线段;
识别单元,用于识别与所述中间线段的原线段相连接的两侧线段;
连接单元,用于将所述两侧线段与所述新线段连接;
删除单元,用于删除所述中间线段的原线段以及所述两侧线段与所述新线段连接后位于连接点以外的多余线段。
另一方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实现PCB走线自动等间距的方法。
另一方面,本发明提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实现PCB走线自动等间距的方法。
另一方面,本发明提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现上述实现PCB走线自动等间距的方法。
本发明提供的实现PCB走线自动等间距的方法、装置及电子设备,在用户框选走线组后,走线组即会以最边沿两条走线为边界,在边界区域内将每条走线调整为等间距的状态。与现有技术相比,能够实现PCB走线自动等间距,提高布线效率和准确性。
附图说明
图1为本发明一实施例提供的一种实现PCB走线自动等间距的方法的流程示意图;
图2为本发明一实施例提供的一种实现PCB走线自动等间距的装置的结构示意图;
图3为本发明一实施例提供的电子设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
Cadence Allegro软件拥有便于用户二次开发的接口与较完善的开发语言库,用户可再次基础上根据需求进行二次开发。
Skill语言是Cadence Allegro内置的一种基于C语言与LISP语言的高级编程语言,可以很好地利用Cadence Allegro丰富的交互性函数。利用Skill语言作为编写工具编写的辅助工具可大大提高工作效率。
基于此,本文提出一种可以快速进行自动等间距的方法。
图1示出了本发明实施例提供的一种实现PCB走线自动等间距的方法的流程示意图。如图1所示,该方法包括步骤S101~S105。
在步骤S101,根据框选指令选中目标线段组,目标线段组包括彼此平行但间距不等的属性为走线的多条线段。
在用户进行框选操作后,得到一个框选区域,获取框选区域的四个顶点坐标,作为边界阈值。读取出框选区域内属性为走线的所有线段作为目标线段组。由于在走线规则中设置了走线角度,可以保证目标线段组中的各条线段都是平行的,但无法保证间距相等。
在步骤S102,识别目标线段组的最边沿的两条线段,作为两条基准线段。
具体方法如下:
依次获取目标线段组中各条线段的起点坐标和终点坐标;
根据各条线段的起点坐标和终点坐标判断目标线段组的类型,若各条线段的起点和终点横坐标相同,则目标线段组为竖直线段组,若各条线段的起点和终点纵坐标相同,则目标线段组为水平线段组,若各条线段的起点和终点横坐标、纵坐标均不相同,则目标线段组为斜线段组;
若目标线段组为竖直线段组,确定起点横坐标最小的线段和起点横坐标最大的线段作为两条基准线段;若目标线段组为水平线段组,确定起点纵坐标最小的线段和起点纵坐标最大的线段作为两条基准线段;若目标线段组为斜线段组,确定与坐标原点距离最小的线段和与坐标原点距离最大的线段作为两条基准线段。
具体地,对于直线组,分别拾取到框选的每条线段的起点坐标与终点坐标。并以冒泡法得出水平线段的最大起点纵坐标,最小起点纵坐标;得出竖直线段的最大起点横坐标,最小起点横坐标,即可得到两条基准线。
对于斜线组,通过几何算法计算出最边沿的两条线段作为基准线段。以一条斜线段为例,提取起点坐标(x1,y1),终点坐标(x2,y2),求出该线段斜率:
k=(y2-y1)/(x2-x1)
计算该线段到坐标原点的垂直距离t,表达式为:
t=(|y1-k*x1|)/(k2+1)1/2
找到与坐标原点距离最小的线段和与坐标原点距离最大的线段,即可得到两条基准线。
在步骤S103,计算两条基准线段之间的总间距。
具体方法如下:
若所述目标线段组为竖直线段组,计算两条基准线段的起点横坐标的差值,作为总间距;
若所述目标线段组为水平线段组,计算两条基准线段的起点纵坐标的差值,作为总间距;
若所述目标线段组为斜线段组,根据两条基准线段各自的起点坐标和终点坐标计算总间距,具体如下式:
d=(|(y12-(x12/(x11-x12)*(y11-y12)))-(y22-(x22/(x21-x22))*(y21-y22)))|)/((1+((y11-y12)/(x11-x12)))1/2),
其中d表示总间距,(x11,y11)、(x12,y12)表示一条基准线段的起点坐标和终点坐标,(x21,y21)、(x22,y22)表示另一条基准线段的起点坐标和终点坐标。
对于斜线段组,首先获得基准线段1的起点与终点坐标:(x11,y11),(x12,y12),再获得基准线段2的起点与终点坐标:(x21,y21),(x22,y22),再通过以下公式即可计算得出两条平行斜线的相对距离d:
a=(|(y12-(x12/(x11-x12)*(y11-y12)))-(y22-(x22/(x21-x22))*(y21-y22)))|)
d=a/((1+((y11-y12)/(x11-x12)))1/2)
在步骤S104,根据总间距和目标线段组的线段数,计算各条线段之间的平均间距。
假设线段数为N,总间距d除以(N-1),即可得到各条线段之间的平均间距。
在步骤S105,根据平均间距调整两条基准线段之间的各条中间线段,使目标线段组的间距相等。
具体方法如下:
对各条中间线段,依次执行以下操作:
1、根据平均间距计算中间线段的新起点坐标和新终点坐标,在新起点坐标和新终点坐标之间生成新线段。
新线段与原有的中间线段是等长的。同样分为三种情况:
对于竖直线段组,假设两条基准线段的起点纵坐标之差为D,两条基准线段之间的线段数为T。第一条需要移动的中间线段与最左侧的基准线段的距离为:D/(T+1),假设基准线段最小起点横坐标为X1,则X1+D/(T+1)即可得到第一条需生成的中间线起点横坐标,X1+2D/(T+1)即可得到第二条需生成的中间线起点横坐标,以此类推,一共得到T条中间线。
对于水平线段组,假设两条基准线段的起点纵坐标之差为D,两条基准线段之间的线段数为T。第一条需要移动的中间线段与最下方的基准线段的距离为:D/(T+1),假设基准线段最小起点纵坐标为Y1,则Y1+D/(T+1)即可得到第一条需生成的中间线起点纵坐标,Y1+2D/(T+1)即可得到第二条需生成的中间线起点纵坐标,以此类推,一共得到T条中间线的起点和终点。
对于斜线段组,两条基准线段的起点坐标分别记为(x1,y1),(x2,y2),两条基准线段之间的线段数为T。
先求出横坐标差与纵坐标差:xd=|x1-x2|,yd=|y1-y2|。
再求出第一条中间线与靠左基准线的距离:xdt=|x1-x2|/(T+1),ydt
=|y1-y2|/(T+1)。
则第一条中间线上各点的新坐标为:(x+xdt,y+ydt),(x,y)为原坐标;
第二条中间线上各点的新坐标为:(x+2xdt,y+2ydt),(x,y)为原坐标;
以此类推,一共得到T条中间线的起点和终点。
2、识别与中间线段的原线段相连接的两侧线段。
3、将两侧线段与新线段连接。
中间线段的原线段左侧线段记为线段a,中间线段的原线段右侧线段记为b。将新线段的起点与线段a相连接,将新线段的终点与线段b相连接。由于布线规则里设置只能走线为45°、90°、135°、180°,因此新线段只会以竖直、水平、45°、135°与线段a、b连接。
这里又分为两种情况:
若生成的新线段在原线段下方,则延长线段a、b直到与新线段相交。
若生成的新线段在原线段上方,则延长新线段直到与线段a、b相交。
4、删除中间线段的原线段以及两侧线段与新线段连接后位于连接点以外的多余线段。
本发明实施例提供的一种实现PCB走线自动等间距的方法,在用户框选走线组后,走线组即会以最边沿两条走线为边界,在边界区域内将每条走线调整为等间距的状态。与现有技术相比,可以带来如下效果:
本方案针对的对象为所框选的线段,并非框选的信号,等间距的效果只在一段很短的线段中有效,不会影响到未被框选的信号。
本方案只需要进入命令,框选所需选取的信号线段,就可以自动执行命令并达到所需达到的效果,效率获得提升。
本方案以边沿线段限定区域,无需打过孔,命令运行成功率大大提高,可用性也得到巨大提升。
另外说明,本发明实施例是根据PCB工程师对走线美观、信号顺畅的要求设计的一种基于skill程序编写的走线组自动等间距的方法,并植入Allegro内形成命令。在实际操作中,包括步骤:
(一)编写skill程序;
skill程序中需要设置程序调用入口快捷键,便于Allegro调用。
(二)使用接口文件调用对应skill程序;
将skill程序编写完成后,需要改写系统的接口文件调用skill程序才能在Allegro内使用。以下为找到并改写skill程序的方法:
将程序封装为.il文件。
查看计算机的环境变量值,并找到变量值指向的文件夹。
将实现本功能的.il程序文件放入环境变量值指向的文件夹内。
在该文件内找到allegro.ilinit文件,allegro.ilinit文件即为接口文件
使用Notepad打开allegro.ilinit文件。
使用load函数根据环境变量指向的文件夹路径调用该.il程序文件。
(三)激活skill程序。
1、完成上述步骤后,重新启动Allegro
2、在命令框内输入设置好的程序调用入口快捷键,并按回车键结束,即可激活skill程序。
3、使用鼠标在Allegro内框选需要自动等间距的走线组,走线组即会以最边沿两条走线为边界,在边界区域内将每条走线调整为与其他走线间距相等的状态。
图2示出了本发明实施例提供的一种实现PCB走线自动等间距的装置的结构示意图。如图2所示,该装置包括:框选模块201、基准线识别模块202、第一计算模块203、第二计算模块204和调整模块205,其中,
框选模块201,用于根据框选指令选中目标线段组,所述目标线段组包括彼此平行但间距不等的属性为走线的多条线段;
基准线识别模块202,用于识别所述目标线段组的最边沿的两条线段,作为两条基准线段;
第一计算模块203,用于计算所述两条基准线段之间的总间距;
第二计算模块204,用于根据所述总间距和所述目标线段组的线段数,计算各条线段之间的平均间距;
调整模块205,用于根据所述平均间距调整所述两条基准线段之间的各条中间线段,使所述目标线段组的间距相等。
进一步地,基准线识别模块202,包括:
坐标获取单元,用于依次获取所述目标线段组中各条线段的起点坐标和终点坐标;
类型判断单元,用于根据各条线段的起点坐标和终点坐标判断所述目标线段组的类型,若各条线段的起点和终点横坐标相同,则所述目标线段组为竖直线段组,若各条线段的起点和终点纵坐标相同,则所述目标线段组为水平线段组,若各条线段的起点和终点横坐标、纵坐标均不相同,则所述目标线段组为斜线段组;
确定单元,用于若所述目标线段组为竖直线段组,确定起点横坐标最小的线段和起点横坐标最大的线段作为两条基准线段;若所述目标线段组为水平线段组,确定起点纵坐标最小的线段和起点纵坐标最大的线段作为两条基准线段;若所述目标线段组为斜线段组,确定与坐标原点距离最小的线段和与坐标原点距离最大的线段作为两条基准线段。
进一步地,第一计算模块203,用于若所述目标线段组为竖直线段组,计算两条基准线段的起点横坐标的差值,作为总间距;
若所述目标线段组为水平线段组,计算两条基准线段的起点纵坐标的差值,作为总间距;
若所述目标线段组为斜线段组,根据两条基准线段各自的起点坐标和终点坐标计算总间距,具体如下式:
d=(|(y12-(x12/(x11-x12)*(y11-y12)))-(y22-(x22/(x21-x22))*(y21-y22)))|)/((1+((y11-y12)/(x11-x12)))1/2),
其中d表示总间距,(x11,y11)、(x12,y12)表示一条基准线段的起点坐标和终点坐标,(x21,y21)、(x22,y22)表示另一条基准线段的起点坐标和终点坐标。
进一步地,调整模块205,包括:
生成单元,用于对各条中间线段,根据所述平均间距计算所述中间线段的新起点坐标和新终点坐标,在所述新起点坐标和所述新终点坐标之间生成新线段;
识别单元,用于识别与所述中间线段的原线段相连接的两侧线段;
连接单元,用于将所述两侧线段与所述新线段连接;
删除单元,用于删除所述中间线段的原线段以及所述两侧线段与所述新线段连接后位于连接点以外的多余线段。
本发明实施例提供的实现PCB走线自动等间距的装置是用于执行上述方法实施例的,其具体流程和详细内容请参照上述实施例,此处不再赘述。
图3为本发明实施例提供的电子设备结构示意图。如图3所示,该电子设备可以包括:处理器(processor)301、存储器(memory)302和通信总线303,其中,处理器301和存储器302通过通信总线303完成相互间的通信。处理器301可以执行存储器302中的程序指令,以实现上述方法实施例。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法实施例。
另一方面,本发明实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现上述方法实施例。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种实现PCB走线自动等间距的方法,其特征在于,所述方法通过Allegro软件中调用的skill程序实现,所述方法包括:
根据框选指令选中目标线段组,所述目标线段组包括彼此平行但间距不等的属性为走线的多条线段;
识别所述目标线段组的最边沿的两条线段,作为两条基准线段;
计算所述两条基准线段之间的总间距;
根据所述总间距和所述目标线段组的线段数,计算各条线段之间的平均间距;
根据所述平均间距调整所述两条基准线段之间的各条中间线段,使所述目标线段组的间距相等。
2.根据权利要求1所述的方法,其特征在于,其中识别所述目标线段组的最边沿的两条线段,作为两条基准线段包括:
依次获取所述目标线段组中各条线段的起点坐标和终点坐标;
根据各条线段的起点坐标和终点坐标判断所述目标线段组的类型,若各条线段的起点和终点横坐标相同,则所述目标线段组为竖直线段组,若各条线段的起点和终点纵坐标相同,则所述目标线段组为水平线段组,若各条线段的起点和终点横坐标、纵坐标均不相同,则所述目标线段组为斜线段组;
若所述目标线段组为竖直线段组,确定起点横坐标最小的线段和起点横坐标最大的线段作为两条基准线段;若所述目标线段组为水平线段组,确定起点纵坐标最小的线段和起点纵坐标最大的线段作为两条基准线段;若所述目标线段组为斜线段组,确定与坐标原点距离最小的线段和与坐标原点距离最大的线段作为两条基准线段。
3.根据权利要求1所述的方法,其特征在于,其中计算所述两条基准线段之间的总间距包括:
若所述目标线段组为竖直线段组,计算两条基准线段的起点横坐标的差值,作为总间距;
若所述目标线段组为水平线段组,计算两条基准线段的起点纵坐标的差值,作为总间距;
若所述目标线段组为斜线段组,根据两条基准线段各自的起点坐标和终点坐标计算总间距,具体如下式:
d=(|(y12-(x12/(x11-x12)*(y11-y12)))-(y22-(x22/(x21-x22))*(y21-y22)))|)/((1+((y11-y12)/(x11-x12)))1/2),
其中d表示总间距,(x11,y11)、(x12,y12)表示一条基准线段的起点坐标和终点坐标,(x21,y21)、(x22,y22)表示另一条基准线段的起点坐标和终点坐标。
4.根据权利要求1所述的方法,其特征在于,其中根据所述平均间距调整所述两条基准线段之间的各条中间线段,使所述目标线段组的间距相等包括:
对各条中间线段,依次执行以下操作:
根据所述平均间距计算所述中间线段的新起点坐标和新终点坐标,在所述新起点坐标和所述新终点坐标之间生成新线段;
识别与所述中间线段的原线段相连接的两侧线段;
将所述两侧线段与所述新线段连接;
删除所述中间线段的原线段以及所述两侧线段与所述新线段连接后位于连接点以外的多余线段。
5.一种实现PCB走线自动等间距的装置,其特征在于,包括:
框选模块,用于根据框选指令选中目标线段组,所述目标线段组包括彼此平行但间距不等的属性为走线的多条线段;
基准线识别模块,用于识别所述目标线段组的最边沿的两条线段,作为两条基准线段;
第一计算模块,用于计算所述两条基准线段之间的总间距;
第二计算模块,用于根据所述总间距和所述目标线段组的线段数,计算各条线段之间的平均间距;
调整模块,用于根据所述平均间距调整所述两条基准线段之间的各条中间线段,使所述目标线段组的间距相等。
6.根据权利要求5所述的装置,其特征在于,所述基准线识别模块,包括:
坐标获取单元,用于依次获取所述目标线段组中各条线段的起点坐标和终点坐标;
类型判断单元,用于根据各条线段的起点坐标和终点坐标判断所述目标线段组的类型,若各条线段的起点和终点横坐标相同,则所述目标线段组为竖直线段组,若各条线段的起点和终点纵坐标相同,则所述目标线段组为水平线段组,若各条线段的起点和终点横坐标、纵坐标均不相同,则所述目标线段组为斜线段组;
确定单元,用于若所述目标线段组为竖直线段组,确定起点横坐标最小的线段和起点横坐标最大的线段作为两条基准线段;若所述目标线段组为水平线段组,确定起点纵坐标最小的线段和起点纵坐标最大的线段作为两条基准线段;若所述目标线段组为斜线段组,确定与坐标原点距离最小的线段和与坐标原点距离最大的线段作为两条基准线段。
7.根据权利要求5所述的装置,其特征在于,所述第一计算模块,用于若所述目标线段组为竖直线段组,计算两条基准线段的起点横坐标的差值,作为总间距;
若所述目标线段组为水平线段组,计算两条基准线段的起点纵坐标的差值,作为总间距;
若所述目标线段组为斜线段组,根据两条基准线段各自的起点坐标和终点坐标计算总间距,具体如下式:
d=(|(y12-(x12/(x11-x12)*(y11-y12)))-(y22-(x22/(x21-x22))*(y21-y22)))|)/((1+((y11-y12)/(x11-x12)))1/2),
其中d表示总间距,(x11,y11)、(x12,y12)表示一条基准线段的起点坐标和终点坐标,(x21,y21)、(x22,y22)表示另一条基准线段的起点坐标和终点坐标。
8.根据权利要求5所述的装置,其特征在于,所述调整模块,包括:
生成单元,用于对各条中间线段,根据所述平均间距计算所述中间线段的新起点坐标和新终点坐标,在所述新起点坐标和所述新终点坐标之间生成新线段;
识别单元,用于识别与所述中间线段的原线段相连接的两侧线段;
连接单元,用于将所述两侧线段与所述新线段连接;
删除单元,用于删除所述中间线段的原线段以及所述两侧线段与所述新线段连接后位于连接点以外的多余线段。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任一项所述的方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110747979.9A CN113486624B (zh) | 2021-07-01 | 2021-07-01 | 实现pcb走线自动等间距的方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110747979.9A CN113486624B (zh) | 2021-07-01 | 2021-07-01 | 实现pcb走线自动等间距的方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113486624A true CN113486624A (zh) | 2021-10-08 |
CN113486624B CN113486624B (zh) | 2024-01-12 |
Family
ID=77940173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110747979.9A Active CN113486624B (zh) | 2021-07-01 | 2021-07-01 | 实现pcb走线自动等间距的方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113486624B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1520565A (zh) * | 2000-12-07 | 2004-08-11 | 凯登斯设计系统有限公司 | 布线方法和装置 |
US20060277505A1 (en) * | 2005-06-02 | 2006-12-07 | Oki Electric Industry Co., Ltd. | Method for automatically designing semiconductor device and automatic designing apparatus thereof |
CN104503464A (zh) * | 2014-12-30 | 2015-04-08 | 中南大学 | 基于计算机的凸多边形农田无人机喷洒作业航迹规划方法 |
CN108984912A (zh) * | 2018-07-19 | 2018-12-11 | 郑州云海信息技术有限公司 | 一种pcb设计自动调整线段间距的方法及系统 |
US20200034506A1 (en) * | 2018-07-26 | 2020-01-30 | Ncku Research And Development Foundation | Chip and power planning method |
CN112669410A (zh) * | 2020-12-30 | 2021-04-16 | 广东三维家信息科技有限公司 | 线宽调整方法、装置、计算机设备和存储介质 |
-
2021
- 2021-07-01 CN CN202110747979.9A patent/CN113486624B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1520565A (zh) * | 2000-12-07 | 2004-08-11 | 凯登斯设计系统有限公司 | 布线方法和装置 |
US20060277505A1 (en) * | 2005-06-02 | 2006-12-07 | Oki Electric Industry Co., Ltd. | Method for automatically designing semiconductor device and automatic designing apparatus thereof |
CN104503464A (zh) * | 2014-12-30 | 2015-04-08 | 中南大学 | 基于计算机的凸多边形农田无人机喷洒作业航迹规划方法 |
CN108984912A (zh) * | 2018-07-19 | 2018-12-11 | 郑州云海信息技术有限公司 | 一种pcb设计自动调整线段间距的方法及系统 |
US20200034506A1 (en) * | 2018-07-26 | 2020-01-30 | Ncku Research And Development Foundation | Chip and power planning method |
CN112669410A (zh) * | 2020-12-30 | 2021-04-16 | 广东三维家信息科技有限公司 | 线宽调整方法、装置、计算机设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
杨瑞元: "朝向目标的线探索法――用小型计算机实现自动布线", 计算机学报, no. 04, pages 273 - 282 * |
Also Published As
Publication number | Publication date |
---|---|
CN113486624B (zh) | 2024-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6713141B1 (ja) | レイアウト解析方法、読書補助装置、回路及び媒体 | |
EP3761230A1 (en) | Image processing method, device, storage medium and computer program product | |
US9207858B2 (en) | Method and apparatus for drawing and erasing calligraphic ink objects on a display surface | |
CN106325737B (zh) | 一种书写路径擦除方法及设备 | |
US11526272B2 (en) | Systems and methods for interactive image caricaturing by an electronic device | |
KR20100135281A (ko) | 손으로 그려진 표를 인식하기 위한 방법 및 툴 | |
US10109083B2 (en) | Local optimization for curvy brush stroke synthesis | |
JP3574202B2 (ja) | 図形入出力装置 | |
CN113313083B (zh) | 文本检测方法及装置 | |
CN110737944A (zh) | 一种基于Revit生成楼板的方法及生成装置 | |
CN101763234A (zh) | 一种模拟各种屏幕分辨率的方法及其装置 | |
CN106934842B (zh) | 闭合区域的识别方法和装置 | |
CN113657396A (zh) | 训练方法、译文展示方法、装置、电子设备以及存储介质 | |
US20070266307A1 (en) | Auto-layout of shapes | |
CN109947101A (zh) | 路径平滑处理方法及装置 | |
CN106294686B (zh) | 一种应用于计算机技术领域思维导图中快速更新树结点位置坐标的方法 | |
CN113538623B (zh) | 确定目标图像的方法、装置、电子设备及存储介质 | |
CN113205090B (zh) | 图片矫正方法、装置、电子设备及计算机可读存储介质 | |
CN113486624A (zh) | 实现pcb走线自动等间距的方法、装置及电子设备 | |
CN110544284B (zh) | 一种自动规划最优布局流程图的方法 | |
CN106920269A (zh) | 图形处理方法和装置 | |
CN116259064A (zh) | 表格结构识别方法、表格结构识别模型的训练方法及装置 | |
CN115359502A (zh) | 一种图像处理方法、装置、设备以及存储介质 | |
CN109739501A (zh) | 在绝对定位布局中实现流式效果的方法、装置及电子设备 | |
CN113223020B (zh) | 一种清扫区域的分区方法、装置及清扫设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230705 Address after: 518057 1701, Yanxiang science and technology building, 31 Gaoxin middle Fourth Road, Maling community, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province Applicant after: Yanxiang smart IOT Technology Co.,Ltd. Address before: No.1, Yanxiang Zhigu chuangxiangdi, No.11, Gaoxin Road, Guangming New District, Shenzhen, Guangdong 518107 Applicant before: EVOC INTELLIGENT TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |