예제 #1
0
def print_object():
	display = projector()
	lift = BED_servo(Z_DISTANCE_PER_STEP)

	try:
		slice_stats = expand_slice_directions()

		setup_resin(display, lift)
		start_time = time.time()

		for i in xrange(NUM_SLICES):

			display_status(start_time, i)

			method, display_time = slice_stats[i]

			slice_image = SLICE_PREFIX+"{:04d}.png".format(i)

			if method == "dip":

				display.black()

				lift.move_microns(DIP_DISTANCE, DIP_SPEED_DOWN)
				time.sleep(DIP_WAIT)
				lift.move_microns(-DIP_DISTANCE+SLICE_THICKNESS, DIP_SPEED_UP)

				time.sleep(RESIN_SETTLE)

				display.display(slice_image)
				time.sleep(display_time)

			elif method == "cont":
				display.display(slice_image)
				lift.move_microns(SLICE_THICKNESS, SLICE_THICKNESS / display_time)

			elif method == "bottom":
				display.display(slice_image)
				time.sleep(display_time)

			elif method == "slow dip":
				display.black()

				lift.move_microns(SLOW_DIP_DIST, SLOW_DIP_SPEED)
				time.sleep(DIP_WAIT)
				lift.move_microns(-SLOW_DIP_DIST+SLICE_THICKNESS, SLOW_DIP_SPEED)

				time.sleep(RESIN_SETTLE)

				display.display(slice_image)
				time.sleep(display_time)


		print "Print completed in " + time.strftime('%H:%M:%S', time.gmtime(time.time()-start_time))
	except:
		traceback.print_exception(*sys.exc_info())

	display.black()
	lift.home(OPTIMUM_LIFT_SPEED)
	lift.shutdown()
	display.shutdown()
예제 #2
0
def calibrate():
	display = projector()
	lift = BED_servo(Z_DISTANCE_PER_STEP)

	try:
		setup_resin(display, lift)
		start_time = time.time()

		for i in xrange(NUM_SLICES):
			display_status(start_time,i)

			lift.move_microns(DIP_DISTANCE, DIP_SPEED_DOWN)
			time.sleep(DIP_WAIT)
			lift.move_microns(-DIP_DISTANCE+SLICE_THICKNESS, DIP_SPEED_UP)
			time.sleep(RESIN_SETTLE)

			display.display(SLICE_PREFIX+"0000.png")

			if i < FIRST_SLICE_NUM:
				time.sleep(FIRST_SLICE_TIME)
			else:
				time.sleep(CALIBRATE_MIN_TIME)

				for j in xrange(1,9):
					display.display(SLICE_PREFIX+"{:04d}.png".format(j))
					time.sleep(CALIBRATE_TIME_DELTA)

			display.black()

		print "Print completed in " + time.strftime('%H:%M:%S', time.gmtime(time.time()-start_time))

	except:
		traceback.print_exception(*sys.exc_info())

	lift.home(OPTIMUM_LIFT_SPEED)
	lift.shutdown()
	display.shutdown()
예제 #3
0
def print_object():
    display = projector()
    lift = BED_servo(Z_DISTANCE_PER_STEP)

    try:
        setup_resin(display, lift)
        start_time = time.time()

        for i in xrange(NUM_SLICES):
            display_status(start_time, i)
            display.display(SLICE_PREFIX+"{:04d}.png".format(i))
            if i < FIRST_SLICE_NUM:
                lift.move_microns(SLICE_THICKNESS, FIRST_SLICE_LIFT_SPEED)
            else:
                lift.move_microns(SLICE_THICKNESS, LIFT_SPEED)

        print "Print completed in " + time.strftime('%H:%M:%S', time.gmtime(time.time()-start_time))
    except:
        traceback.print_exception(*sys.exc_info())

    display.black()
    lift.home(OPTIMUM_LIFT_SPEED)
    lift.shutdown()
    display.shutdown()
예제 #4
0
def supercali():
	display = projector()
	lift = BED_servo(Z_DISTANCE_PER_STEP)

	try:
		setup_resin(display, lift)
		start_time = time.time()

		base_num_slices = (SUPERCALI_BASE_HEIGHT-FIRST_SLICE_THICKNESS)/SLICE_THICKNESS + 1
		base_num_slices = 0

		#~ for i in xrange(base_num_slices):
			#~ display_status(start_time,i)

			#~ if i < FIRST_SLICE_NUM:
				#~ thickness = FIRST_SLICE_THICKNESS
				#~ display_time = FIRST_SLICE_TIME
			#~ else:
				#~ thickness = SLICE_THICKNESS
				#~ display_time = SLICE_DISPLAY_TIME

			#~ if i == FIRST_SLICE_NUM:
				#~ dip_speed = 100
			#~ else:
				#~ dip_speed = DIP_SPEED_DOWN

			#~ lift.move_microns(DIP_DISTANCE, dip_speed)
			#~ time.sleep(DIP_WAIT)
			#~ lift.move_microns(-DIP_DISTANCE+thickness, DIP_SPEED_UP)
			#~ time.sleep(RESIN_SETTLE)

			#~ display.display(SLICE_PREFIX+"base.png")
			#~ time.sleep(display_time)

			#~ display.black()

		post_num_slices = SUPERCALI_POST_HEIGHT/SLICE_THICKNESS

		for i in xrange(post_num_slices):
			display_status(start_time,i+base_num_slices)

			lift.move_microns(DIP_DISTANCE, DIP_SPEED_DOWN)
			time.sleep(DIP_WAIT)
			lift.move_microns(-DIP_DISTANCE+SLICE_THICKNESS, DIP_SPEED_UP)
			time.sleep(RESIN_SETTLE)

			display.display(SLICE_PREFIX+"0000.png")

			time.sleep(SUPERCALI_MIN_TIME)

			for j in xrange(1,9):
				display.display(SLICE_PREFIX+"{:04d}.png".format(j))
				time.sleep(SUPERCALI_TIME_DELTA)

			display.black()

		print "Print completed in " + time.strftime('%H:%M:%S', time.gmtime(time.time()-start_time))

	except:
		traceback.print_exception(*sys.exc_info())

	lift.home(OPTIMUM_LIFT_SPEED)
	lift.shutdown()
	display.shutdown()