Esempio n. 1
0
    def addTailoredLoopPath(self, line):
        "Add a clipped loop path."
        if self.clipLength > 0.0:
            removeTable = {}
            euclidean.addLoopToPixelTable(self.loopPath.path, removeTable,
                                          self.layerPixelWidth)
            euclidean.removePixelTableFromPixelTable(removeTable,
                                                     self.layerPixelTable)
            self.loopPath.path = euclidean.getClippedLoopPath(
                self.clipLength, self.loopPath.path)
            self.loopPath.path = euclidean.getSimplifiedPath(
                self.loopPath.path, self.perimeterWidth)
            euclidean.addLoopToPixelTable(self.loopPath.path,
                                          self.layerPixelTable,
                                          self.layerPixelWidth)
        if self.oldWiddershins == None:
            self.addGcodeFromThreadZ(self.loopPath.path, self.loopPath.z)
        else:
            if self.oldWiddershins != euclidean.isWiddershins(
                    self.loopPath.path):
                self.loopPath.path.reverse()
#			self.addGcodeFromThreadZ( self.loopPath.path, self.loopPath.z )
            for point in self.loopPath.path:
                self.distanceFeedRate.addGcodeMovementZWithFeedRate(
                    self.feedRateMinute, point, self.loopPath.z)
        if self.getNextThreadIsACloseLoop(
                self.loopPath.path) and self.maximumConnectionDistance > 0.0:
            self.oldWiddershins = euclidean.isWiddershins(self.loopPath.path)
        else:
            self.oldWiddershins = None
            self.distanceFeedRate.addLine(line)
        self.loopPath = None
Esempio n. 2
0
File: clip.py Progetto: Aeva/SFACT
 def addTailoredLoopPath(self, line):
     "Add a clipped loop path."
     if self.clipLength > 0.0:
         removeTable = {}
         euclidean.addLoopToPixelTable(self.loopPath.path, removeTable, self.layerPixelWidth)
         euclidean.removePixelTableFromPixelTable(removeTable, self.layerPixelTable)
         self.loopPath.path = euclidean.getClippedSimplifiedLoopPath(
             self.clipLength, self.loopPath.path, self.perimeterWidth
         )
         euclidean.addLoopToPixelTable(self.loopPath.path, self.layerPixelTable, self.layerPixelWidth)
     if self.oldWiddershins is None:
         self.addGcodeFromThreadZ(self.loopPath.path, self.loopPath.z)
     else:
         if self.oldWiddershins != euclidean.isWiddershins(self.loopPath.path):
             self.loopPath.path.reverse()
         for point in self.loopPath.path:
             self.distanceFeedRate.addGcodeMovementZWithFeedRate(self.feedRateMinute, point, self.loopPath.z)
     if self.getNextThreadIsACloseLoop(self.loopPath.path):
         self.oldConnectionPoint = self.loopPath.path[-1]
         self.oldWiddershins = euclidean.isWiddershins(self.loopPath.path)
     else:
         self.oldConnectionPoint = None
         self.oldWiddershins = None
         self.distanceFeedRate.addLine(line)
     self.loopPath = None
def addPointOnPath(path, pathIndex, pixelTable, point, pointIndex, width):
    'Add a point to a path and the pixel table.'
    pointIndexMinusOne = pointIndex - 1
    if pointIndex < len(path) and pointIndexMinusOne >= 0:
        segmentTable = {}
        begin = path[ pointIndexMinusOne ]
        end = path[pointIndex]
        euclidean.addValueSegmentToPixelTable(begin, end, segmentTable, pathIndex, width)
        euclidean.removePixelTableFromPixelTable(segmentTable, pixelTable)
    if pointIndexMinusOne >= 0:
        begin = path[ pointIndexMinusOne ]
        euclidean.addValueSegmentToPixelTable(begin, point, pixelTable, pathIndex, width)
    if pointIndex < len(path):
        end = path[pointIndex]
        euclidean.addValueSegmentToPixelTable(point, end, pixelTable, pathIndex, width)
    path.insert(pointIndex, point)
Esempio n. 4
0
def addPointOnPath(path, pathIndex, pixelTable, point, pointIndex, width):
    'Add a point to a path and the pixel table.'
    pointIndexMinusOne = pointIndex - 1
    if pointIndex < len(path) and pointIndexMinusOne >= 0:
        segmentTable = {}
        begin = path[pointIndexMinusOne]
        end = path[pointIndex]
        euclidean.addValueSegmentToPixelTable(begin, end, segmentTable,
                                              pathIndex, width)
        euclidean.removePixelTableFromPixelTable(segmentTable, pixelTable)
    if pointIndexMinusOne >= 0:
        begin = path[pointIndexMinusOne]
        euclidean.addValueSegmentToPixelTable(begin, point, pixelTable,
                                              pathIndex, width)
    if pointIndex < len(path):
        end = path[pointIndex]
        euclidean.addValueSegmentToPixelTable(point, end, pixelTable,
                                              pathIndex, width)
    path.insert(pointIndex, point)