kopia lustrzana https://github.com/vilemduha/blendercam
				
				
				
			
		
			
				
	
	
		
			806 wiersze
		
	
	
		
			20 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			806 wiersze
		
	
	
		
			20 KiB
		
	
	
	
		
			Python
		
	
	
################################################################################
 | 
						|
# nc.py
 | 
						|
#
 | 
						|
# Base class for NC code creation
 | 
						|
# And global functions for calling current creator
 | 
						|
#
 | 
						|
# Hirutso Enni, 2009-01-13
 | 
						|
# altered by Dan Falck 2010-08-04
 | 
						|
# added tap() arguments Michael Haberler 2010-10-07
 | 
						|
################################################################################
 | 
						|
 | 
						|
ncOFF = 0
 | 
						|
 | 
						|
ncLEFT = -1
 | 
						|
ncRIGHT = +1
 | 
						|
 | 
						|
ncCW = -1
 | 
						|
ncCCW = +1
 | 
						|
 | 
						|
ncMIST = 1
 | 
						|
ncFLOOD = 2
 | 
						|
 | 
						|
################################################################################
 | 
						|
 | 
						|
 | 
						|
class Creator:
 | 
						|
 | 
						|
    def __init__(self):
 | 
						|
        pass
 | 
						|
 | 
						|
    ############################################################################
 | 
						|
    # Internals
 | 
						|
 | 
						|
    def file_open(self, name):
 | 
						|
        # self.buffer=[]
 | 
						|
        self.file = open(name, 'w')
 | 
						|
        self.filename = name
 | 
						|
 | 
						|
    def file_close(self):
 | 
						|
        # self.file.write(''.join(self.buffer))
 | 
						|
        # self.buffer=[]
 | 
						|
        self.file.close()
 | 
						|
 | 
						|
    def write(self, s):
 | 
						|
        self.file.write(s)
 | 
						|
        # self.buffer.append(s)
 | 
						|
        # if len(self.buffer)>100000:
 | 
						|
        #	self.file.write(''.join(self.buffer))
 | 
						|
        #	self.buffer=[]
 | 
						|
 | 
						|
    def writem(self, a):
 | 
						|
        self.file.write(''.join(a))
 | 
						|
        # self.buffer.extend(a)
 | 
						|
    ############################################################################
 | 
						|
    # Programs
 | 
						|
 | 
						|
    def program_begin(self, id, name=''):
 | 
						|
        """Begin a program"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def add_stock(self, type_name, params):
 | 
						|
        pass
 | 
						|
 | 
						|
    def program_stop(self, optional=False):
 | 
						|
        """Stop the machine"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def program_end(self):
 | 
						|
        """End the program"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def flush_nc(self):
 | 
						|
        """Flush all pending codes"""
 | 
						|
        pass
 | 
						|
 | 
						|
    ############################################################################
 | 
						|
    # Subprograms
 | 
						|
 | 
						|
    def sub_begin(self, id, name=''):
 | 
						|
        """Begin a subprogram"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def sub_call(self, id):
 | 
						|
        """Call a subprogram"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def sub_end(self):
 | 
						|
        """Return from a subprogram"""
 | 
						|
        pass
 | 
						|
 | 
						|
    ############################################################################
 | 
						|
    # Settings
 | 
						|
 | 
						|
    def imperial(self):
 | 
						|
        """Set imperial units"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def metric(self):
 | 
						|
        """Set metric units"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def absolute(self):
 | 
						|
        """Set absolute coordinates"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def incremental(self):
 | 
						|
        """Set incremental coordinates"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def polar(self, on=True):
 | 
						|
        """Set polar coordinates"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def set_plane(self, plane):
 | 
						|
        """Set plane"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def set_temporary_origin(self, x=None, y=None, z=None, a=None, b=None, c=None):
 | 
						|
        """Set temporary origin G92"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def remove_temporary_origin(self):
 | 
						|
        """Remote temporary origin G92.1"""
 | 
						|
        pass
 | 
						|
 | 
						|
    ############################################################################
 | 
						|
    # Tools
 | 
						|
 | 
						|
    def tool_change(self, id):
 | 
						|
        """Change the tool"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def tool_defn(self, id, name='', params=None):
 | 
						|
        """Define a tool"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def offset_radius(self, id, radius=None):
 | 
						|
        """Set tool radius offsetting"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def offset_length(self, id, length=None):
 | 
						|
        """Set tool length offsetting"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def current_tool(self):
 | 
						|
        return None
 | 
						|
 | 
						|
    ############################################################################
 | 
						|
    # Datums
 | 
						|
 | 
						|
    def datum_shift(self, x=None, y=None, z=None, a=None, b=None, c=None):
 | 
						|
        """Shift the datum"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def datum_set(self, x=None, y=None, z=None, a=None, b=None, c=None):
 | 
						|
        """Set the datum"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def workplane(self, id):
 | 
						|
        """Set the workplane"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def clearanceplane(self, z=None):
 | 
						|
        """set clearance plane"""
 | 
						|
        pass
 | 
						|
 | 
						|
    ############################################################################
 | 
						|
    # APT360 like Transformation Definitions
 | 
						|
    # These definitions were created while looking at Irvin Kraal's book on APT
 | 
						|
    # - Numerical Control Progamming in APT - page 211
 | 
						|
 | 
						|
    def matrix(self, a1=None, b1=None, c1=None, a2=None, b2=None, c2=None, a3=None, b3=None, c3=None):
 | 
						|
        """Create a matrix for transformations"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def translate(self, x=None, y=None, z=None):
 | 
						|
        """Translate in x,y,z direction"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def rotate(self, xyrot=None, yzrot=None, zxrot=None, angle=None):
 | 
						|
        """Rotate about a coordinate axis"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def scale(self, k=None):
 | 
						|
        """Scale by factor k"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def matrix_product(self, matrix1=None, matrix2=None):
 | 
						|
        """Create matrix that is the product of two other matrices"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def mirror_plane(self, plane1=None, plane2=None, plane3=None):
 | 
						|
        """Mirror image about one or more coordinate planes"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def mirror_line(self, line=None):
 | 
						|
        """Mirror about a line"""
 | 
						|
        pass
 | 
						|
 | 
						|
    ############################################################################
 | 
						|
    ##	Rates + Modes
 | 
						|
 | 
						|
    def feedrate(self, f):
 | 
						|
        """Set the feedrate"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def feedrate_hv(self, fh, fv):
 | 
						|
        """Set the horizontal and vertical feedrates"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def spindle(self, s, clockwise=True):
 | 
						|
        """Set the spindle speed"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def coolant(self, mode=0):
 | 
						|
        """Set the coolant mode"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def gearrange(self, gear=0):
 | 
						|
        """Set the gear range"""
 | 
						|
        pass
 | 
						|
 | 
						|
    ############################################################################
 | 
						|
    # Moves
 | 
						|
 | 
						|
    def rapid(self, x=None, y=None, z=None, a=None, b=None, c=None):
 | 
						|
        """Rapid move"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def feed(self, x=None, y=None, z=None, a=None, b=None, c=None):
 | 
						|
        """Feed move"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def arc_cw(self, x=None, y=None, z=None, i=None, j=None, k=None, r=None):
 | 
						|
        """Clockwise arc move"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def arc_ccw(self, x=None, y=None, z=None, i=None, j=None, k=None, r=None):
 | 
						|
        """Counterclockwise arc move"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def dwell(self, t):
 | 
						|
        """Dwell"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def rapid_home(self, x=None, y=None, z=None, a=None, b=None, c=None):
 | 
						|
        """Rapid relative to home position"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def rapid_unhome(self):
 | 
						|
        """Return from rapid home"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def set_machine_coordinates(self):
 | 
						|
        """Set machine coordinates"""
 | 
						|
        pass
 | 
						|
 | 
						|
    ############################################################################
 | 
						|
    # Cutter radius compensation
 | 
						|
 | 
						|
    def use_CRC(self):
 | 
						|
        """CRC"""
 | 
						|
        return False
 | 
						|
 | 
						|
    ############################################################################
 | 
						|
    # Cycles
 | 
						|
 | 
						|
    def pattern(self):
 | 
						|
        """Simple pattern eg. circle, rect"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def pocket(self):
 | 
						|
        """Pocket routine"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def profile(self):
 | 
						|
        """Profile routine"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def drill(self, x=None, y=None, dwell=None, depthparams=None, retract_mode=None, spindle_mode=None, internal_coolant_on=None, rapid_to_clearance=None):
 | 
						|
        """Drilling routines"""
 | 
						|
        pass
 | 
						|
 | 
						|
    # original prototype was:
 | 
						|
    # def tap(self, x=None, y=None, z=None, zretract=None, depth=None, standoff=None, dwell_bottom=None, pitch=None, stoppos=None, spin_in=None, spin_out=None):
 | 
						|
    #
 | 
						|
    # current call is like so:
 | 
						|
    # tap(x=10, y=10, z=0, tap_mode=0, depth=12.7, standoff=6.35, direction=0, pitch=1.25)
 | 
						|
    # just add tap_mode & direction parameters
 | 
						|
 | 
						|
    def tap(self, x=None, y=None, z=None, zretract=None, depth=None, standoff=None, dwell_bottom=None, pitch=None, stoppos=None, spin_in=None, spin_out=None, tap_mode=None, direction=None):
 | 
						|
        """Tapping routines"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def bore(self, x=None, y=None, z=None, zretract=None, depth=None, standoff=None, dwell_bottom=None, feed_in=None, feed_out=None, stoppos=None, shift_back=None, shift_right=None, backbore=False, stop=False):
 | 
						|
        """Boring routines"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def end_canned_cycle(self):
 | 
						|
        pass
 | 
						|
 | 
						|
    ############################################################################
 | 
						|
    # Misc
 | 
						|
 | 
						|
    def comment(self, text):
 | 
						|
        """Insert a comment"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def insert(self, text):
 | 
						|
        """APT style INSERT statement"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def block_delete(self, on=False):
 | 
						|
        """block to ignore if block delete switch is on"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def variable(self, id):
 | 
						|
        """Insert a variable"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def variable_set(self, id, value):
 | 
						|
        """Set a variable"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def probe_linear_centre_outside(self, x1=None, y1=None, depth=None, x2=None, y2=None):
 | 
						|
        pass
 | 
						|
 | 
						|
    def probe_single_point(self, point_along_edge_x=None, point_along_edge_y=None, depth=None, retracted_point_x=None, retracted_point_y=None, destination_point_x=None, destination_point_y=None, intersection_variable_x=None, intersection_variable_y=None, probe_offset_x_component=None, probe_offset_y_component=None):
 | 
						|
        pass
 | 
						|
 | 
						|
    def probe_downward_point(self, x=None, y=None, depth=None, intersection_variable_z=None):
 | 
						|
        pass
 | 
						|
 | 
						|
    def report_probe_results(self, x1=None, y1=None, z1=None, x2=None, y2=None, z2=None, x3=None, y3=None, z3=None, x4=None, y4=None, z4=None, x5=None, y5=None, z5=None, x6=None, y6=None, z6=None, xml_file_name=None):
 | 
						|
        pass
 | 
						|
 | 
						|
    def open_log_file(self, xml_file_name=None):
 | 
						|
        pass
 | 
						|
 | 
						|
    def log_coordinate(self, x=None, y=None, z=None):
 | 
						|
        pass
 | 
						|
 | 
						|
    def log_message(self, message=None):
 | 
						|
        pass
 | 
						|
 | 
						|
    def close_log_file(self):
 | 
						|
        pass
 | 
						|
 | 
						|
    def rapid_to_midpoint(self, x1=None, y1=None, z1=None, x2=None, y2=None, z2=None):
 | 
						|
        pass
 | 
						|
 | 
						|
    def rapid_to_intersection(self, x1, y1, x2, y2, x3, y3, x4, y4, intersection_x, intersection_y, ua_numerator, ua_denominator, ua, ub_numerator, ub):
 | 
						|
        pass
 | 
						|
 | 
						|
    def rapid_to_rotated_coordinate(self, x1, y1, x2, y2, ref_x, ref_y, x_current, y_current, x_final, y_final):
 | 
						|
        pass
 | 
						|
 | 
						|
    def set_path_control_mode(self, mode, motion_blending_tolerance, naive_cam_tolerance):
 | 
						|
        pass
 | 
						|
 | 
						|
    ############################################################################
 | 
						|
    # NC code creator for additive machines like RepRap
 | 
						|
 | 
						|
    def wipe(self):
 | 
						|
        """wipe routine"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def extruder_on(self):
 | 
						|
        """Turn on the extruder"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def extruder_off(self):
 | 
						|
        """turn off the extruder"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def set_extruder_flowrate(self, flowrate):
 | 
						|
        """Set the flowrate for the extruder"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def extruder_temp(self, temp):
 | 
						|
        """Set the extruder temp in celsius"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def fan_on(self):
 | 
						|
        """turn on the cooling fan"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def fan_off(self):
 | 
						|
        """turn off the cooling fan"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def build_bed_temp(self, temp):
 | 
						|
        """Set the bed temp in celsius"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def chamber_temp(self, temp):
 | 
						|
        """Set the chamber temp in celsius"""
 | 
						|
        pass
 | 
						|
 | 
						|
    def begin_ncblock(self):
 | 
						|
        # if the moves have come from backplotting nc code, then the nc code text can be given with these three functions
 | 
						|
        pass
 | 
						|
 | 
						|
    def end_ncblock(self):
 | 
						|
        pass
 | 
						|
 | 
						|
    def add_text(self, s, col, cdata):
 | 
						|
        pass
 | 
						|
 | 
						|
################################################################################
 | 
						|
 | 
						|
 | 
						|
creator = Creator()
 | 
						|
 | 
						|
############################################################################
 | 
						|
# Internals
 | 
						|
 | 
						|
 | 
						|
def write(s):
 | 
						|
    creator.write(s)
 | 
						|
 | 
						|
 | 
						|
def output(filename):
 | 
						|
    creator.file_open(filename)
 | 
						|
 | 
						|
############################################################################
 | 
						|
# Programs
 | 
						|
 | 
						|
 | 
						|
def program_begin(id, name=''):
 | 
						|
    creator.program_begin(id, name)
 | 
						|
 | 
						|
 | 
						|
def add_stock(type_name, params):
 | 
						|
    creator.add_stock(type_name, params)
 | 
						|
 | 
						|
 | 
						|
def program_stop(optional=False):
 | 
						|
    creator.program_stop(optional)
 | 
						|
 | 
						|
 | 
						|
def program_end():
 | 
						|
    creator.program_end()
 | 
						|
 | 
						|
 | 
						|
def flush_nc():
 | 
						|
    creator.flush_nc()
 | 
						|
 | 
						|
############################################################################
 | 
						|
# Subprograms
 | 
						|
 | 
						|
 | 
						|
def sub_begin(id, name=''):
 | 
						|
    creator.sub_begin(id, name)
 | 
						|
 | 
						|
 | 
						|
def sub_call(id):
 | 
						|
    creator.sub_call(id)
 | 
						|
 | 
						|
 | 
						|
def sub_end():
 | 
						|
    creator.sub_end()
 | 
						|
 | 
						|
############################################################################
 | 
						|
# Settings
 | 
						|
 | 
						|
 | 
						|
def imperial():
 | 
						|
    creator.imperial()
 | 
						|
 | 
						|
 | 
						|
def metric():
 | 
						|
    creator.metric()
 | 
						|
 | 
						|
 | 
						|
def absolute():
 | 
						|
    creator.absolute()
 | 
						|
 | 
						|
 | 
						|
def incremental():
 | 
						|
    creator.incremental()
 | 
						|
 | 
						|
 | 
						|
def polar(on=True):
 | 
						|
    creator.polar(on)
 | 
						|
 | 
						|
 | 
						|
def set_plane(plane):
 | 
						|
    creator.set_plane(plane)
 | 
						|
 | 
						|
 | 
						|
def set_temporary_origin(x=None, y=None, z=None, a=None, b=None, c=None):
 | 
						|
    creator.set_temporary_origin(x, y, z, a, b, c)
 | 
						|
 | 
						|
 | 
						|
def remove_temporary_origin():
 | 
						|
    creator.remove_temporary_origin()
 | 
						|
 | 
						|
############################################################################
 | 
						|
# Tools
 | 
						|
 | 
						|
 | 
						|
def tool_change(id):
 | 
						|
    creator.tool_change(id)
 | 
						|
 | 
						|
 | 
						|
def tool_defn(id, name='', params=None):
 | 
						|
    creator.tool_defn(id, name, params)
 | 
						|
 | 
						|
 | 
						|
def offset_radius(id, radius=None):
 | 
						|
    creator.offset_radius(id, radius)
 | 
						|
 | 
						|
 | 
						|
def offset_length(id, length=None):
 | 
						|
    creator.offset_length(id, length)
 | 
						|
 | 
						|
 | 
						|
def current_tool(self):
 | 
						|
    return creator.current_tool()
 | 
						|
 | 
						|
############################################################################
 | 
						|
# Datums
 | 
						|
 | 
						|
 | 
						|
def datum_shift(x=None, y=None, z=None, a=None, b=None, c=None):
 | 
						|
    creator.datum_shift(x, y, z, a, b, c)
 | 
						|
 | 
						|
 | 
						|
def datum_set(x=None, y=None, z=None, a=None, b=None, c=None):
 | 
						|
    creator.datum_set(x, y, z, a, b, c)
 | 
						|
 | 
						|
 | 
						|
def workplane(id):
 | 
						|
    creator.workplane(id)
 | 
						|
 | 
						|
 | 
						|
def clearanceplane(z=None):
 | 
						|
    creator.clearanceplane(z)
 | 
						|
 | 
						|
############################################################################
 | 
						|
# APT360 like Transformation Definitions
 | 
						|
# These definitions were created while looking at Irvin Kraal's book on APT
 | 
						|
# - Numerical Control Progamming in APT - page 211
 | 
						|
 | 
						|
 | 
						|
def matrix(a1=None, b1=None, c1=None, a2=None, b2=None, c2=None, a3=None, b3=None, c3=None):
 | 
						|
    creator.matrix(a1, b1, c1, a2, b2, c2, a3, b3, c3)
 | 
						|
 | 
						|
 | 
						|
def translate(x=None, y=None, z=None):
 | 
						|
    creator.translate(x, y, z)
 | 
						|
 | 
						|
 | 
						|
def rotate(xyrot=None, yzrot=None, zxrot=None, angle=None):
 | 
						|
    creator.rotate(xyrot, yzrot, zxrot, angle)
 | 
						|
 | 
						|
 | 
						|
def scale(k=None):
 | 
						|
    creator.scale(k)
 | 
						|
 | 
						|
 | 
						|
def matrix_product(matrix1=None, matrix2=None):
 | 
						|
    creator.matrix_product(matrix1, matrix2)
 | 
						|
 | 
						|
 | 
						|
def mirror_plane(plane1=None, plane2=None, plane3=None):
 | 
						|
    creator.mirror_plane(plane1, plane2, plane3)
 | 
						|
 | 
						|
 | 
						|
def mirror_line(line=None):
 | 
						|
    creator.mirror_line(line)
 | 
						|
 | 
						|
 | 
						|
############################################################################
 | 
						|
##	Rates + Modes
 | 
						|
 | 
						|
def feedrate(f):
 | 
						|
    creator.feedrate(f)
 | 
						|
 | 
						|
 | 
						|
def feedrate_hv(fh, fv):
 | 
						|
    creator.feedrate_hv(fh, fv)
 | 
						|
 | 
						|
 | 
						|
def spindle(s, clockwise=True):
 | 
						|
    creator.spindle(s, clockwise)
 | 
						|
 | 
						|
 | 
						|
def coolant(mode=0):
 | 
						|
    creator.coolant(mode)
 | 
						|
 | 
						|
 | 
						|
def gearrange(gear=0):
 | 
						|
    creator.gearrange(gear)
 | 
						|
 | 
						|
############################################################################
 | 
						|
# Moves
 | 
						|
 | 
						|
 | 
						|
def rapid(x=None, y=None, z=None, a=None, b=None, c=None):
 | 
						|
    creator.rapid(x, y, z, a, b, c)
 | 
						|
 | 
						|
 | 
						|
def feed(x=None, y=None, z=None, a=None, b=None, c=None):
 | 
						|
    creator.feed(x, y, z)
 | 
						|
 | 
						|
 | 
						|
def arc_cw(x=None, y=None, z=None, i=None, j=None, k=None, r=None):
 | 
						|
    creator.arc_cw(x, y, z, i, j, k, r)
 | 
						|
 | 
						|
 | 
						|
def arc_ccw(x=None, y=None, z=None, i=None, j=None, k=None, r=None):
 | 
						|
    creator.arc_ccw(x, y, z, i, j, k, r)
 | 
						|
 | 
						|
 | 
						|
def dwell(t):
 | 
						|
    creator.dwell(t)
 | 
						|
 | 
						|
 | 
						|
def rapid_home(x=None, y=None, z=None, a=None, b=None, c=None):
 | 
						|
    creator.rapid_home(x, y, z, a, b, c)
 | 
						|
 | 
						|
 | 
						|
def rapid_unhome():
 | 
						|
    creator.rapid_unhome()
 | 
						|
 | 
						|
 | 
						|
def set_machine_coordinates():
 | 
						|
    creator.set_machine_coordinates()
 | 
						|
 | 
						|
############################################################################
 | 
						|
# Cutter radius compensation
 | 
						|
 | 
						|
 | 
						|
def use_CRC():
 | 
						|
    return creator.use_CRC()
 | 
						|
 | 
						|
 | 
						|
def CRC_nominal_path():
 | 
						|
    return creator.CRC_nominal_path()
 | 
						|
 | 
						|
 | 
						|
def start_CRC(left=True, radius=0.0):
 | 
						|
    creator.start_CRC(left, radius)
 | 
						|
 | 
						|
 | 
						|
def end_CRC():
 | 
						|
    creator.end_CRC()
 | 
						|
 | 
						|
############################################################################
 | 
						|
# Cycles
 | 
						|
 | 
						|
 | 
						|
def pattern():
 | 
						|
    creator.pattern()
 | 
						|
 | 
						|
 | 
						|
def pocket():
 | 
						|
    creator.pocket()
 | 
						|
 | 
						|
 | 
						|
def profile():
 | 
						|
    creator.profile()
 | 
						|
 | 
						|
 | 
						|
def drill(x=None, y=None, dwell=None, depthparams=None, retract_mode=None, spindle_mode=None, internal_coolant_on=None, rapid_to_clearance=None):
 | 
						|
    creator.drill(x, y, dwell, depthparams, retract_mode, spindle_mode,
 | 
						|
                  internal_coolant_on, rapid_to_clearance)
 | 
						|
 | 
						|
 | 
						|
def tap(x=None, y=None, z=None, zretract=None, depth=None, standoff=None, dwell_bottom=None, pitch=None, stoppos=None, spin_in=None, spin_out=None, tap_mode=None, direction=None):
 | 
						|
    creator.tap(x, y, z, zretract, depth, standoff, dwell_bottom,
 | 
						|
                pitch, stoppos, spin_in, spin_out, tap_mode, direction)
 | 
						|
 | 
						|
 | 
						|
def bore(x=None, y=None, z=None, zretract=None, depth=None, standoff=None, dwell_bottom=None, feed_in=None, feed_out=None, stoppos=None, shift_back=None, shift_right=None, backbore=False, stop=False):
 | 
						|
    creator.bore(x, y, z, zretract, depth, standoff, dwell_Bottom, feed_in,
 | 
						|
                 feed_out, stoppos, shift_back, shift_right, backbore, stop)
 | 
						|
 | 
						|
 | 
						|
def end_canned_cycle():
 | 
						|
    creator.end_canned_cycle()
 | 
						|
 | 
						|
 | 
						|
def peck(count, first, last=None, step=0.0):
 | 
						|
    pecks = []
 | 
						|
    peck = first
 | 
						|
    if (last == None):
 | 
						|
        last = first
 | 
						|
    for i in range(0, count):
 | 
						|
        pecks.append(peck)
 | 
						|
        if (peck - step > last):
 | 
						|
            peck -= step
 | 
						|
    return pecks
 | 
						|
 | 
						|
############################################################################
 | 
						|
# Misc
 | 
						|
 | 
						|
 | 
						|
def comment(text):
 | 
						|
    creator.comment(text)
 | 
						|
 | 
						|
 | 
						|
def insert(text):
 | 
						|
    creator.insert(text)
 | 
						|
 | 
						|
 | 
						|
def block_delete(on=False):
 | 
						|
    creator.block_delete(on)
 | 
						|
 | 
						|
 | 
						|
def variable(id):
 | 
						|
    creator.variable(id)
 | 
						|
 | 
						|
 | 
						|
def variable_set(id, value):
 | 
						|
    creator.variable_set(id, value)
 | 
						|
 | 
						|
 | 
						|
def probe_single_point(point_along_edge_x=None, point_along_edge_y=None, depth=None, retracted_point_x=None, retracted_point_y=None, destination_point_x=None, destination_point_y=None, intersection_variable_x=None, intersection_variable_y=None, probe_offset_x_component=None, probe_offset_y_component=None):
 | 
						|
    creator.probe_single_point(point_along_edge_x, point_along_edge_y, depth, retracted_point_x, retracted_point_y, destination_point_x,
 | 
						|
                               destination_point_y, intersection_variable_x, intersection_variable_y, probe_offset_x_component, probe_offset_y_component)
 | 
						|
 | 
						|
 | 
						|
def probe_downward_point(x=None, y=None, depth=None, intersection_variable_z=None):
 | 
						|
    creator.probe_downward_point(x, y, depth, intersection_variable_z)
 | 
						|
 | 
						|
 | 
						|
def report_probe_results(x1=None, y1=None, z1=None, x2=None, y2=None, z2=None, x3=None, y3=None, z3=None, x4=None, y4=None, z4=None, x5=None, y5=None, z5=None, x6=None, y6=None, z6=None, xml_file_name=None):
 | 
						|
    creator.report_probe_results(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4,
 | 
						|
                                 y4, z4, x5, y5, z5, x6, y6, z6, xml_file_name)
 | 
						|
 | 
						|
 | 
						|
def open_log_file(xml_file_name=None):
 | 
						|
    creator.open_log_file(xml_file_name)
 | 
						|
 | 
						|
 | 
						|
def log_coordinate(x=None, y=None, z=None):
 | 
						|
    creator.log_coordinate(x, y, z)
 | 
						|
 | 
						|
 | 
						|
def log_message(message=None):
 | 
						|
    creator.log_message(message)
 | 
						|
 | 
						|
 | 
						|
def close_log_file():
 | 
						|
    creator.close_log_file()
 | 
						|
 | 
						|
 | 
						|
def rapid_to_midpoint(x1=None, y1=None, z1=None, x2=None, y2=None, z2=None):
 | 
						|
    creator.rapid_to_midpoint(x1, y1, z1, x2, y2, z2)
 | 
						|
 | 
						|
 | 
						|
def rapid_to_intersection(x1, y1, x2, y2, x3, y3, x4, y4, intersection_x, intersection_y, ua_numerator, ua_denominator, ua, ub_numerator, ub):
 | 
						|
    creator.rapid_to_intersection(x1, y1, x2, y2, x3, y3, x4, y4, intersection_x,
 | 
						|
                                  intersection_y, ua_numerator, ua_denominator, ua, ub_numerator, ub)
 | 
						|
 | 
						|
 | 
						|
def rapid_to_rotated_coordinate(x1, y1, x2, y2, ref_x, ref_y, x_current, y_current, x_final, y_final):
 | 
						|
    creator.rapid_to_rotated_coordinate(
 | 
						|
        x1, y1, x2, y2, ref_x, ref_y, x_current, y_current, x_final, y_final)
 | 
						|
 | 
						|
 | 
						|
def set_path_control_mode(mode, motion_blending_tolerance, naive_cam_tolerance):
 | 
						|
    creator.set_path_control_mode(mode, motion_blending_tolerance, naive_cam_tolerance)
 | 
						|
 | 
						|
############################################################################
 | 
						|
# NC code creator for additive machines like RepRap
 | 
						|
 | 
						|
 | 
						|
def wipe():
 | 
						|
    creator.wipe()
 | 
						|
 | 
						|
 | 
						|
def extruder_on():
 | 
						|
    creator.extruder_on()
 | 
						|
 | 
						|
 | 
						|
def extruder_off():
 | 
						|
    creator.extruder_off()
 | 
						|
 | 
						|
 | 
						|
def set_extruder_flowrate(flowrate):
 | 
						|
    creator.set_extruder_flowrate(flowrate)
 | 
						|
 | 
						|
 | 
						|
def extruder_temp(temp=None):
 | 
						|
    creator.extruder_temp(temp)
 | 
						|
 | 
						|
 | 
						|
def fan_on():
 | 
						|
    creator.fan_on()
 | 
						|
 | 
						|
 | 
						|
def fan_off():
 | 
						|
    creator.fan_off()
 | 
						|
 | 
						|
 | 
						|
def build_bed_temp(temp=None):
 | 
						|
    creator.build_bed_temp(temp)
 | 
						|
 | 
						|
 | 
						|
def chamber_temp(temp=None):
 | 
						|
    creator.chamber_temp(temp)
 |