一种PCB设计中批量移动装配层文字的方法与流程

文档序号:11199516阅读:708来源:国知局

本发明涉及pcb设计技术领域,特别涉及一种pcb设计中批量移动装配层文字的方法。



背景技术:

在pcb(printedcircuitboard,印刷电路板)设计的后期,装配层的文字需要进行批量移动。按照目前行业内的设计规范,装配层的文字需要移动到器件的中心,用于工厂生产时装配使用。现有的技术方案是逐一点击文字,查看文字属于的器件,然后将文字移动到器件中心。

现有的技术方案工作量大、设置速度慢,且在手动移动的过程中可能会出现错误和遗漏,影响设计的质量。这一过程有规律可循,可以通过编程快捷实现。

基于此,本发明设计了一种pcb设计中批量移动装配层文字的方法。

目前在市场上有多款pcb设计软件,cadence作为业界应用最广泛的软件,不仅是它拥有强大的功能和多款相关软件做支撑,还因为它提供了开放式的二次开发接口和较为完善的开发语言库,用户可根据自身的需要进行开发。

skill语言是cadence软件内置的一种基于c语言和lisp语言的高级编程语言,cadence为skill语言提供了丰富的交互式函数,研究skill语言继而编写工具,投入应用可以大大提高工作效率。

allegro是一种先进的pcb设计布线工具,提供了良好且交互的工作接口和强大完善的功能,和它的前端产品cadence、orcad、capture的结合,为当前高速、高密度、多层的复杂pcb设计布线提供了最完美解决方案。



技术实现要素:

本发明为了弥补现有技术的缺陷,提供了一种简单高效的pcb设计中批量移动装配层文字的方法。

本发明是通过如下技术方案实现的:

一种pcb设计中批量移动装配层文字的方法,其特征在于:采用遍历嵌套的方法逐个遍历所有器件和器件上附加的文字,获取器件上附加的所有文字;在遍历过程中对文字进行检查,判断文字是否属于装配层;若判断文字处于装配层,则执行计算移动操作,若判断文字不属于装配层,则跳过当前文字;最后,通过编写批量移动装配层文字的skill程序,并在pcb设计布线工具allegro中添加批量移动装配层文字功能按键,即可实现批量移动装配层文字。

所述遍历嵌套的方法先执行优先遍历,然后在每个优先遍历对象内执行次遍历;优先遍历对象为器件,当一个器件上所有的文字遍历完成后,跳转到下一个器件;次遍历对象为文字,执行次遍历时,对文字进行检查,判断文字是否属于装配层。

通过获取文字属性中的层面项目的值,并与“refdes/assemblytop”以及“refdes/assemblybottom”字符串相比较来判断文字是否属于装配层;若层面项目的值与“refdes/assemblytop”和“refdes/assemblybottom”字符串中任意一项一致则说明此文字属于装配层,执行计算移动的操作;不一致则说明不符合移动条件,跳过对应文字。

本发明的有益效果是:该pcb设计中批量移动装配层文字的方法,可以快速将装配层的文字移动器件中心,简化了设计中手动逐个移动的复杂过程,在提高效率的同时,还有利于保证设计质量。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

该pcb设计中批量移动装配层文字的方法,采用遍历嵌套的方法逐个遍历所有器件和器件上附加的文字,获取器件上附加的所有文字;在遍历过程中对文字进行检查,判断文字是否属于装配层;若判断文字处于装配层,则执行计算移动操作,若判断文字不属于装配层,则跳过当前文字;最后,通过编写批量移动装配层文字的skill程序,并在pcb设计布线工具allegro中添加批量移动装配层文字功能按键,即可实现批量移动装配层文字。

所述遍历嵌套的方法先执行优先遍历,然后在每个优先遍历对象内执行次遍历;优先遍历对象为器件,当一个器件上所有的文字遍历完成后,跳转到下一个器件;次遍历对象为文字,执行次遍历时,对文字进行检查,判断文字是否属于装配层。

优先遍历对象为器件而不是文字,原因在于以下两点:

(1)选择器件而不是文字是因为器件的位置相对固定,而文字的位置不固定,出现文字错位、与器件距离较远等情况都是正常的,对于使用者而言,器件比文字更直观,针对哪一部分操作一目了然;

(2)文字的数量远远多于器件,往往一个器件上附加好几类文字,因此文字的数量大约是器件数量的2-4倍,且筛选后不满足移动条件的数量多,大部分的遍历都属于无用操作,大大影响执行效率,在本发明的调试阶段测试后对比发现,选择器件比选择文字效率可以提高三倍。

通过获取文字属性中的层面项目的值,并与“refdes/assemblytop”以及“refdes/assemblybottom”字符串相比较来判断文字是否属于装配层;若层面项目的值与“refdes/assemblytop”和“refdes/assemblybottom”字符串中任意一项一致则说明此文字属于装配层,执行计算移动的操作;不一致则说明不符合移动条件,跳过对应文字。

移动文字时坐标的计算过程需要分别获取器件中心的坐标,文字的坐标,文字的字号,和文字的高度,然后将文字高度乘0.15作为误差值加入计算。文字属性中有一项是bbox,即为文字的限定框,其值由两个点的坐标组成,分别是文字占据空间的左下角坐标和右上角坐标,而这个获取的限定框比肉眼可见的实际值偏大,文字处于这个限定框上方,下方留有空白。

如果不考虑误差,移动结果会显示文字处于器件中心偏上的位置。而文字的坐标也与这个误差有关系。导致误差的根本原因是文字高度与肉眼可见的实际值有差距,文字下方有留白,因此将高度的0.15倍作为误差加入计算,这个数值是对比多个研究结果后制定的。计算坐标时,需要的数值是文字的位移距离,正为右移,负为左移,具体的计算公式如下所示:

symsizeb=axldbaltorigin(centeri)

symsizex=car(symsizeb)

symsizex=cadr(symsizeb)

excursion=axlgetparam(strcat(“paramtextblock:”j->textblock))->height

jx=symsizex-textsizex+0.15*excursion

jy=symsizey-textsizey-0.15*excursion

所述pcb设计布线工具allegro的配置以操作过程如下:

(1)进行软件配置文件及快捷键的修改,首先,在allegro.ilinit文件中添加load(“ua_set.il”),其中,ua_set.il为源程序文件,此命令用于加载程序;其次,在env文件中添加快捷键,以按键f3为例,funckeyf3ua_set,其中,ua_set为在程序中定义的命令,执行此命令后即运行本发明所指的程序,现在,此命令以快捷键f3代替;

(2)打开allegro软件,按下快捷键f3,确认层面后点击start即可运行程序;

(3)运行开始后框选器件,选中器件的装配层文字会随着选择进行移动,框选全部则移动设计中所有的装配层文字。

按以上步骤,即可完成对装配层文字的批量移动。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1