# entwendet aus: # https://github.com/ut-hnl-lab/ultimakerpy # auch zum lesen: # https://github.com/MartinBienz/SDPremote?tab=readme-ov-file import time from ultimakerpy import UMS3, JobState def print_started(state): if state == JobState.PRINTING: time.sleep(6.0) return True return False def layer_reached(pos, n): if round(pos / 0.2) >= n: # set layer pitch: 0.2 mm return True return False printer = UMS3(name='MyPrinterName') targets = { 'job_state': printer.job_state, 'bed_pos': printer.bed.position, } printer.print_from_dialog() # select file to print printer.peripherals.camera_streaming() with printer.data_logger('output2.csv', targets) as dl: timer = dl.get_timer() # sleep until active leveling finishes timer.wait_for_datalog('job_state', print_started) for n in range(1, 101): # sleep until the printing of specified layer to start timer.wait_for_datalog('bed_pos', lambda v: layer_reached(v, n)) print('printing layer:', n)