Jump to content

show progress dialog for post-progress plugin?


herzla

Recommended Posts

Posted · show progress dialog for post-progress plugin?

i wrote a little plugin doing changes on the gcode

as it sometimes needs several seconds I tried to show a progress-bar but UI is blocking - so I switched to a sub-thread to do the work but it's still the same
if I don't wait for the thread to finish the progress-bar get's shown and runs smooth
but I need to wait for the thread? or can I tell cura to wait for the thread to be finished?
(~~ i don't know much about python ~~ but I did some research ~~)
 

..
import threading
from time import sleep
..
class SamplePlugin(Extension):
    def __init__(self):
        ...
        self._application.getOutputDeviceManager().writeStarted.connect(
            self._processGCode
        )
        ...

    def _processGCode(self, output_device):
        self._message = Message(catalog.i18nc("@info:progress", "processing gcode changes"), 0, False, -1)
        self._message.setTitle("Sample Plugin")
        self._message.show()

        x = threading.Thread(name="SamplePluginThread", target=self.threaded_processGcode, daemon=True)

        Logger.log("d", "start thread")
        x.start()

	*** how to wait without block*** ??
	
	x.join() is blocking UI

	wait-loop is blocking UI also
        while x.is_alive():
            sleep(0.1)

	*** how to wait without block*** ??

        Logger.log("d", "fan control thread finished")

        #self._message.hide()
        #self._message = None

    def threaded_processGcode(self):
        ...
        for line in lines:                
            if line.startswith(";LAYER:"): 
                iLayerNr = int(re.split(':| |;|#|\n',line)[2])
                if self._message:
                     self._message.setProgress(iLine * 100 / len(newLines))
	    ...

 

  • Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
    • Our picks

      • UltiMaker Cura 5.8 beta released
        Another Cura release has arrived and in this 5.8 beta release, the focus is on improving Z seams, as well as completing support for the full Method series of printers by introducing a profile for the UltiMaker Method.
          • Like
        • 1 reply
      • Introducing the UltiMaker Factor 4
        We are happy to announce the next evolution in the UltiMaker 3D printer lineup: the UltiMaker Factor 4 industrial-grade 3D printer, designed to take manufacturing to new levels of efficiency and reliability. Factor 4 is an end-to-end 3D printing solution for light industrial applications
          • Thanks
          • Like
        • 3 replies
    ×
    ×
    • Create New...