def getCraftedGcode(self, gcodeText, repository): 'Parse gcode text and store the cool gcode.' self.repository = repository self.coolEndLines = settings.getAlterationFileLines( repository.nameOfCoolEndFile.value) self.coolStartLines = settings.getAlterationFileLines( repository.nameOfCoolStartFile.value) self.halfCorner = complex(repository.minimumOrbitalRadius.value, repository.minimumOrbitalRadius.value) self.lines = archive.getTextLines(gcodeText) self.minimumArea = 4.0 * repository.minimumOrbitalRadius.value * repository.minimumOrbitalRadius.value self.minFeedrate = repository.minimumFeedRate.value * 60 self.parseInitialization() self.boundingRectangle = gcodec.BoundingRectangle().getFromGcodeLines( self.lines[self.lineIndex:], 0.5 * self.edgeWidth) margin = 0.2 * self.edgeWidth halfCornerMargin = self.halfCorner + complex(margin, margin) self.boundingRectangle.cornerMaximum -= halfCornerMargin self.boundingRectangle.cornerMinimum += halfCornerMargin for self.lineIndex in xrange(self.lineIndex, len(self.lines)): line = self.lines[self.lineIndex] self.parseLine(line) if repository.turnFanOffAtEnding.value: self.distanceFeedRate.addLine('M107') return gcodec.getGcodeWithoutDuplication( 'M108', self.distanceFeedRate.output.getvalue())
def getCraftedGcode(self, gcodeText, coolRepository): "Parse gcode text and store the cool gcode." self.coolRepository = coolRepository self.coolEndText = settings.getFileInAlterationsOrGivenDirectory( os.path.dirname(__file__), 'Cool_End.gcode') self.coolEndLines = gcodec.getTextLines(self.coolEndText) self.coolStartText = settings.getFileInAlterationsOrGivenDirectory( os.path.dirname(__file__), 'Cool_Start.gcode') self.coolStartLines = gcodec.getTextLines(self.coolStartText) self.halfCorner = complex(coolRepository.minimumOrbitalRadius.value, coolRepository.minimumOrbitalRadius.value) self.lines = gcodec.getTextLines(gcodeText) self.minimumArea = 4.0 * coolRepository.minimumOrbitalRadius.value * coolRepository.minimumOrbitalRadius.value self.parseInitialization() self.boundingRectangle = gcodec.BoundingRectangle().getFromGcodeLines( self.lines[self.lineIndex:], 0.5 * self.perimeterWidth) margin = 0.2 * self.perimeterWidth halfCornerMargin = self.halfCorner + complex(margin, margin) self.boundingRectangle.cornerMaximum -= halfCornerMargin self.boundingRectangle.cornerMinimum += halfCornerMargin for self.lineIndex in xrange(self.lineIndex, len(self.lines)): line = self.lines[self.lineIndex] self.parseLine(line) if coolRepository.turnFanOffAtEnding.value: self.distanceFeedRate.addLine('M107') return self.distanceFeedRate.output.getvalue()
def getCraftedGcode( self, gcodeText, splodgeRepository ): "Parse gcode text and store the splodge gcode." self.lines = archive.getTextLines(gcodeText) self.setRotations() self.splodgeRepository = splodgeRepository self.parseInitialization( splodgeRepository ) self.boundingRectangle = gcodec.BoundingRectangle().getFromGcodeLines( self.lines[self.lineIndex :], 0.5 * self.perimeterWidth ) self.initialSplodgeFeedRateMinute = 60.0 * splodgeRepository.initialSplodgeFeedRate.value self.initialStartupDistance = splodgeRepository.initialSplodgeQuantityLength.value * splodgeRepository.initialSplodgeFeedRate.value / self.operatingFeedRatePerSecond self.operatingSplodgeFeedRateMinute = 60.0 * splodgeRepository.operatingSplodgeFeedRate.value self.operatingStartupDistance = splodgeRepository.operatingSplodgeQuantityLength.value * splodgeRepository.operatingSplodgeFeedRate.value / self.operatingFeedRatePerSecond for self.lineIndex in xrange( self.lineIndex, len(self.lines) ): line = self.lines[self.lineIndex] self.parseLine(line) return self.distanceFeedRate.output.getvalue()