Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ################################################################################
- # centroid1.py
- #
- # Post Processor for the centroid M40 machine
- #
- #
- # Dan Falck, 7th March 2010
- import nc
- import iso_modal
- import math
- import datetime
- now = datetime.datetime.now()
- #now = "now"
- ################################################################################
- class Creator(iso_modal.Creator):
- def __init__(self):
- iso_modal.Creator.__init__(self)
- self.useCrc =False
- self.useCrcCenterline = True
- self.absolute_flag = True
- self.prev_g91 = ''
- self.safe_z =None
- def SPINDLE(self, format, speed): return(self.SPACE() + 'S' + (format % speed))
- ################################################################################
- #cutter comp
- #def crc_on(self):
- # self.useCrc = True
- # self.useCrcCenterline = True
- #def crc_off(self):
- # self.useCrc = False
- ################################################################################
- # general
- def comment(self, text):
- self.write(';' + text +'\n')
- def write_blocknum(self):
- pass
- def SPACE(self): return('')
- ################################################################################
- # settings for absolute or incremental mode
- def absolute(self):
- self.write(self.ABSOLUTE()+'\n')
- self.absolute_flag = True
- def incremental(self):
- self.write(self.INCREMENTAL()+'\n')
- self.absolute_flag = False
- ################################################################################
- # APT style INSERT- insert anything into program
- def insert(self, text):
- self.write((text + '\n'))
- ################################################################################
- # program begin and end
- def program_begin(self, id, name=''):
- self.write(';time:'+str(now)+'\n')
- self.write('G17 G20 G80 G40 G90\n')
- def program_end(self):
- self.write('M05\n')
- self.write('M25\n')
- self.write('G00 X-1.0 Y1.0\n')
- self.write('G17 G80 G40 G90\n')
- self.write('M99\n')
- def program_stop(self, optional=False):
- self.write_blocknum()
- if (optional) :
- self.write(self.STOP_OPTIONAL() + '\n')
- else :
- self.write('M05\n')
- self.write('M25\n')
- self.write(self.STOP() + '\n')
- self.prev_g0123 = ''
- ################################################################################
- # coordinate system ie G54-G59
- def workplane(self, id):
- self.write('M25\n')
- if ((id >= 1) and (id <= 6)):
- self.g_list.append(self.WORKPLANE() % (id + self.WORKPLANE_BASE()))
- if ((id >= 7) and (id <= 9)):
- self.g_list.append(((self.WORKPLANE() % (6 + self.WORKPLANE_BASE())) + ('.%i' % (id - 6))))
- self.prev_g0123 = ''
- ################################################################################
- # clearance plane
- def clearanceplane(self,z=None):
- self.safe_z = z
- ################################################################################
- # return to home
- def rapid_home(self, x=None, y=None, z=None, a=None, b=None, c=None):
- """Rapid relative to home position"""
- self.write('M05\n')
- self.write('M25\n')
- self.write(self.RAPID())
- self.write(self.X() + (self.fmt % x))
- self.write(self.Y() + (self.fmt % y))
- self.write('\n')
- ################################################################################
- # tool info
- def tool_change(self, id):
- self.write_blocknum()
- self.write((self.TOOL() % id) + '\n')
- self.t = id
- self.write('M25\n')
- if self.safe_z == None:
- self.write('G43 H'+ str(id) + ' Z')
- self.write('1.0')
- self.write ('\n')
- pass
- else:
- self.write('G43 H'+ str(id) + ' Z')
- self.write(str(self.safe_z))
- self.write ('\n')
- def tool_defn(self, id, name='', radius=None, length=None, gradient=None):
- #self.write('G43 \n')
- pass
- def write_spindle(self):
- pass
- def spindle(self, s, clockwise):
- if s < 0:
- clockwise = False
- s = abs(s)
- self.s = self.SPINDLE(self.FORMAT_ANG(), s)
- if clockwise:
- self.write(self.SPINDLE_CW()+self.SPACE() + self.s+ '\n')
- #self.write(self.s + '\n')
- #self.write('G04 P2.0 \n')
- else:
- self.write(self.SPINDLE_CCW()+self.SPACE() + self.s + '\n')
- #self.write('G04 P2.0 \n')
- def end_canned_cycle(self):
- self.write_blocknum()
- self.write(self.SPACE() + self.END_CANNED_CYCLE() + '\n')
- self.prev_drill = ''
- self.prev_g0123 = ''
- self.prev_z = ''
- self.prev_f = ''
- self.prev_retract = ''
- self.write('M05\n')
- self.write('M25\n')
- self.write('G00 X-1.0 Y1.0\n')
- nc.creator = Creator()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement