CN107729009A - 一种pcb设计中旋转器件文字的方法 - Google Patents
一种pcb设计中旋转器件文字的方法 Download PDFInfo
- Publication number
- CN107729009A CN107729009A CN201710994243.5A CN201710994243A CN107729009A CN 107729009 A CN107729009 A CN 107729009A CN 201710994243 A CN201710994243 A CN 201710994243A CN 107729009 A CN107729009 A CN 107729009A
- Authority
- CN
- China
- Prior art keywords
- word
- text
- design
- rotation
- pcb design
- 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.)
- Pending
Links
- 238000013461 design Methods 0.000 title claims abstract description 47
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000012986 modification Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 238000007689 inspection Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
本发明公开一种PCB设计中旋转器件文字的方法,涉及PCB设计领域;在PCB设计中,利用Allegro中自定义shell程序框选PCB设计对象,选中并获取设计对象的器件,遍历选中的所有器件,获取每个器件上的附加文字,遍历器件上附加的所有文字,判断文字所属器件是否符合规定需要旋转文字的设计层面,符合则根据规定的文字格式对角度不正确的器件文字进行旋转操作,否则跳过该文字;一个器件上所有的文字遍历完成后,跳转到下一个器件,直至所有需要进行旋转操作的文字旋转完毕。
Description
技术领域
本发明公开一种旋转器件文字的方法,涉及PCB设计领域,具体的说是一种PCB设计中旋转器件文字的方法。
背景技术
在PCB设计的后期,为了规范设计,提高设计一致性及更方便查看,在装配层的文字需要进行旋转到合适角度,用于工厂生产装配使用。因此,在设计后期对装配层文字的旋转处理是必不可少的操作,但是现有的技术方案是逐一点击文字,查看文字属于的器件,然后将文字旋转至与器件方向对应的角度,此对应关系需要参照设计规范中的规定。如此做法不但工作量大、设置速度慢,且在手动旋转的过程中可能会出现错误和遗漏,影响设计的质量。本发明提供一种PCB设计中旋转器件文字的方法,快速旋转转PCB设计层面的文字为指定角度,简化了设计中手动逐个旋转的复杂过程。在提高效率的同时,也有效避免人工旋转过程中可能带来的错误和遗漏,有利于保证设计质量。
PCB( Printed Circuit Board),中文名称为印制电路板,又称印刷线路板,是重要的电子部件,是电子元器件的支撑体,是电子元器件电气连接的载体。由于它是采用电子印刷术制作的,故被称为"印刷"电路板。
Cadence Allegro作为PCB设计软件,是业界应用最广泛的软件,不仅是它拥有强大的功能和多款相关软件做支撑,还因为它提供了开放式的二次开发接口和较为完善的开发语言库,用户可根据自身的需要进行开发。
skill语言是Cadence软件内置的一种基于C语言和LISP语言的高级编程语言,Cadence为skill语言提供了丰富的交互式函数。
发明内容
本发明针对目前技术发展的需求和不足之处,提供一种PCB设计中旋转器件文字的方法。
一种PCB设计中旋转器件文字的方法,在PCB设计中,利用Allegro中自定义shell程序框选PCB设计对象,选中并获取设计对象的器件,遍历选中的所有器件,获取每个器件上的附加文字,遍历器件上附加的所有文字,判断器件的文字是否符合规定需要旋转文字的设计层面,符合则根据规定的文字格式对角度不正确的器件文字进行旋转操作,否则跳过该文字;一个器件上所有的文字遍历完成后,跳转到下一个器件,直至所有需要进行旋转操作的文字旋转完毕。
所述的方法中获取每个器件上的附加文字,先执行优先遍历,每个优先遍历对象内执行次遍历,在次遍历中对文字进行层面检查,获取文字属性中的层面项目的值,与设计层面相应的字符串比较判断是否一致,一致则器件的文字符合规定需要旋转文字的设计层面,否则不符合;符合则根据规定的文字格式对器件文字进行旋转操作,否则跳过该文字。
所述的方法中根据规定的文字格式,查看文字属性中rotation属性和mirror属性判断器件文字的角度是否正确。
所述的方法主要步骤:
在Allegro中自定义shell程序,进行软件配置文件及相应自定义shell程序快捷键的修改,
运行Allegro,执行自定义shell程序,
自定义shell程序框选PCB设计对象,选中并获取设计对象的器件,遍历选中的所有器件,获取每个器件上的附加文字,遍历器件上附加的所有文字,判断器件的文字是否符合规定需要旋转文字的设计层面,符合则根据规定的文字格式对角度不正确的器件文字进行旋转操作,否则跳过该文字;一个器件上所有的文字遍历完成后,跳转到下一个器件,直至所有需要进行旋转操作的文字旋转完毕。
所述的方法中在allegro.ilinit文件中添加load,用于加载自定义shell程序,在env文件中添加修改的快捷键。
本发明与现有技术相比具有的有益效果是:
本发明提供一种PCB设计中旋转器件文字的方法,在PCB设计中,利用Allegro中自定义shell程序框选PCB设计对象,选中并获取设计对象的器件,遍历选中的所有器件,获取每个器件上的附加文字,遍历器件上附加的所有文字,判断器件的文字是否符合规定需要旋转文字的设计层面,符合则根据规定的文字格式对角度不正确的器件文字进行旋转操作,否则跳过该文字;一个器件上所有的文字遍历完成后,跳转到下一个器件,直至所有需要进行旋转操作的文字旋转完毕;采用本发明,可以快速旋转PCB设计层面的文字为指定角度,简化了设计中手动逐个旋转的复杂过程。在提高效率的同时,也有效避免人工旋转过程中可能带来的错误和遗漏,有利于保证设计质量。
附图说明
图1本发明shell程序运行时弹窗的界面示意图;
图2 本发明shell程序运行时查看文字属性的界面示意图;
图3本发明实施例中规定的正确的文字格式示意图;
图4本发明举例的不正确的文字格式示意图;
图5本发明shell程序运行步骤流程示意图;
图6 PCB设计中文字没有旋转时示意图;
图7利用本发明方法后PCB设计中文字旋转后示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,对本发明进一步详细说明。
利用本发明方法,在Allegro中自定义shell程序,进行软件配置文件及相应自定义shell程序快捷键的修改,其中在allegro.ilinit文件中添加load,“ ua_rotate .il”,ua_rotate.il为源程序文件,此命令用于加载程序;在env文件中添加快捷键,以按键F3为例,funckey F3 ua_rotate ,ua_rotate 为在程序中定义的命令,执行此命令后即运行本发明所指的自定义shell程序,现在,此命令以快捷键F3代替;
运行Allegro,按下字母F3,确认层面后点击START即可运行程序,选择弹窗中的REFDES/ASSEMBLY,即装配层,以装配层为例进行器件文字的旋转,参考图1,可以看到列表中显示的内容为“REF DES/ASSEMBLY”,此层面即为装配层,用于工厂生产时装配零件用;此外也可用于旋转其他层面如丝印层,器件管脚等文字的旋转,在程序中修改操作层面和对象即可;
在图1界面点击“START”按钮后,框选PCB设计对象,对你选择框中的对象进行抓取,获取设计对象的器件,遍历选中的所有器件,获取每个器件上的附加文字,先执行优先遍历,每个优先遍历对象内执行次遍历,在次遍历中对文字进行层面检查,获取文字属性中的层面项目的值,与装配层REF DES/ASSEMBLY TOP”、“REF DES/ASSEMBLY BOTTOM”字符串相比较,
一致则文字属于装配层, 根据规定的文字格式对器件文字进行旋转操作,否则不符合选择条件,跳过该文字,一个器件上所有的文字遍历完成后,跳转到下一个器件,直至所有需要进行旋转操作的文字旋转完毕,参考图5;
其中规定的文字格式的可根据实际情况进行确定,比如根据文字属性中含有rotation和mirror的属性,可以通过show element功能查看,如图2对文字“LED3”进行查看,rotation是0度,mirror属性是not mirrored,rotation是指文字的旋转角度,水平正向视为0度,以逆时针旋转角度计,rotaton必须小于360度,mirror状态可确定器件所在的层面,mirror即为TOP层,not mirrored为BOTTOM层;同时规定文字可以为以下四种格式:
1)、mirror,rotation=0;
2)、mirror,rotation=90;
3)、not mirror,rotation=0;
4)、not mirror,rotation=270;
即规定的文字方向有两个基本原则,阅读文字时从左往右,由下至上,规定是文字必须90度旋转,保持横向或纵向,其他角度不被允许。同时,一般将纵向的器件上附加的文字旋转为纵向,保持与器件的方向一致,而阅读方向由下至上就对纵向的文字进行了规定,并不是两种纵向都可以;图3中展示了四种正确的方向,前两个文字是处于TOP层,未镜像,根据从左往右,由下至上的原则,符合规定的角度是0度和90度。后两个文字是处于BOTTOM层,镜像,根据从左往右,由下至上的原则,符合规定的角度是0度和270度,而图4展示了四种错误的方向,违反了从左往右,由下至上的原则。
利用上述步骤及规定的文字格式,对图6中器件文件进行旋转,旋转后的结果如图7所示。
Claims (5)
1.一种PCB设计中旋转器件文字的方法,其特征在于在PCB设计中,利用Allegro中自定义shell程序框选PCB设计对象,选中并获取设计对象的器件,遍历选中的所有器件,获取每个器件上的附加文字,遍历器件上附加的所有文字,判断器件的文字是否符合规定需要旋转文字的设计层面,符合则根据规定的文字格式对角度不正确的器件文字进行旋转操作,否则跳过该文字;一个器件上所有的文字遍历完成后,跳转到下一个器件,直至所有需要进行旋转操作的文字旋转完毕。
2.根据权利要求1所述的方法,其特征在于获取每个器件上的附加文字,先执行优先遍历,每个优先遍历对象内执行次遍历,在次遍历中对文字进行层面检查,获取文字属性中的层面项目的值,与设计层面相应的字符串比较判断是否一致,一致则器件的文字符合规定需要旋转文字的设计层面,否则不符合;符合则根据规定的文字格式对器件文字进行旋转操作,否则跳过该文字。
3.根据权利要求1或2所述的方法,其特征在于根据规定的文字格式,查看文字属性中rotation属性和mirror属性判断器件文字的角度是否正确。
4.根据权利要求1-3任一所述的方法,其特征在于主要步骤:
在Allegro中自定义shell程序,进行软件配置文件及相应自定义shell程序快捷键的修改,
运行Allegro,执行自定义shell程序,
自定义shell程序框选PCB设计对象,选中并获取设计对象的器件,遍历选中的所有器件,获取每个器件上的附加文字,遍历器件上附加的所有文字,判断器件的文字是否符合规定需要旋转文字的设计层面,符合则根据规定的文字格式对角度不正确的器件文字进行旋转操作,否则跳过该文字;一个器件上所有的文字遍历完成后,跳转到下一个器件,直至所有需要进行旋转操作的文字旋转完毕。
5.根据权利要求4所述的方法,其特征在于在allegro.ilinit文件中添加load,用于加载自定义shell程序,在env文件中添加修改的快捷键。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710994243.5A CN107729009A (zh) | 2017-10-23 | 2017-10-23 | 一种pcb设计中旋转器件文字的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710994243.5A CN107729009A (zh) | 2017-10-23 | 2017-10-23 | 一种pcb设计中旋转器件文字的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107729009A true CN107729009A (zh) | 2018-02-23 |
Family
ID=61212367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710994243.5A Pending CN107729009A (zh) | 2017-10-23 | 2017-10-23 | 一种pcb设计中旋转器件文字的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107729009A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113076715A (zh) * | 2021-04-02 | 2021-07-06 | 苏州谋时软件科技有限公司 | 一种在Allegro中创建文字块的方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101131709A (zh) * | 2006-08-22 | 2008-02-27 | 英业达股份有限公司 | 分工式电路布局图文字面处理方法及系统 |
KR20100053961A (ko) * | 2008-11-13 | 2010-05-24 | 주식회사 다한이엔지 | 피씨비 기판 레이저 양면 마킹장치 |
CN107145689A (zh) * | 2017-06-12 | 2017-09-08 | 郑州云海信息技术有限公司 | 一种pcb设计中检查文字方向的方法 |
CN107220439A (zh) * | 2017-05-27 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种pcb设计中批量移动装配层文字的方法 |
-
2017
- 2017-10-23 CN CN201710994243.5A patent/CN107729009A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101131709A (zh) * | 2006-08-22 | 2008-02-27 | 英业达股份有限公司 | 分工式电路布局图文字面处理方法及系统 |
KR20100053961A (ko) * | 2008-11-13 | 2010-05-24 | 주식회사 다한이엔지 | 피씨비 기판 레이저 양면 마킹장치 |
CN107220439A (zh) * | 2017-05-27 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种pcb设计中批量移动装配层文字的方法 |
CN107145689A (zh) * | 2017-06-12 | 2017-09-08 | 郑州云海信息技术有限公司 | 一种pcb设计中检查文字方向的方法 |
Non-Patent Citations (2)
Title |
---|
周润景等: "《Cadence电路板设计入门》", 31 October 2015, 西安电子科技大学出版社 * |
董一冰等: "《电子线路CAD》", 31 August 2014, 中国财富出版社 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113076715A (zh) * | 2021-04-02 | 2021-07-06 | 苏州谋时软件科技有限公司 | 一种在Allegro中创建文字块的方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11763078B2 (en) | Provisional selection drives edit suggestion generation | |
Pratas | Creating flat design websites | |
CN107194065A (zh) | 一种pcb设计中检查并设定约束值的方法 | |
Meiller | Modern app development with Dart and Flutter 2: A comprehensive introduction to flutter | |
WO2016021085A1 (ja) | データリンク生成装置、データリンク生成方法、データリンク構造および電子ファイル | |
Gaspar et al. | Mastering Flask Web Development: Build Enterprise-grade, Scalable Python Web Applications | |
Niska | Extending Bootstrap | |
Forrester et al. | How to Build Android Apps with Kotlin: A practical guide to developing, testing, and publishing your first Android apps | |
CN107729009A (zh) | 一种pcb设计中旋转器件文字的方法 | |
Barker | Learn SwiftUI: An introductory guide to creating intuitive cross-platform user interfaces using Swift 5 | |
Moore | Mastering GUI programming with Python: Develop impressive cross-platform GUI applications with Pyqt | |
Jakobus | Mastering Bootstrap 4: Master the latest version of Bootstrap 4 to build highly customized responsive web apps | |
de Paz | Tkinter GUI Application Development Cookbook: A practical solution to your GUI development problems with Python and Tkinter | |
Hillebrand et al. | Mastering RStudio-Develop, Communicate, and Collaborate with R | |
Peleg | Mastering Sublime Text | |
Morris | Hands-On Android UI Development: Design and develop attractive user interfaces for Android applications | |
Sahar | iOS 14 Programming for Beginners: Get started with building iOS apps with Swift 5.3 and Xcode 12 | |
Talbot et al. | Learning Android application programming: a hands-on guide to building Android applications | |
Fadda | An iOS Developer's Guide to SwiftUI: Design and build beautiful apps quickly and easily with minimum code | |
Yosifovich | Windows Presentation Foundation 4.5 Cookbook | |
Kotaru | Material Design Implementation with AngularJS | |
Firdaus et al. | HTML5 and CSS3: Building Responsive Websites | |
Lambert | Bootstrap Site Blueprints Volume II | |
Wals | Mastering iOS 12 Programming: Build professional-grade iOS applications with Swift and Xcode 10 | |
Wang | Introduction to computer programming with Python |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180223 |
|
RJ01 | Rejection of invention patent application after publication |