Example #1
0
def doPath(X_offset=0, Y_offset=0):
    global toolPos_X, toolPos_Y, toolPos_Z, toolPos_F, X_dest, Y_dest, Z_dest, F_dest
    for path in etch_moves:
        toolRefresh = 0
        toolPos_draw(toolPos_X, toolPos_Y, etching=0)
        cy.moveZ(Z_origin_offset + getZoffset(X_dest, Y_dest) +
                 Z_global_offset + Zlift_milling,
                 F_fastMove)  # Raise and move to next point
        X_dest = path[0][0] + X_offset
        Y_dest = path[0][1] + Y_offset
        F_dest = F_fastMove
        print("  Traveling to: " + str([X_dest, Y_dest]) + " at Z:" +
              str(Z_global_offset + Zlift_milling))
        cy.moveXY(X_dest, Y_dest, F_dest)
        toolPos_draw(X_dest, Y_dest, etching=0)
        Z_dest = path[0][2]
        if Z_dest > 0:
            F_dest = F_slowMove
        else:
            F_dest = path[0][
                3]  # We set the original speed if it is etching/drill
        cy.moveZ(
            Z_dest + Z_origin_offset + getZoffset(X_dest, Y_dest) +
            Z_global_offset, F_dest)
        #	print("Speed:",F_dest)
        print("  Etching at Z: " + str(Z_dest + Z_global_offset))
        toolPos_X = X_dest
        toolPos_Y = Y_dest
        toolPos_Z = Z_dest  # Not sure..
        toolPos_F = F_dest

        #	print(path)

        for coord in path[1:]:
            X_dest = coord[0] + X_offset
            Y_dest = coord[1] + Y_offset
            Z_dest = coord[2]
            F_dest = coord[3]

            distance = (X_dest - toolPos_X)**2 + (Y_dest - toolPos_Y)**2
            if distance >= maxDistance:
                splitLongEtchMove(distance)
            if distance < minDistance and (
                    Z_dest - toolPos_Z
            )**2 < 0.001**2:  # Make sure it is not a Z movement
                print("Ignoring " + str(distance**0.5) + "mm segment!")
                continue
            Z_real = Z_dest + Z_origin_offset + getZoffset(
                X_dest, Y_dest) + Z_global_offset
            cy.moveXYZ(X_dest, Y_dest, Z_real, F_dest)
            #		print("Coords: Speed: " + str(F_dest))
            toolPos_refresh(X_dest, Y_dest, etching=1)

            toolPos_X = X_dest
            toolPos_Y = Y_dest
            toolPos_Z = Z_dest
            toolPos_F = F_dest
def doPath(X_offset=0, Y_offset=0):
	global toolPos_X, toolPos_Y, toolPos_Z, toolPos_F, X_dest, Y_dest, Z_dest, F_dest
	for path in etch_moves :
		toolRefresh = 0
		#toolPos_draw(toolPos_X, toolPos_Y, etching=0)
		cy.moveZ(Z_origin_offset+getZoffset(X_dest, Y_dest)+Z_global_offset+Zlift_milling,F_fastMove) # Raise and move to next point
		X_dest = path[0][0]+X_offset
		Y_dest = path[0][1]+Y_offset
		F_dest = F_fastMove
		print("  Traveling to: " + str([X_dest, Y_dest]) + " at Z:" + str(Z_global_offset+Zlift_milling) )
		sys.stdout.flush()
		cy.moveXY(X_dest, Y_dest, F_dest)
		toolPos_draw(X_dest, Y_dest, etching=0)
		Z_dest = path[0][2]
		if Z_dest > 0:
			F_dest = F_slowMove
		else:
			F_dest = path[0][3] # We set the original speed if it is etching/drill
		cy.moveZ(Z_dest+Z_origin_offset+getZoffset(X_dest, Y_dest)+Z_global_offset,F_dest)
	#	print("Speed:",F_dest)
		print("  Etching at Z: " + str(Z_dest+Z_global_offset) )
		sys.stdout.flush()
		toolPos_X = X_dest
		toolPos_Y = Y_dest
		toolPos_Z = Z_dest # Not sure..
		toolPos_F = F_dest
	
	#	print(path)
	
		for coord in path[1:] :
			X_dest = coord[0]+X_offset
			Y_dest = coord[1]+Y_offset
			Z_dest = coord[2]
			F_dest = coord[3]
		
			distance = (X_dest-toolPos_X)**2+(Y_dest-toolPos_Y)**2
			if distance >= maxDistance :
				splitLongEtchMove(distance)
			if distance < minDistance and (Z_dest-toolPos_Z)**2 < 0.001**2 : # Make sure it is not a Z movement
				print("Ignoring " + str(distance**0.5) + "mm segment!")				
				continue
			Z_real = Z_dest+Z_origin_offset+getZoffset(X_dest, Y_dest)+Z_global_offset
			cy.moveXYZ(X_dest, Y_dest, Z_real, F_dest)
	#		print("Coords: Speed: " + str(F_dest))
			toolPos_refresh(X_dest, Y_dest, etching=1)
		
			toolPos_X = X_dest
			toolPos_Y = Y_dest
			toolPos_Z = Z_dest
			toolPos_F = F_dest
			sys.stdout.flush()
	pltSetFig(gcodeviewer)
	toolPos_point, = plt.plot(0, 0, markersize=12, c='g', marker='x')
	pltShowNonBlocking()


cy.connect(BAUDRATE, DEVICE, Emulate)

cy.sendCommand("G90\n") # Set absolute positioning

cy.homeZXY() # Home all the axis

drawTool(10, 20) # Show a marker on the gcode plot


# Move to the origin of the grid
cy.moveXY(x_points[0], y_points[0], F_fastMove)


# Warning: Do not lower too much or you will potentially cause damage!
initial_Z_lowering_distance = -10
cy.moveZrelSafe(initial_Z_lowering_distance,F_slowMove) # Move Z towards the PCB (saves some probing time for the first coord)


config = ConfigParser.RawConfigParser()
Z_origin_offset = 0
try:
	config.read('cyclone.cfg')
	Z_origin_offset = config.getfloat('Z_Probing', 'Z_origin_offset')
	print("Z offset: " + str(Z_origin_offset) )
except:
	print("No Z origin offset data.  Please run 2_Zprobe_Toolchange" )
Example #4
0
    global toolPos_point
    pltSetFig(gcodeviewer)
    toolPos_point, = plt.plot(0, 0, markersize=12, c='g', marker='x')
    pltShowNonBlocking()


cy.connect(BAUDRATE, DEVICE, Emulate)

cy.sendCommand("G90\n")  # Set absolute positioning

cy.homeZXY()  # Home all the axis

drawTool(10, 20)  # Show a marker on the gcode plot

# Move to the origin of the grid
cy.moveXY(x_points[0], y_points[0], F_fastMove)

# Warning: Do not lower too much or you will potentially cause damage!
initial_Z_lowering_distance = -10
cy.moveZrelSafe(
    initial_Z_lowering_distance, F_slowMove
)  # Move Z towards the PCB (saves some probing time for the first coord)

Z_origin_offset = cy.probeZ()
print("Z offset: " + str(Z_origin_offset))

toolPos_X = 0
toolPos_Y = 0
toolPos_Z = 0
toolPos_F = F_fastMove