Exemple #1
0
    def __init__(self, acceleration, ht=0.2):
        self.curX = 0
        self.curY = 0
        self.curZ = 0
        self.curE = 0

        self.sourceLine = None

        self.gObject = gobject()
        self.currentLayer = layer(0, 0)
        self.currentHeight = 0
        self.curTool = 0
        self.currentSegment = segment(0, self.curTool)
        self.currentSegmentType = 0
        self.recordPoint((0, 0), 0, ST_MOVE, 0, 0, 0, 0, 0)

        self.minERate = [999.9, 999.0, 999.0, 999.0]
        self.maxERate = [0.0, 0.0, 0.0, 0.0]
        self.maxTool = 0
        self.totalE = [0.0, 0.0, 0.0, 0.0]
        self.layerE = [0.0, 0.0, 0.0, 0.0]
        self.layerHt = ht
        self.ew = 0.56

        self.layerTimes = []
        self.layerTime = 0
        self.totalTime = 0.0

        self.minBedTemp = 999.0
        self.maxBedTemp = 0.0
        self.minHETemp = [999.0, 999.0, 999.0, 999.0]
        self.maxHETemp = [0, 0, 0, 0]

        self.speed = 0
        self.relative = False
        self.relativeE = False

        self.lastSpeed = 0.0
        self.lastDx = 0.0
        self.lastDy = 0.0

        self.acceleration = acceleration

        self.dispatch = {
            "G0": self.moveFast,
            "G1": self.moveSlow,
            "G4": self.dwell,
            "G20": self.setInches,
            "G21": self.setMillimeters,
            "G28": self.home,
            "G90": self.setAbsolute,
            "G91": self.setRelative,
            "G92": self.axisReset,
            "M82": self.setAbsoluteE,
            "M83": self.setRelativeE,
            "M140": self.tempBed,
            "M190": self.tempBed,
            "M104": self.tempHE,
            "M109": self.tempHE,
        }
Exemple #2
0
    def recordPoint(self, p, ht, st, sourceLine, eBefore, eUsed, lineWidth,
                    speed):
        if ht != self.currentHeight:
            self.currentLayer.addSegment(self.currentSegment)
            self.gObject.addLayer(self.currentLayer)
            self.layerTimes.append(self.layerTime)
            self.layerTime = 0
            self.currentLayer = layer(ht, eBefore)
            self.currentHeight = ht
            self.currentSegment = segment(st, self.curTool)
            self.currentSegmentType = st
            self.currentSegment.addPoint(p, sourceLine, eUsed, lineWidth,
                                         speed)

        elif st != self.currentSegmentType:
            self.currentLayer.addSegment(self.currentSegment)
            self.currentSegment = segment(st, self.curTool)
            self.currentSegmentType = st
            self.currentSegment.addPoint(p, sourceLine, eUsed, lineWidth,
                                         speed)

        else:
            self.currentSegment.addPoint(p, sourceLine, eUsed, lineWidth,
                                         speed)
Exemple #3
0
 def execute(self, cmd, parms, sourceLine):
     self.sourceLine = sourceLine
     if cmd in self.dispatch.keys():
         return self.dispatch[cmd](parms, sourceLine)
     elif cmd.startswith("T"):
         nt = int(cmd.strip()[1:])
         if nt > 0 and nt < 4:
             if nt != self.curTool:
                 self.currentLayer.addSegment(self.currentSegment)
                 self.curTool = nt
                 self.currentSegment = segment(self.currentSegmentType,
                                               self.curTool)
                 if self.curTool > self.maxTool:
                     self.maxTool = self.curTool
         return 0
     else:
         return 0