Package entities :: Module RuntimeParameters'
[hide private]
[frames] | no frames]

Source Code for Module entities.RuntimeParameters'

 1  from config import config 
 2  import time 
 3  from math import pi 
 4   
5 -class RuntimeParameters:
6 - def __init__(self):
7 self.startTime = time.time() 8 self.endTime = None 9 self.inputFilename = None 10 self.outputFilename = None 11 12 self.profileMemory = config.getboolean('general', 'profile.memory') 13 14 self.decimalPlaces = config.getint('general', 'decimal.places') 15 self.layerThickness = config.getfloat('carve', 'layer.height') 16 self.perimeterWidth = config.getfloat('carve', 'extrusion.width') 17 self.profileName = None 18 self.bridgeWidthMultiplier = None 19 self.nozzleDiameter = None 20 self.threadSequence = None 21 self.infillWidth = None 22 self.operatingFeedRatePerSecond = None 23 self.perimeterFeedRatePerSecond = None 24 self.operatingFlowRate = None 25 self.verboseGcode = config.getboolean('general', 'verbose.gcode') 26 27 self.overlapRemovalWidthOverPerimeterWidth = config.getfloat('inset', 'overlap.removal.scaler') 28 self.nozzleDiameter = config.getfloat('inset', 'nozzle.diameter') 29 self.bridgeWidthMultiplier = config.getfloat('inset', 'bridge.width.multiplier.ratio') 30 self.loopOrderAscendingArea = config.getboolean('inset', 'loop.order.preferloops') 31 32 self.layerHeight = config.getfloat('carve', 'layer.height') 33 self.extrusionWidth = config.getfloat('carve', 'extrusion.width') 34 self.infillBridgeDirection = config.getboolean('carve', 'infill.bridge.direction') 35 self.importCoarsenessRatio = config.getfloat('carve', 'import.coarseness.ratio') 36 self.correctMesh = config.getboolean('carve', 'mesh.correct') 37 self.decimalPlaces = config.getint('general', 'decimal.places') 38 self.layerPrintFrom = config.getint('carve', 'layer.print.from') 39 self.layerPrintTo = config.getint('carve', 'layer.print.to') 40 41 self.speedActive = config.getboolean('speed', 'active') 42 self.addFlowRate = config.getboolean('speed', 'add.flow.rate') 43 self.addAccelerationRate = config.getboolean('speed', 'add.acceleration.rate') 44 self.feedRate = config.getfloat('speed', 'feed.rate') 45 self.flowRateRatio = config.getfloat('speed', 'flow.rate.ratio') 46 self.accelerationRate = config.getfloat('speed', 'acceleration.rate') 47 self.orbitalFeedRateRatio = config.getfloat('speed', 'feed.rate.orbiting.ratio') 48 self.perimeterFeedRate = config.getfloat('speed', 'feed.rate.perimeter') 49 self.perimeterFlowRateRatio = config.getfloat('speed', 'flow.rate.perimeter.ratio') 50 self.bridgeFeedRateRatio = config.getfloat('speed', 'feed.rate.bridge.ratio') 51 self.bridgeFlowRateRatio = config.getfloat('speed', 'flow.rate.bridge.ratio') 52 self.travelFeedRate = config.getfloat('speed', 'feed.rate.travel') 53 self.supportFeedRate = config.getfloat('speed', 'feed.rate.support') 54 55 self.dimensionActive = config.getboolean('dimension', 'active') 56 self.filamentDiameter = config.getfloat('dimension', 'filament.diameter') 57 self.filamentPackingDensity = config.getfloat('dimension', 'filament.packing.density') 58 self.oozeRate = config.getfloat('dimension', 'oozerate') 59 self.extruderRetractionSpeed = config.getfloat('dimension', 'extruder.retraction.speed') 60 self.extrusionUnitsRelative = config.getboolean('dimension', 'extrusion.units.relative') 61 self.dimensionDecimalPlaces = config.getint('dimension', 'decimal.places') 62 63 self.extrusionPrintOrder = config.get('fill', 'extrusion.sequence.print.order').split(',') 64 65 self.bridgeFeedRateMinute = self.bridgeFeedRateRatio * self.perimeterFeedRate * 60 # todo former reference to main feed now perimeter feed 66 self.perimeterFeedRateMinute = self.perimeterFeedRate * 60 67 self.extrusionFeedRateMinute = self.feedRate * 60.0 68 self.travelFeedRateMinute = self.travelFeedRate * 60 69 70 self.supportFeedRateMinute = self.supportFeedRate * 60 71 72 self.minimumLayerFeedRate = config.getfloat('cool', 'minimum.layer.feed.rate') 73 self.minimumLayerFeedRateMinute = self.minimumLayerFeedRate * 60 74 75 self.minimumBridgeFeedRateMultiplier = self.minimumLayerFeedRateMinute / self.bridgeFeedRateMinute 76 self.minimumPerimeterFeedRateMultiplier = self.minimumLayerFeedRateMinute / self.perimeterFeedRateMinute 77 self.minimumExtrusionFeedRateMultiplier = self.minimumLayerFeedRateMinute / self.extrusionFeedRateMinute 78 self.minimumTravelFeedRateMultiplier = self.minimumLayerFeedRateMinute / self.travelFeedRateMinute 79 80 nozzleXsection = (self.nozzleDiameter / 2) ** 2 * pi 81 extrusionXsection = ((abs(self.perimeterWidth) + self.layerThickness) / 4) ** 2 * pi 82 83 self.flowRate = self.flowRateRatio * self.feedRate 84 self.bridgeFlowRate = (self.bridgeFlowRateRatio * self.bridgeFeedRateRatio) * (self.perimeterFlowRateRatio * self.perimeterFeedRate) * (nozzleXsection / extrusionXsection) 85 self.perimeterFlowRate = self.perimeterFlowRateRatio * self.perimeterFeedRate 86 87 self.orbitalFeedRateSecond = (self.feedRate * self.orbitalFeedRateRatio) 88 self.orbitalFeedRateMinute = self.orbitalFeedRateSecond * 60 89 90 self.combActive = config.getboolean('comb', 'active')
91