Python在CAM软件Genesis2000中的应用(2)

  三、在CAM软件genesis2000中配置Python

  1. 在genesis2000初始化文件中加入对Python程序的支持

  修改Genesis 2000的脚本初始化文件scr_start.csh,使genesis2000能够执行Python程序,代码改动如下:

  ……          ########检查程序首行代码

  set _HEAD=`head -1 $PROG`

  set _EXT=`echo $PROG:e`

  ……

  else if("$_HEAD" =~ *python*)then ######实现对Python程序的支持####

  echo "Executing Python Program $PROG $argv"

  python $PROG $argv

  set PROG_STATUS=$status

  ……

  2. genesis2000命令的Python接口

  包括genesis2000基本命令SU_ON、SU_OFF、VON、VOF、PAUSE、MOUSE、COM、AUX、DO_INFO:

  ######此程序模块(Modules)名为genClasses.py

  class Genesis:

  def __init__(self):

  self.prefix = '@%#%@'   #### 传给genesis2000 的命令代码前缀

  ……

  def SU_ON(self):

  return self.sendCmd('SU_ON')

  def SU_OFF(self):

  return self.sendCmd('SU_OFF')

  def VON(self):

  return self.sendCmd('VON')

  def VOF(self):

  return self.sendCmd('VOF')

  def PAUSE(self, msg):

  self.sendCmd('PAUSE', msg)

  self.STATUS = string.atoi(raw_input())

  self.READANS = raw_input()

  self.PAUSANS = raw_input()

  return self.STATUS

  def MOUSE(self, msg, mode='p'):

  self.sendCmd('MOUSE ' + mode, msg)

  self.STATUS = string.atoi(raw_input())

  self.READANS = raw_input()

  self.MOUSEANS = raw_input()

  return self.STATUS

  def COM(self, args):

  self.sendCmd('COM', args)

  self.STATUS = string.atoi(raw_input())

  self.READANS = raw_input()

  self.COMANS = self.READANS[:]

  return self.STATUS

  def AUX(self, args):

  self.sendCmd('AUX', args)

  self.STATUS = string.atoi(raw_input())

  self.READANS = raw_input()

  self.COMANS = self.READANS[:]

  return self.STATUS

  def DO_INFO(self, args):

  self.COM('info,out_file=%s,write_mode=replace,args=%s' % (self.tmpfile,args))

  #self.PAUSE('Hi')

  lineList = open(self.tmpfile, 'r').readlines()

  #print lineList

  os.unlink(self.tmpfile)

  infoDict = self.parseInfo(lineList)

  return infoDict

  ......

  3. genesis2000的Python程序中常调用的接口程序介绍:

  这些模块包括:

  1)genBasic.py :这个模块为Genesis 2000环境提供非常基本的接口,它定义了一些基本的功能,以便象COM,PAUSE,AUX,MOUSE,INFO,DO_INFO等命令能够被执行。用法是这样的:

  from genBasic import *

  COM('open_job,job='+jobName)

  PAUSE('Job is opened')

  2)genClasses.py :这个模块拥有几个并行模块,这些并行模块提供Genesis基本命令之上的附加功能,这个模块拥有几个抽象Genesis2000接口的类,以使用Python编写的程序执行更快更容易。如名为Genesis的类:定义了使用Genesis的底层接口方法,它是作为更高层对象的一个基类。

  3)genCommands.py :这个模块拥有几个genClasses.py中定义的类的子类,包括在每个类中都能执行的几个命令。

  4)genFeatures.py :这个模块用来定义属性,它提供呈现Genesis属性的类,现在可以呈现Pad, Line, Arc, Text, and Barcode(surface还不支持),当然,这些功能比DFM环境要慢一些,对于小的JOB很好用,功能上讲,它位于Genesis 基本命令之上。

  5)genPersist.py :这个模块为Genesis-Python接口提供一个持续框架。Python对象可能会储存到Genesis料号的目录中,这个目录就是misc目录。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwsdyz.html