四、一个简单的Python程序
(1). 程序功能
取得料号的拼版信息
(2).程序步骤
1. 判断程序是否在一个料号的STEP中运行;
2. all layers;
3. 动态取得STEP的系统属性:comment;
4. 取得所有layers的polarity;
5. 取得STEP的profile信息;
6. and repeat table表格,并取得这个料号的拼版信息。
(3).程序代码
#!/bin/env python
_header= {
'author' : 'test',
'date' : '09/12/2008',
'revision' : 'version 1.0',
'title' : 'example',
'description' : '''
This is an example Python script
'''
}
# 导入标准Python模块
import os, sys, string
#假如我们将python接口类genClasses等放在了目录/genesis/sys/scripts/下
sys.path.append('/genesis/sys/scripts/')
# 导入本地资源
import genClasses
print genClasses._header
print genClasses.__file__
#判断程序是否在一个JOB的STEP中运行
if 'JOB' and 'STEP' not in os.environ.keys():
gen = genClasses.Genesis()
gen.PAUSE('Need to run this from within a job and step...')
sys.exit()
# 取得我们所进入JOB名
job = genClasses.Job(os.environ['JOB'])
# 取得当前STEP名
step = job.steps[os.environ['STEP']]
#打开STEP,然后clear all layers
step.open('yes')
step.clearAll()
#动态取得STEP的系统属性:comment
print 'value of this steps comment attribute:',
print step.comment
#取得所有layers的polarity
pat = '%s %s'
print pat % ('Layer', 'Polarity')
for lay in step.layers.keys(): print pat % (step.layers[lay].name, step.layers[lay].out_polarity)
#取得STEP的profile信息
STR = '%f x %f' % (step.profile.xsize,step.profile.ysize )
print 'Step Size::',STR
#进入step and repeat table表格,并取得这个料号的拼版信息
STR = 'N:%f S:%f E:%f W:%f' %
(step.sr.nBorder,step.sr.sBorder,step.sr.eBorder,step.sr.wBorder)
print 'borders::',STR
print "STEP -REPEAT TABLE....... (This doesn't work yet"
print '------------------------------'
pat = '%-12.12s %5f %5f %5f %5f %5f %5f %i %-3.3s'
for row in step.sr.table:
STR = pat % (row.step, row.xanchor, row.yanchor, row.xdist, row.ydist, row.xnum,row.ynum, row.angle, row.mirror)
print STR
该程序简单介绍了Python程序的写法,虽然例子中未使用图形界面,但是其实Python是可以使用图形界面的,比如说C Shell使用的GUI,还有Tkinter,QT等工具,GUI和TK我们常见,QT则如下所示(与Vtcl有异曲同工):
五、小结
本文从Python与CShell、Tcl/Tk及Perl/Tk的比较开始阐述Python的特点;随后介绍Python的语法,重点介绍了其中类的使用;再后面说明怎样配置Python运行的环境和接口;最后用实例说明genesis2000中Python程序的写法。Python语言除能应用在CAM的genesis2000中外,还有很多的应用领域,如:
红帽(Red Hat )曾用Python 和Tk 一起成功开发配置和管理操作系统的可视界面。整个系统可以全面控制Linux 操作系统,并根据用户选择对配置文件作自动更新。
Infoseek 在其公用搜索引擎使用了Python。该公司还用Python 对其软件进行定制,使最终用户能对该网站内容进行方便下载。
美国航空航天局也在不少领域中用到Python 程序语言,最出名的莫过于在任务控制中心将Python用于任务计划;对Python 在其它方面的使用例如用其计算天体方位和设计卫星的路径等等都充分体现了Python 的超强计算能力。
从上可以看出,Python拥有广泛的应用,说明它是一种比较成熟而方便的语言,相信在genesis2000 的自动化程序中同样能够表现很好。