一种PCB丝印调整***和方法
技术领域
本发明属于PCB设计的技术领域,具体涉及一种PCB丝印调整***和方法。
背景技术
复杂PCB的设计一般都是采用功能强大的布局布线设计工具。布局布线设计工具是一个交互的环境,用于建立和编辑复杂的多层PCB,其丰富功能可以满足当今世界设计和制造的需求。针对目标按时完成***的协同设计,使PCB设计平台能够协同设计高性能的集成电路、封装和PCB的互连,降低成本并加快产品上市。众多品牌的布局布线设计工具除了本身拥有丰富的功能外,还允许使用者通过合适的语言对软件进行二次开发,从而开发出满足特定需求的设计的辅助功能。
在PCB的电路设计开发中,丝印调整设计是一个必不可少的过程,现有的设计软件功能在丝印调整方面所能提供的是:1、一种方法是将器件字符通过subdrawing命令将器件字符以独立的字符属性导入到新的板子中,导入前必须先将旧板中的器件字符删除,然后再将新的字符导入,而且导入的字符和其对应器件的连接关系消失,不能进行关联,如果后续再进行调整,将是十分麻烦的事情;2、另一种办法是将器件分partition给到协作的人,这样做的话,需要保证大家在这段时间只能调整丝印,不能走线,否则合在一起可能出现走线问题,而且,对于某些丝印,如果器件分给了A,丝印分给了B,则B就无法确认该器件丝印如何摆放,会造成很多问题。针对PCB丝印调整设计,目前大多数软件设计公司都没有开发出一个更加有效率的功能。
发明内容
本发明克服现有技术存在的不足,所要解决的技术问题为:提供一种减少丝印调整设计的时间,提高工作效率的PCB丝印调整***和方法。
为了解决上述技术问题,本发明采用的技术方案为:一种PCB丝印调整方法,包括:S101、在设计文件中创建存储文件;S102、获取丝印字符的相关属性,将相关属性输出到存储文件中,形成丝印字符的新信息;S103、在设计文件中导入存储文件,并读入存储文件中丝印字符的新信息;S104、判断是否能根据读入的丝印字符的新信息找到当前文件中对应的器件、且新信息和旧信息中的textBlock属性是否一致,如是,执行步骤S105,否则,执行步骤S107;S105、获取当前文件中对应器件的丝印字符的旧信息;S106、将新信息的相关属性值与旧信息的相关属性值进行比较和计算,得到丝印字符的相关操作数值,根据操作数值对丝印字符进行移动操作,完成丝印字符的调整;S107、判定当前读入的丝印字符为新增的丝印字符;S108、将新增的丝印字符按照其属性信息,放置到指定的位置,完成新增丝印字符的放置操作。
优选地,所述相关属性包括:text、xy、rotation、isMirrored、layer、textBlock,所述旧信息包括:objType属性、layer属性、xy属性;所述将新信息的相关属性值与旧信息的相关属性值进行比较和计算,得到丝印字符的相关操作数值,根据操作数值对丝印字符进行移动操作,完成丝印字符的调整,具体包括:将丝印字符的新xy坐标减去旧xy坐标,得到丝印字符需要移动的距离信息,将丝印字符的新旋转角度rotation减去旧旋转角度rotation,得到丝印字符需要旋转的角度信息;将丝印字符按照得到的距离信息移动,按照得到的旋转角度信息旋转,完成丝印字符的移动操作。
优选地,所述将新信息的相关属性值与旧信息的相关属性值进行比较和计算,得到丝印字符的相关操作数值,根据操作数值对丝印字符进行移动操作,完成丝印字符的调整,具体还包括:当丝印字符所在的新层和旧层不在同一层时,将丝印字符镜像到对应的丝印字符所在的新层。
优选地,所述判断是否能根据读入的丝印字符的新信息找到当前文件中对应的器件,具体包括:根据读入的丝印字符的新信息,在当前文件中查找丝印字符名称与读入的丝印字符名称一样的器件,如能查找到,则判定能根据读入的丝印字符的新信息找到当前文件中对应的器件,如不能查找到,则判定不能根据读入的丝印字符的新信息找到当前文件中对应的器件。
优选地,所述获取丝印字符的相关属性,将相关属性输出到存储文件中,形成丝印字符的新信息之前,还包括:设定过滤器,只选择text属性;设定窗口显示为器件的丝印字符层。
相应地,一种PCB丝印调整***,包括创建单元:用于在设计文件中创建存储文件;输出单元:用于获取丝印字符的相关属性,将相关属性输出到存储文件中,形成丝印字符的新信息;导入单元:用于在设计文件中导入存储文件,并读入存储文件中丝印字符的新信息;判断单元:用于判断是否能根据读入的丝印字符的新信息找到当前文件中对应的器件、且新信息和旧信息中的textBlock属性是否一致,如是,则获取当前文件中对应器件的丝印字符的旧信息,否则,则判定当前读入的丝印字符为新增的丝印字符;获取单元:用于获取当前文件中对应器件的丝印字符的旧信息;第一调整单元:用于将新信息的相关属性值与旧信息的相关属性值进行比较和计算,得到丝印字符的相关操作数值,根据操作数值对丝印字符进行移动操作,完成丝印字符的调整;判定单元:用于判定当前读入的丝印字符为新增的丝印字符;第二调整单元:用于将新增的丝印字符按照其属性信息,放置到指定的位置,完成新增丝印字符的放置操作。
优选地,所述相关属性包括:text、xy、rotation、isMirrored、layer、textBlock,所述旧信息包括:objType属性、layer属性、xy属性;所述第一调整单元包括:坐标计算单元:用于将丝印字符的新xy坐标减去旧xy坐标,得到丝印字符需要移动的距离信息;角度计算单元:用于将丝印字符的新旋转角度rotation减去旧旋转角度rotation,得到丝印字符需要旋转的角度信息;移动控制单元:用于将丝印字符按照得到的距离信息移动,按照得到的旋转角度信息旋转,完成丝印字符的移动操作。
优选地,所述第一调整单元还包括:镜像单元:用于当丝印字符所在的新层和旧层不在同一层时,将丝印字符镜像到对应的丝印字符所在的新层。
优选地,所述判断单元包括:查找单元:用于根据读入的丝印字符的新信息,在当前文件中查找丝印字符名称与读入的丝印字符名称一样的器件;确定单元:用于如能查找到,则判定能根据读入的丝印字符的新信息找到当前文件中对应的器件,如不能查找到,则判定不能根据读入的丝印字符的新信息找到当前文件中对应的器件。
优选地,还包括:第一设定单元:用于设定过滤器,只选择text属性;第二设定单元:用于设定窗口显示为器件的丝印字符层。
本发明与现有技术相比具有以下有益效果:本发明针对PCB的电路设计开发,将PCB丝印调整主要分为丝印字符文件输出和丝印字符文件导入两大部分,不仅可以让丝印调整和其他设计阶段分开,更可以通过多人调整丝印达到快速出板的目的,如此,设计者将会留出更多的时间做设计出资料前的检查工作,更能从容掌握设计进度,提高设计效率;此外,本发明的***和方法亦可使用在普通的PCB设计中,进行丝印协同调整。
附图说明
下面结合附图对本发明做进一步详细的说明;
图1为本发明实施例一提供的一种PCB丝印调整方法的流程示意图;
图2为本发明实施例一提供的一种PCB丝印调整***的结构示意图;
图3为本发明实施例二提供的一种PCB丝印调整***的结构示意图;
图4为本发明实施例三提供的一种PCB丝印调整***的结构示意图;
图5为本发明实施例四提供的一种PCB丝印调整***的结构示意图;
图6为本发明实施例五提供的一种PCB丝印调整***的结构示意图;
图7为本发明实施例六提供的一种PCB丝印调整***的结构示意图;
图中:101为创建单元,102为输出单元,103为导入单元,104为判断单元,105为获取单元,106为第一调整单元,107为判定单元,108为第二调整单元,109为第一设定单元,110为第二设定单元,111为更新单元,112为选择单元,1041查找单元,1042为确定单元,,1061为坐标计算单元,1062角度计算单元,1063为移动控制单元,1064为镜像单元。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例;基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一提供的一种PCB丝印调整方法的流程示意图,如图1所示,一种PCB丝印调整方法,包括:
S101、在设计文件中创建存储文件。
S102、获取丝印字符的相关属性,将相关属性输出到存储文件中,形成丝印字符的新信息。
S103、在设计文件中导入存储文件,并读入存储文件中丝印字符的新信息。
S104、判断是否能根据读入的丝印字符的新信息找到当前文件中对应的器件、且新信息和旧信息中的textBlock属性是否一致,如是,执行步骤S105,否则,执行步骤S107。
S105、获取当前文件中对应器件的丝印字符的旧信息。
S106、将新信息的相关属性值与旧信息的相关属性值进行比较和计算,得到丝印字符的相关操作数值,根据操作数值对丝印字符进行移动操作,完成丝印字符的调整。
S107、判定当前读入的丝印字符为新增的丝印字符。
S108、将新增的丝印字符按照其属性信息,放置到指定的位置,完成新增丝印字符的放置操作。
具体地,所述存储文件可为名称为refdes.txt的文件,用于存放处理后的丝印的新信息。
具体地,所述获取丝印字符的相关属性,将相关属性输出到存储文件中,形成丝印字符的新信息,具体包括:依次获取所选择的每一丝印字符的objType、text、xy、rotation、isMirrored、layer、textBlock、justify等属性,将每一丝印字符的text、xy、rotation、isMirrored、layer、textBlock属性,按照顺序输出到存储文件中,形成丝印字符的新信息;所有选择的丝印字符的属性输出完毕后,导出存储文件。
具体地,所述在设计文件中导入存储文件,并读入存储文件中丝印字符的新信息之前,包括:设定窗口显示为器件的丝印字符层。
具体地,所述读入存储文件中丝印字符的新信息,具体包括:逐行读入存储文件中的丝印字符的新信息,其中,一行数据为一个丝印字符的新信息。
具体地,所述当前文件是指未进行丝印调整的文件。
进一步地,所述相关属性包括:text、xy、rotation、isMirrored、layer、textBlock,所述旧信息包括:objType属性、layer属性、xy属性。
所述将新信息的相关属性值与旧信息的相关属性值进行比较和计算,得到丝印字符的相关操作数值,根据操作数值对丝印字符进行移动操作,完成丝印字符的调整,具体包括:将丝印字符的新xy坐标减去旧xy坐标,得到丝印字符需要移动的距离信息,将丝印字符的新旋转角度rotation减去旧旋转角度rotation,得到丝印字符需要旋转的角度信息;将丝印字符按照得到的距离信息移动,按照得到的旋转角度信息旋转,完成丝印字符的移动操作。
进一步地,所述将新信息的相关属性值与旧信息的相关属性值进行比较和计算,得到丝印字符的相关操作数值,根据操作数值对丝印字符进行移动操作,完成丝印字符的调整,具体还包括:当丝印字符所在的新层和旧层不在同一层时,将丝印字符镜像到对应的丝印字符所在的新层。
进一步地,所述判断是否能根据读入的丝印字符的新信息找到当前文件中对应的器件,具体包括:根据读入的丝印字符的新信息,在当前文件中查找丝印字符名称与读入的丝印字符名称一样的器件,如能查找到,则判定能根据读入的丝印字符的新信息找到当前文件中对应的器件,如不能查找到,则判定不能根据读入的丝印字符的新信息找到当前文件中对应的器件。
进一步地,所述获取丝印字符的相关属性,将相关属性输出到存储文件中,形成丝印字符的新信息之前,还包括:设定过滤器,只选择text属性;设定窗口显示为器件的丝印字符层。
进一步地,所述设定窗口显示为器件的丝印字符层之后,还包括:新UI界面,只显示设定的丝印字符层;选择需要的丝印字符。
实施例二中,所述PCB丝印调整方法包括:丝印字符文件导出步骤和丝印字符文件导入步骤。
所述丝印字符文件导出步骤包括:
S201、在设计文件目录下创建refdes.txt文件,用于存放处理后的丝印的新信息。
S202、设定过滤器,只选择text属性。
S203、设定窗口显示为器件的丝印字符层。
S204、更新UI界面,只显示设定的丝印字符层。
S205、选择需要的丝印字符。
S206、依次获取所选择的每一丝印字符的objType、text、xy、rotation、isMirrored、layer、textBlock、justify等属性。
S207、将每一丝印字符的text、xy、rotation、isMirrored、layer、textBlock属性,按照顺序输出到refdes.txt文件中,形成丝印字符的新信息。
S208、判断所有选择的丝印字符的属性是否输出完毕,如是,则执行步骤S209,否则,返回步骤206。
S209、导出refdes.txt文件。
所述丝印字符文件导入步骤包括:
S301、导入refdes.txt文件。
S302、设定窗口显示为器件的丝印字符层。
S303、逐行读入存储文件中的丝印字符的新信息,其中,一行数据为一个丝印字符的新信息。
S304、根据当前读入的丝印字符的新信息,获取当前文件(未进行丝印调整的文件)中对应器件的丝印字符的旧信息(即当前文件中有一个器件的丝印字符名称与读入的丝印字符的名称一样,通过丝印字符名称即可找到当前文件中对应的器件)。
S305、获取旧信息中的objType、layer、xy属性。
S306、判断通过当前读入的丝印字符是否找到当前文件中对应的器件,且新信息和旧信息中的textBlock属性是否一致,如是,执行步骤S307,否则,执行步骤S309。
S307、用丝印字符的新xy坐标减去旧xy坐标,得到丝印字符需要移动的距离信息;用丝印字符的新旋转角度rotation减去旧旋转角度rotation,得到丝印字符需要旋转的角度信息。
S308、将丝印字符按照得到的距离信息移动,按照得到的旋转角度信息旋转,并镜像到对应的丝印字符所在的新层(如果丝印字符所在的新层和旧层不在同一层),完成丝印字符的移动操作。
S309、判定当前读入的丝印字符为新增的丝印字符。
S310、创建字符命令,将新增的丝印字符按照其属性信息,放置到指定的位置,完成新增丝印字符的放置操作。
S311、判断存储文件中所有的丝印字符是否全部移动完毕,如是,结束,否则,返回步骤S304。
图2为本发明实施例一提供的一种PCB丝印调整***的结构示意图,如图2所示,相应地,一种PCB丝印调整***,包括:
创建单元101:用于在设计文件中创建存储文件。
输出单元102:用于获取丝印字符的相关属性,将相关属性输出到存储文件中,形成丝印字符的新信息。
导入单元103:用于在设计文件中导入存储文件,并读入存储文件中丝印字符的新信息。
判断单元104:用于判断是否能根据读入的丝印字符的新信息找到当前文件中对应的器件、且新信息和旧信息中的textBlock属性是否一致,如是,则获取当前文件中对应器件的丝印字符的旧信息,否则,则判定当前读入的丝印字符为新增的丝印字符。
获取单元105:用于获取当前文件中对应器件的丝印字符的旧信息。
第一调整单元106:用于将新信息的相关属性值与旧信息的相关属性值进行比较和计算,得到丝印字符的相关操作数值,根据操作数值对丝印字符进行移动操作,完成丝印字符的调整。
判定单元107:用于判定当前读入的丝印字符为新增的丝印字符。
第二调整单元108:用于将新增的丝印字符按照其属性信息,放置到指定的位置,完成新增丝印字符的放置操作。
图3为本发明实施例二提供的一种PCB丝印调整***的结构示意图,如图3所示,在实施例一的基础上,所述相关属性包括:text、xy、rotation、isMirrored、layer、textBlock,所述旧信息包括:objType属性、layer属性、xy属性。
所述第一调整单元106包括:
坐标计算单元1061:用于将丝印字符的新xy坐标减去旧xy坐标,得到丝印字符需要移动的距离信息。
角度计算单元1062:用于将丝印字符的新旋转角度rotation减去旧旋转角度rotation,得到丝印字符需要旋转的角度信息。
移动控制单元1063:用于将丝印字符按照得到的距离信息移动,按照得到的旋转角度信息旋转,完成丝印字符的移动操作。
图4为本发明实施例三提供的一种PCB丝印调整***的结构示意图,如图4所示,在实施例二的基础上,所述第一调整单元106还包括:
镜像单元1064:用于当丝印字符所在的新层和旧层不在同一层时,将丝印字符镜像到对应的丝印字符所在的新层。
图5为本发明实施例四提供的一种PCB丝印调整***的结构示意图,如图5所示,在实施例一的基础上,所述判断单元104包括:
查找单元1041:用于根据读入的丝印字符的新信息,在当前文件中查找丝印字符名称与读入的丝印字符名称一样的器件。
确定单元1042:用于如能查找到,则判定能根据读入的丝印字符的新信息找到当前文件中对应的器件,如不能查找到,则判定不能根据读入的丝印字符的新信息找到当前文件中对应的器件。
图6为本发明实施例五提供的一种PCB丝印调整***的结构示意图,如图6所示,在实施例一的基础上,所述PCB丝印调整***还包括:
第一设定单元109:用于设定过滤器,只选择text属性。
第二设定单元110:用于设定窗口显示为器件的丝印字符层。
图7为本发明实施例六提供的一种PCB丝印调整***的结构示意图,如图7所示,在实施例五的基础上,所述PCB丝印调整***还包括:
更新单元111:用于更新UI界面,只显示设定的丝印字符层。
选择单元112:用于选择需要的丝印字符。
上述实施例所要解决的问题是针对PCB丝印字符调整设计的特点,能够让设计者快速协同完成丝印调整,不仅可以让丝印调整和其他设计阶段分开,更可以通过多人调整丝印达到快速出板的目的,如此,设计者将会留出更多的时间做设计出资料前的检查工作,更能从容掌握设计进度,提高设计效率;此外,本发明的***和方法亦可使用在普通的PCB设计中,进行丝印协同调整。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。