def returnToHome(self): """Where does it finish ?""" side_X, side_Y, corner_radius = self.getGrooveAdjustments() file_text = addDebugFrame(inspect.currentframe()) file_text += self.machine.setMode('INCR') file_text += G.G0_XY((side_X / 2, -corner_radius + (side_Y / 2))) return file_text
def _getGCode(self, order_int): file_text = self._startProgram() # move to start, at safe-Z, in INCR mode file_text += G.set_INCR_mode() file_text += G.G0_XY(( \ self.startRefs['x_starting_ref'], \ self.startRefs['y_starting_ref'] \ )) height_to_cut = self.workpiece_params['stock_height'] while height_to_cut > 0: # move down to top of stock file_text += G.set_ABS_mode() file_text += G.G0_Z(height_to_cut) # get to cutting height height_to_cut = max( height_to_cut - self.cutting_params['cut_per_pass'], 0) file_text += G.set_ABS_mode() file_text += G.G1_Z( height_to_cut) # could be G0 here, but it's good practice # This is other magic for A/B: special order of paths. file_text += self.cutFingers(order_int) file_text += self.returnToStart(order_int) file_text += self.returnToHome() file_text += self._endProgram() return file_text
def moveToStart(self): """Where does it start ?""" side_X, side_Y, corner_radius = self.getGrooveAdjustments() file_text = addDebugFrame(inspect.currentframe()) file_text += self.machine.setMode('INCR') file_text += G.G0_XY((-side_X / 2, corner_radius - (side_Y / 2))) return file_text
def returnToHome(self): """Reference position is the center, return from corner.""" side_X, side_Y = self.getGrooveAdjustments() file_text = addDebugFrame(inspect.currentframe()) file_text += self.machine.setMode('INCR') file_text += G.G0_XY((side_X / 2, side_Y / 2)) return file_text
def returnToHome(self): file_text = self.machine.moveToSafeZ() file_text += G.set_INCR_mode() file_text += G.G0_XY(( \ - self.startRefs['x_starting_ref'], \ - self.startRefs['y_starting_ref'], \ )) return file_text
def returnToHome(self): log('LinearDistribution returnToHome: %s' % (self.__repr__())) delta_X = self.option_queries[DeltaXQuery].getValue() delta_Y = self.option_queries[DeltaYQuery].getValue() num_repeats = self.option_queries[NumRepeatQuery].getValue() - 1 file_text = self.machine.setMode('INCR') file_text += G.G0_XY( (-(delta_X * num_repeats), -(delta_Y * num_repeats))) return file_text
def returnFromReference(self): """Core interface.""" file_text = addDebugFrame(inspect.currentframe()) ref_X = self.option_queries[ReferenceXQuery].getValue() ref_Y = self.option_queries[ReferenceYQuery].getValue() file_text += self.returnToHome() file_text += self.machine.setMode('INCR') file_text += G.G0_XY((-ref_X, -ref_Y)) return file_text
def returnToHome(self): # for starting point reference point params = self.getParams() delta_X = params['delta_X'] delta_Y = params['delta_Y'] file_text = '' if not self.at_start: file_text = self.machine.setMode('INCR') file_text += G.G0_XY((-delta_X, -delta_Y)) self.at_start = True return file_text
def distributeChildFeature(self): log('LinearDistribution distributeChildFeature: %s' % (self.__repr__())) log('LinearDistribution feature: %s' % (self.features[0].__repr__())) file_text = self.features[0].getGCode() delta_X = self.option_queries[DeltaXQuery].getValue() delta_Y = self.option_queries[DeltaYQuery].getValue() for _ in xrange(self.option_queries[NumRepeatQuery].getValue() - 1): log('LinearDistribution REPEAT: %s' % (self.__repr__())) file_text += self.machine.setMode('INCR') file_text += G.G0_XY((delta_X, delta_Y)) file_text += self.features[0].getGCode() return file_text
def returnToStart(self, order_int): distribution = self.getDistribution() stock_span = self.workpiece_params[ 'stock_width'] + self.machine_params['bit_diameter'] file_text = self.machine.moveToSafeZ() file_text += G.set_INCR_mode() if distribution['num_fingers'] % 2 == 0: file_text += G.G0_XY(( \ 0, \ - stock_span \ )) else: if order_int == 1: file_text += G.G0_XY((\ - self.cutting_params['finger_depth'], \ - stock_span \ )) else: file_text += G.G0_XY((\ self.cutting_params['finger_depth'], \ - stock_span \ )) return file_text
def returnToHome(self): """Assumes reference point at center.""" diameter = self._getAdjustedDiameter() file_text = self.machine.setMode('INCR') file_text += G.G0_XY((diameter / 2, 0)) return file_text