本文由haijunzeng贡献
pdf1。
用 python + wxPython 编写 Genesis Scripts
曾海军 广东梅州博敏电子 HDI 事业部工程部 navyzeng@126.com
摘要:
本文主要阐述用 python 这门编程语言配合对应的 wxPython 库来编写 Window
s XP 系统下的 Genesis Scripts.
关键词: 前言:
Python、
wxPython、 Genesis Script 、 开发效率、 可维护性
Genesis 是以色列 Frontline 公司开发的一款线路板方面的计算机辅助制造软
件,相对而言易学易用、 功能强大,尤其是分析和自动优化能力表现出色,该软件的
优点在此不多赘述。象其他 PCB CAM 软件一 样,Genesis 也可通过编写 Scripts 来
提高工作效率和减少出错。目前来看,常用来编写 Genesis Script 的工 具有:C s
hell+Genesis 界面命令、Perl/Tk、Tcl/Tk、Python+Python 界面库。他们都可以很
好的运行在 Linux/UNIX 和 Windows 下,这四种工具各自特点如下表:
脚本语言 特点 1、C Shell 配合 sed、awk、grep 等工具,外加 Genesis 自带
界面命令,足够用; 2、相对而言,勿需额外配置运行环境, 学习时间少,普及率最
多,几乎可``拿来就用``; C Shell 3、Genesis 系统开发和维护不可能不涉及 C Sh
ell,因此掌握 C Shell 也是不可缺少的; 4、许多功能实现起来相对没其他语言容
易,中文支持欠缺; 5、在 Windows 操作系统下运行速度相对其他语言稍有欠缺; 6
、可维护性方面相对来说最差,尤其是在开发大型 PCB CAM 应用时; 1、Perl 最大的
特点就是灵活,但这是双刃剑;强大的文本处理和数据析取能力 2、须按需配置运行环
境; Perl/Tk 3、相对而言,应用悠久,应用库最多,学习资料最多; 4、函数式编
程和面向对象编程使代码重用率大大提高,但面向对象方面没 Python 好; 5、学习或
上手时间相对更长,这也与 Perl 太灵活有很大关系; 6、因为 Perl 的太灵活,导
致其可维护性方面比较差 1、Tcl 是一种可嵌入的命令脚本化语言, 小巧,易学,高
效,跨平台执行; 2、须按需配置运行环境,还有 Visual Tcl 等可视化集成开发环境
; Tcl/Tk 3、功能比 C shell 强大,但还是比不上 perl 和 python; 4、Tk 是基于
Tcl 的图形程序开发工具箱, 是 Tcl 的重要扩展部分,被移植到 Perl 和 Python
里 5、国内使用不是很广泛,学习资料比较少; 6、可维护性一般; 1、语法简洁、强
大的内置数据结构、定位于全面开发的语言,可适用用于各种领域; 2、须按需配置
运行环境; Python 3、模块化编程和面向对象编程使代码重用率大大提高,当然开发周
期也大大缩短; 4、学习或上手时间相对较长,虽然易学,但要完全掌握面向对象编程
有一定难度; 5、应用库没 Perl 多,相关学习资料相对比较少,近几年国内才兴起
; 6、可维护性最好
笔者个人观点:兴趣是最好的老师,另须外加持之以恒;对于 Genesis Script
编写,C Shell 一定要会,
上升到一定程度,关键要选择适合自己的工具。比如原来用过 VB 语言的,用面
向对象的 Python 估计会如 鱼得水,当然以前没接触过面向对象开发的,可能就来得
缓点,这中间也因学习个体的素质而异,所以上 表的论断只是相对的。 本文对 Gen
esis 相关内部命令和变量等内容不予叙述,请参考相关文档。主要阐述用 python+w
xPython 来编写 Windows 操作系统下的 Genesis Scripts,先讲述 Python 这门语言
和一个优秀的界面工具包 —wxPython,再讲述具体的运行环境如何设置,然后结合一
个比较典型的实例来讲解,最后是总结分析。 一、 Python 基础: Python 是一种简
单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向
对象编程。Python 简洁的语法和对动态输入的支持,再加上解释性语言的本质,使
得它在大多数平台上的 许多领域都是一个理想的脚本语言,特别适用于快速的应用程
序开发。 1、 代码的缩进层次: 物理行是你在编写程序时所看见的。逻辑行是 Pyt
hon 看见的单个语句。Python 假定每个物理行对应一 个逻辑行。在逻辑行首的空白
(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分 组,这里推荐
以四个空格为基准。 2、 内置数据类型: Python 的内置数据类型包括数字、字符串
page 1