예제 #1
0
    def layerChange(self, layer):

        self.advance.layerChange(layer)

        if layer == 0:

            print "layer 0, increasing temp by", Layer0TempIncrease
            self.l0TempIncrease = Layer0TempIncrease

        else:

            self.l0TempIncrease = 0

        if layer == 2:

            self.partNumber -= 1
            if self.partNumber:
                return

            # Reduce bedtemp
            bedTemp = MatProfile.getBedTempReduced()
            self.gui.log("Layer2, reducing bedtemp to: ", bedTemp)
            self.addSynchronizedCommand(CmdSyncTargetTemp,
                                        p1=packedvalue.uint8_t(HeaterBed),
                                        p2=packedvalue.uint16_t(bedTemp))
예제 #2
0
    def layerChange(self, layer):

        if layer == 2:

            self.partNumber -= 1
            if self.partNumber:
                return

            # Reduce bedtemp
            bedTemp = MatProfile.getBedTempReduced()
            self.gui.log("Layer2, reducing bedtemp to: ", bedTemp)
            self.addSynchronizedCommand(
                CmdSyncTargetTemp, 
                p1 = packedvalue.uint8_t(HeaterBed),
                p2 = packedvalue.uint16_t(bedTemp))
예제 #3
0
    def printWorker(self):

        parser = argparse.ArgumentParser(
            description='%s, Direct Drive USB Print.' % sys.argv[0])
        parser.add_argument("-d",
                            dest="device",
                            action="store",
                            type=str,
                            help="Device to use, default: /dev/ttyACM0.",
                            default="/dev/ttyACM0")
        parser.add_argument("-b",
                            dest="baud",
                            action="store",
                            type=int,
                            help="Baudrate, default 500000.",
                            default=500000)
        parser.add_argument("-f",
                            dest="file",
                            action="store",
                            type=str,
                            help="Gcode to print")
        parser.add_argument("-F",
                            dest="fakeendstop",
                            action="store",
                            type=bool,
                            help="fake endstops",
                            default=False)
        parser.add_argument(
            "-nc",
            dest="noCoolDown",
            action="store",
            type=bool,
            help="Debug: don't wait for heater cool down after print.",
            default=False)
        parser.add_argument(
            "-t0",
            dest="t0",
            action="store",
            type=int,
            help="Temp 0 (heated bed), default comes from mat. profile.")
        parser.add_argument(
            "-t1",
            dest="t1",
            action="store",
            type=int,
            help="Temp 1 (hotend 1), default comes from mat. profile.")
        parser.add_argument(
            "-kAdvance",
            dest="kAdvance",
            action="store",
            type=float,
            help="K-Advance factor, default comes from mat. profile.")
        parser.add_argument(
            "-mat",
            dest="mat",
            action="store",
            help=
            "Name of material profile to use [pla, abs...], default is pla.",
            default="pla_1.75mm")
        parser.add_argument(
            "-rl",
            dest="retractLength",
            action="store",
            type=float,
            help="Retraction length, default comes from printer profile.",
            default=0)
        parser.add_argument("-smat",
                            dest="smat",
                            action="store",
                            help="Name of specific material profile to use.")
        parser.add_argument(
            "-noz",
            dest="nozzle",
            action="store",
            help=
            "Name of nozzle profile to use [nozzle40, nozzle80...], default is nozzle40.",
            default="nozzle40")

        self.args = parser.parse_args()
        self.args.mode = "dlprint"

        # print "args: ", self.args

        (self.parser, self.planner,
         self.printer) = ddprint.initParser(self.args, gui=self)
        # util.commonInit(self.args, self.parser)

        try:
            self.printer.commandInit(self.args)
        except SerialException:
            msg = "Can't open serial device '%s' (baudrate: %d)!\n\nPress OK to exit." % (
                self.args.device, self.args.baud)
            self.guiQueue.put(SyncCall(self.quit, msg))
            return

        self.mat_t0 = MatProfile.getBedTemp()
        self.mat_t0_reduced = MatProfile.getBedTempReduced()
        self.mat_t1 = MatProfile.getHotendStartTemp(
        ) + self.planner.l0TempIncrease

        # self.fn.set_value(self.args.file)
        self.guiQueue.put(SyncCall(self.fn.set_value, self.args.file))

        while True:

            try:

                while True:
                    # self.guiQueue.put("hi")
                    # self.guiQueue.put(SyncCall(self.appLog.buffer, ["juhu"]))

                    workDone = False

                    while not self.cmdQueue.empty():
                        obj = self.cmdQueue.get()
                        obj.call()
                        workDone = True

                    if time.time() - self.lastUpdate > 2.5:
                        # status = self.printer.getStatus()
                        # self.guiQueue.put(SyncCall(self.updateStatus, status))
                        self.printer.getStatus()

                        workDone = True
                        self.lastUpdate = time.time()

                    if not workDone:
                        time.sleep(0.1)

            except stoppableThread.StopThread:
                self.printThread.incStopCount()
                self.log("caught StopThread, continue....")