Advertisement
danfalck

testpost.py

Nov 16th, 2014
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.21 KB | None | 0 0
  1. ################################################################################
  2. # centroid1.py
  3. #
  4. # Post Processor for the centroid M40 machine
  5. #
  6. #
  7. # Dan Falck, 7th March 2010
  8.  
  9. import nc
  10. import iso_modal
  11. import math
  12.  
  13. import datetime
  14.  
  15. now = datetime.datetime.now()
  16. #now = "now"
  17.  
  18.  
  19.  
  20. ################################################################################
  21. class Creator(iso_modal.Creator):
  22.    
  23.     def __init__(self):
  24.         iso_modal.Creator.__init__(self)
  25.  
  26.         self.useCrc =False
  27.         self.useCrcCenterline = True
  28.         self.absolute_flag = True
  29.         self.prev_g91 = ''
  30.         self.safe_z =None
  31.     def SPINDLE(self, format, speed): return(self.SPACE() + 'S' + (format % speed))
  32. ################################################################################
  33. #cutter comp
  34.  
  35.     #def crc_on(self):
  36.     #    self.useCrc = True
  37.     #    self.useCrcCenterline = True
  38.  
  39.     #def crc_off(self):
  40.     #    self.useCrc = False
  41.  
  42. ################################################################################
  43. # general
  44.  
  45.     def comment(self, text):
  46.         self.write(';' + text +'\n')  
  47.     def write_blocknum(self):
  48.         pass
  49.  
  50.     def SPACE(self): return('')
  51. ################################################################################
  52. # settings for absolute or incremental mode
  53.     def absolute(self):
  54.         self.write(self.ABSOLUTE()+'\n')        
  55.         self.absolute_flag = True
  56.  
  57.     def incremental(self):
  58.         self.write(self.INCREMENTAL()+'\n')
  59.         self.absolute_flag = False
  60.  
  61. ################################################################################
  62. # APT style INSERT- insert anything into program
  63.  
  64.     def insert(self, text):
  65.         self.write((text + '\n'))
  66.  
  67. ################################################################################
  68. # program begin and end
  69.  
  70.     def program_begin(self, id, name=''):
  71.         self.write(';time:'+str(now)+'\n')
  72.         self.write('G17 G20 G80 G40 G90\n')
  73.        
  74.  
  75.     def program_end(self):
  76.         self.write('M05\n')
  77.         self.write('M25\n')
  78.         self.write('G00 X-1.0 Y1.0\n')
  79.         self.write('G17 G80 G40 G90\n')
  80.         self.write('M99\n')
  81.  
  82.     def program_stop(self, optional=False):
  83.         self.write_blocknum()
  84.         if (optional) :
  85.             self.write(self.STOP_OPTIONAL() + '\n')
  86.         else :
  87.             self.write('M05\n')
  88.             self.write('M25\n')
  89.             self.write(self.STOP() + '\n')
  90.             self.prev_g0123 = ''
  91. ################################################################################
  92. # coordinate system ie G54-G59
  93.  
  94.     def workplane(self, id):
  95.         self.write('M25\n')
  96.         if ((id >= 1) and (id <= 6)):
  97.             self.g_list.append(self.WORKPLANE() % (id + self.WORKPLANE_BASE()))
  98.         if ((id >= 7) and (id <= 9)):
  99.             self.g_list.append(((self.WORKPLANE() % (6 + self.WORKPLANE_BASE())) + ('.%i' % (id - 6))))
  100.         self.prev_g0123 = ''            
  101.  
  102. ################################################################################
  103. # clearance plane
  104.  
  105.     def clearanceplane(self,z=None):
  106.         self.safe_z = z
  107. ################################################################################
  108. # return to home
  109.     def rapid_home(self, x=None, y=None, z=None, a=None, b=None, c=None):
  110.         """Rapid relative to home position"""
  111.         self.write('M05\n')              
  112.         self.write('M25\n')
  113.         self.write(self.RAPID())
  114.         self.write(self.X() + (self.fmt % x))
  115.         self.write(self.Y() + (self.fmt % y))
  116.         self.write('\n')                    
  117.                      
  118. ################################################################################
  119. # tool info
  120.     def tool_change(self, id):
  121.         self.write_blocknum()
  122.         self.write((self.TOOL() % id) + '\n')
  123.         self.t = id
  124.         self.write('M25\n')
  125.         if self.safe_z == None:
  126.             self.write('G43 H'+ str(id) + ' Z')
  127.             self.write('1.0')
  128.             self.write ('\n')
  129.             pass
  130.         else:
  131.             self.write('G43 H'+ str(id) + ' Z')
  132.             self.write(str(self.safe_z))
  133.             self.write ('\n')
  134.  
  135.  
  136.     def tool_defn(self, id, name='', radius=None, length=None, gradient=None):
  137.         #self.write('G43 \n')
  138.         pass
  139.  
  140.     def write_spindle(self):
  141.         pass
  142.  
  143.  
  144.     def spindle(self, s, clockwise):
  145.         if s < 0:
  146.             clockwise = False
  147.             s = abs(s)
  148.        
  149.         self.s = self.SPINDLE(self.FORMAT_ANG(), s)
  150.         if clockwise:
  151.             self.write(self.SPINDLE_CW()+self.SPACE() + self.s+ '\n')                
  152.             #self.write(self.s +  '\n')
  153.             #self.write('G04 P2.0 \n')
  154.                
  155.         else:
  156.             self.write(self.SPINDLE_CCW()+self.SPACE() + self.s + '\n')
  157.             #self.write('G04 P2.0 \n')
  158.  
  159.     def end_canned_cycle(self):
  160.         self.write_blocknum()
  161.         self.write(self.SPACE() + self.END_CANNED_CYCLE() + '\n')
  162.         self.prev_drill = ''
  163.         self.prev_g0123 = ''
  164.         self.prev_z = ''  
  165.         self.prev_f = ''
  166.         self.prev_retract = ''
  167.         self.write('M05\n')
  168.         self.write('M25\n')
  169.         self.write('G00 X-1.0 Y1.0\n')
  170.  
  171. nc.creator = Creator()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement