Example #1
0
 def getReplacedSVGTemplateLines(self, fileName, rotatedBoundaryLayers):
     "Get the lines of text from the svg_template.txt file."
     #( layers.length + 1 ) * (margin + sliceDimY * unitScale + txtHeight) + margin + txtHeight + margin + 110
     svgTemplateText = gcodec.getFileTextInFileDirectory(
         __file__, 'svg_template.svg')
     originalTextLines = gcodec.getTextLines(svgTemplateText)
     self.margin = getParameterFromJavascript(originalTextLines, 'margin',
                                              self.margin)
     self.textHeight = getParameterFromJavascript(originalTextLines,
                                                  'textHeight',
                                                  self.textHeight)
     javascriptControlsWidth = getParameterFromJavascript(
         originalTextLines, 'javascripControlBoxX', 510.0)
     noJavascriptControlsHeight = getParameterFromJavascript(
         originalTextLines, 'noJavascriptControlBoxY', 110.0)
     controlTop = len(rotatedBoundaryLayers) * (
         self.margin + self.extent.y * self.unitScale +
         self.textHeight) + 2.0 * self.margin + self.textHeight
     #	width = margin + (sliceDimX * unitScale) + margin;
     svgTemplateText = getReplacedInQuotes(
         'height',
         self.getRounded(controlTop + noJavascriptControlsHeight +
                         self.margin), svgTemplateText)
     width = 2.0 * self.margin + max(self.extent.y * self.unitScale,
                                     javascriptControlsWidth)
     svgTemplateText = getReplacedInQuotes('width', self.getRounded(width),
                                           svgTemplateText)
     svgTemplateText = getReplacedWordAndInQuotes(
         'layerThickness', self.getRounded(self.layerThickness),
         svgTemplateText)
     svgTemplateText = getReplacedWordAndInQuotes(
         'maxX', self.getRounded(self.cornerMaximum.x), svgTemplateText)
     svgTemplateText = getReplacedWordAndInQuotes(
         'minX', self.getRounded(self.cornerMinimum.x), svgTemplateText)
     svgTemplateText = getReplacedWordAndInQuotes(
         'dimX', self.getRounded(self.extent.x), svgTemplateText)
     svgTemplateText = getReplacedWordAndInQuotes(
         'maxY', self.getRounded(self.cornerMaximum.y), svgTemplateText)
     svgTemplateText = getReplacedWordAndInQuotes(
         'minY', self.getRounded(self.cornerMinimum.y), svgTemplateText)
     svgTemplateText = getReplacedWordAndInQuotes(
         'dimY', self.getRounded(self.extent.y), svgTemplateText)
     svgTemplateText = getReplacedWordAndInQuotes(
         'maxZ', self.getRounded(self.cornerMaximum.z), svgTemplateText)
     svgTemplateText = getReplacedWordAndInQuotes(
         'minZ', self.getRounded(self.cornerMinimum.z), svgTemplateText)
     svgTemplateText = getReplacedWordAndInQuotes(
         'dimZ', self.getRounded(self.extent.z), svgTemplateText)
     summarizedFilename = gcodec.getSummarizedFilename(
         fileName) + ' SVG Slice File'
     svgTemplateText = getReplacedWordAndInQuotes('Title',
                                                  summarizedFilename,
                                                  svgTemplateText)
     noJavascriptControlsTagString = '<g id="noJavascriptControls" fill="#000" transform="translate(%s, %s)">' % (
         self.getRounded(self.margin), self.getRounded(controlTop))
     svgTemplateText = getReplacedTagString(noJavascriptControlsTagString,
                                            'noJavascriptControls',
                                            svgTemplateText)
     #	<g id="noJavascriptControls" fill="#000" transform="translate(20, 1400)">
     return gcodec.getTextLines(svgTemplateText)
Example #2
0
 def getCraftedGcode(self, gcodeText, coolRepository):
     "Parse gcode text and store the cool gcode."
     self.coolRepository = coolRepository
     self.coolEndText = preferences.getFileInAlterationsOrGivenDirectory(os.path.dirname(__file__), "Cool_End.gcode")
     self.coolEndLines = gcodec.getTextLines(self.coolEndText)
     self.coolStartText = preferences.getFileInAlterationsOrGivenDirectory(
         os.path.dirname(__file__), "Cool_Start.gcode"
     )
     self.coolStartLines = gcodec.getTextLines(self.coolStartText)
     self.cornerMaximum = complex(-999999999.0, -999999999.0)
     self.cornerMinimum = complex(999999999.0, 999999999.0)
     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()
     for lineIndex in xrange(self.lineIndex, len(self.lines)):
         line = self.lines[lineIndex]
         self.parseCorner(line)
     margin = 0.2 * self.perimeterWidth
     halfCornerMargin = self.halfCorner + complex(margin, margin)
     self.cornerMaximum -= halfCornerMargin
     self.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()
Example #3
0
	def getReplacedSVGTemplateLines( self, fileName, rotatedBoundaryLayers ):
		"Get the lines of text from the svg_template.tmpl file."
#( layers.length + 1 ) * (margin + sliceDimY * unitScale + txtHeight) + margin + txtHeight + margin + 110
		svgTemplateText = gcodec.getFileTextInFileDirectory( __file__, 'svg_template.tmpl' )
		originalTextLines = gcodec.getTextLines( svgTemplateText )
		self.margin = getParameterFromJavascript( originalTextLines, 'margin', self.margin )
		self.textHeight = getParameterFromJavascript( originalTextLines, 'textHeight', self.textHeight )
		javascriptControlsWidth = getParameterFromJavascript( originalTextLines, 'javascripControlBoxX', 510.0 )
		noJavascriptControlsHeight = getParameterFromJavascript( originalTextLines, 'noJavascriptControlBoxY', 110.0 )
		controlTop = len( rotatedBoundaryLayers ) * ( self.margin + self.extent.y * self.unitScale + self.textHeight ) + 2.0 * self.margin + self.textHeight
#	width = margin + (sliceDimX * unitScale) + margin;
		svgTemplateText = getReplacedInQuotes( 'height', self.getRounded( controlTop + noJavascriptControlsHeight + self.margin ), svgTemplateText )
		width = 2.0 * self.margin + max( self.extent.y * self.unitScale, javascriptControlsWidth )
		svgTemplateText = getReplacedInQuotes( 'width', self.getRounded( width ), svgTemplateText )
		svgTemplateText = getReplacedWordAndInQuotes( 'layerThickness', self.getRounded( self.layerThickness ), svgTemplateText )
		svgTemplateText = getReplacedWordAndInQuotes( 'maxX', self.getRounded( self.cornerMaximum.x ), svgTemplateText )
		svgTemplateText = getReplacedWordAndInQuotes( 'minX', self.getRounded( self.cornerMinimum.x ), svgTemplateText )
		svgTemplateText = getReplacedWordAndInQuotes( 'dimX', self.getRounded( self.extent.x ), svgTemplateText )
		svgTemplateText = getReplacedWordAndInQuotes( 'maxY', self.getRounded( self.cornerMaximum.y ), svgTemplateText )
		svgTemplateText = getReplacedWordAndInQuotes( 'minY', self.getRounded( self.cornerMinimum.y ), svgTemplateText )
		svgTemplateText = getReplacedWordAndInQuotes( 'dimY', self.getRounded( self.extent.y ), svgTemplateText )
		svgTemplateText = getReplacedWordAndInQuotes( 'maxZ', self.getRounded( self.cornerMaximum.z ), svgTemplateText )
		svgTemplateText = getReplacedWordAndInQuotes( 'minZ', self.getRounded( self.cornerMinimum.z ), svgTemplateText )
		svgTemplateText = getReplacedWordAndInQuotes( 'dimZ', self.getRounded( self.extent.z ), svgTemplateText )
		summarizedFilename = gcodec.getSummarizedFilename( fileName ) + ' SVG Slice File'
		svgTemplateText = getReplacedWordAndInQuotes( 'Title', summarizedFilename, svgTemplateText )
		noJavascriptControlsTagString = '<g id="noJavascriptControls" fill="#000" transform="translate(%s, %s)">' % ( self.getRounded( self.margin ), self.getRounded( controlTop ) )
		svgTemplateText = getReplacedTagString( noJavascriptControlsTagString, 'noJavascriptControls', svgTemplateText )
#	<g id="noJavascriptControls" fill="#000" transform="translate(20, 1400)">
		return gcodec.getTextLines( svgTemplateText )
Example #4
0
	def getCraftedGcode( self, gcodeText, homePreferences ):
		"Parse gcode text and store the home gcode."
		self.lines = gcodec.getTextLines( gcodeText )
		self.homePreferences = homePreferences
		self.parseInitialization( homePreferences )
		self.homingText = preferences.getFileInAlterationsOrGivenDirectory( os.path.dirname( __file__ ), homePreferences.nameOfHomingFile.value )
		self.homingLines = gcodec.getTextLines( self.homingText )
		for self.lineIndex in xrange( self.lineIndex, len( self.lines ) ):
			line = self.lines[ self.lineIndex ]
			self.parseLine( line )
		return self.distanceFeedRate.output.getvalue()
Example #5
0
 def getCraftedGcode(self, gcodeText, homeRepository):
     "Parse gcode text and store the home gcode."
     self.homingText = settings.getFileInAlterationsOrGivenDirectory(
         os.path.dirname(__file__), homeRepository.nameOfHomingFile.value)
     if len(self.homingText) < 1:
         return gcodeText
     self.lines = gcodec.getTextLines(gcodeText)
     self.homeRepository = homeRepository
     self.parseInitialization(homeRepository)
     self.homingLines = gcodec.getTextLines(self.homingText)
     for self.lineIndex in xrange(self.lineIndex, len(self.lines)):
         line = self.lines[self.lineIndex]
         self.parseLine(line)
     return self.distanceFeedRate.output.getvalue()
Example #6
0
 def parseGcode(self, combPreferences, gcodeText):
     "Parse gcode text and store the comb gcode."
     self.lines = gcodec.getTextLines(gcodeText)
     self.parseInitialization(combPreferences)
     for self.lineIndex in xrange(self.lineIndex, len(self.lines)):
         line = self.lines[self.lineIndex]
         self.parseAddJitter(line)
     self.lines = gcodec.getTextLines(self.output.getvalue())
     self.initializeMoreParameters()
     for self.lineIndex in xrange(len(self.lines)):
         line = self.lines[self.lineIndex]
         self.parseLine(combPreferences, line)
     for self.lineIndex in xrange(len(self.lines)):
         line = self.lines[self.lineIndex]
         self.parseAddTravel(line)
Example #7
0
	def parseGcode( self, combPreferences, gcodeText ):
		"Parse gcode text and store the comb gcode."
		self.lines = gcodec.getTextLines( gcodeText )
		self.parseInitialization( combPreferences )
		for self.lineIndex in xrange( self.lineIndex, len( self.lines ) ):
			line = self.lines[ self.lineIndex ]
			self.parseAddJitter( line )
		self.lines = gcodec.getTextLines( self.output.getvalue() )
		self.initializeMoreParameters()
		for self.lineIndex in xrange( len( self.lines ) ):
			line = self.lines[ self.lineIndex ]
			self.parseLine( combPreferences, line )
		for self.lineIndex in xrange( len( self.lines ) ):
			line = self.lines[ self.lineIndex ]
			self.parseAddTravel( line )
Example #8
0
	def parseGcode( self, gcodeText, loopTailorPreferences ):
		"Parse gcode text and store the clip gcode."
		self.lines = gcodec.getTextLines( gcodeText )
		self.parseInitialization( loopTailorPreferences )
		for self.lineIndex in xrange( self.lineIndex, len( self.lines ) ):
			line = self.lines[ self.lineIndex ]
			self.parseLine( line )
Example #9
0
	def parseGcode( self, fileName, gcodeText, beholdPreferences ):
		"Parse gcode text and store the vector output."
		self.beholdPreferences = beholdPreferences
		self.fileName = fileName
		self.gcodeText = gcodeText
		self.initializeActiveLocation()
		self.cornerHigh = Vector3( - 999999999.0, - 999999999.0, - 999999999.0 )
		self.cornerLow = Vector3( 999999999.0, 999999999.0, 999999999.0 )
		self.goAroundExtruderOffTravel = beholdPreferences.goAroundExtruderOffTravel.value
		self.lines = gcodec.getTextLines( gcodeText )
		self.isThereALayerStartWord = gcodec.isThereAFirstWord( '(<layer>', self.lines, 1 )
		for line in self.lines:
			self.parseCorner( line )
		if len( self.layerTops ) > 0:
			self.layerTops[ - 1 ] += 912345678.9
		if len( self.layerTops ) > 1:
			self.oneMinusBrightnessOverTopLayerIndex = ( 1.0 - beholdPreferences.bottomLayerBrightness.value ) / float( len( self.layerTops ) - 1 )
		self.firstTopLayer = len( self.layerTops ) - self.beholdPreferences.numberOfFillTopLayers.value
		self.centerComplex = 0.5 * ( self.cornerHigh.dropAxis( 2 ) + self.cornerLow.dropAxis( 2 ) )
		self.centerBottom = Vector3( self.centerComplex.real, self.centerComplex.imag, self.cornerLow.z )
		self.scale = beholdPreferences.pixelsPerMillimeter.value
		self.scaleCenterBottom = self.scale * self.centerBottom
		self.scaleCornerHigh = self.scale * self.cornerHigh.dropAxis( 2 )
		self.scaleCornerLow = self.scale * self.cornerLow.dropAxis( 2 )
		print( "The lower left corner of the behold window is at %s, %s" % ( self.cornerLow.x, self.cornerLow.y ) )
		print( "The upper right corner of the behold window is at %s, %s" % ( self.cornerHigh.x, self.cornerHigh.y ) )
		self.cornerImaginaryTotal = self.cornerHigh.y + self.cornerLow.y
		margin = complex( 5.0, 5.0 )
		self.marginCornerLow = self.scaleCornerLow - margin
		self.screenSize = margin + 2.0 * ( self.scaleCornerHigh - self.marginCornerLow )
		self.initializeActiveLocation()
		for self.lineIndex in xrange( len( self.lines ) ):
			line = self.lines[ self.lineIndex ]
			self.parseLine( line )
		self.skeinPanes.sort( compareLayerSequence )
Example #10
0
	def getCraftedGcode( self, gcodeStepRepository, gcodeText ):
		"Parse gcode text and store the gcode."
		self.gcodeStepRepository = gcodeStepRepository
		lines = gcodec.getTextLines( gcodeText )
		for line in lines:
			self.parseLine( line )
		return self.output.getvalue()
Example #11
0
	def parseGcode( self, gcodeText, skeinviewPreferences ):
		"Parse gcode text and store the vector output."
		self.arrowType = None
		if skeinviewPreferences.drawArrows.value:
			self.arrowType = 'last'
		self.initializeActiveLocation()
		self.cornerHigh = Vector3( - 999999999.0, - 999999999.0, - 999999999.0 )
		self.cornerLow = Vector3( 999999999.0, 999999999.0, 999999999.0 )
		self.goAroundExtruderOffTravel = skeinviewPreferences.goAroundExtruderOffTravel.value
		self.lines = gcodec.getTextLines( gcodeText )
		self.isThereALayerStartWord = gcodec.isThereAFirstWord( '(<layer>', self.lines, 1 )
		for line in self.lines:
			self.parseCorner( line )
		self.scale = skeinviewPreferences.pixelsWidthExtrusion.value / abs( self.extrusionWidth )
		self.scaleCornerHigh = self.scale * self.cornerHigh.dropAxis( 2 )
		self.scaleCornerLow = self.scale * self.cornerLow.dropAxis( 2 )
		print( "The lower left corner of the skeinview window is at %s, %s" % ( self.cornerLow.x, self.cornerLow.y ) )
		print( "The upper right corner of the skeinview window is at %s, %s" % ( self.cornerHigh.x, self.cornerHigh.y ) )
		self.cornerImaginaryTotal = self.cornerHigh.y + self.cornerLow.y
		margin = complex( 5.0, 5.0 )
		self.marginCornerLow = self.scaleCornerLow - margin
		self.scaleSize = margin + self.scaleCornerHigh - self.marginCornerLow
		self.initializeActiveLocation()
		self.colorNames = [ 'brown', 'red', 'orange', 'yellow', 'green', 'blue', 'purple' ]
		for self.lineIndex in xrange( len( self.lines ) ):
			line = self.lines[ self.lineIndex ]
			self.parseLine( line )
Example #12
0
 def parseGcode(self, fileName, gcodeText, repository):
     "Parse gcode text and store the vector output."
     self.fileName = fileName
     self.gcodeText = gcodeText
     self.repository = repository
     self.initializeActiveLocation()
     self.cornerHigh = Vector3(-999999999.0, -999999999.0, -999999999.0)
     self.cornerLow = Vector3(999999999.0, 999999999.0, 999999999.0)
     self.lines = gcodec.getTextLines(gcodeText)
     self.isThereALayerStartWord = gcodec.isThereAFirstWord(
         '(<layer>', self.lines, 1)
     self.parseInitialization()
     for line in self.lines[self.lineIndex:]:
         self.parseCorner(line)
     self.cornerHighComplex = self.cornerHigh.dropAxis(2)
     self.cornerLowComplex = self.cornerLow.dropAxis(2)
     self.scale = repository.scale.value
     self.scaleCornerHigh = self.scale * self.cornerHighComplex
     self.scaleCornerLow = self.scale * self.cornerLowComplex
     self.cornerImaginaryTotal = self.cornerHigh.y + self.cornerLow.y
     self.margin = complex(10.0, 10.0)
     self.marginCornerHigh = self.scaleCornerHigh + self.margin
     self.marginCornerLow = self.scaleCornerLow - self.margin
     self.screenSize = self.marginCornerHigh - self.marginCornerLow
     self.initializeActiveLocation()
     self.colorNames = [
         'brown', 'red', 'orange', 'yellow', 'green', 'blue', 'purple'
     ]
     for self.lineIndex in xrange(self.lineIndex, len(self.lines)):
         line = self.lines[self.lineIndex]
         self.parseLine(line)
Example #13
0
	def parseGcode( self, gcodeText, twitterbotPreferences ):
		"Parse gcode text and store the twitterbot gcode."
		self.lines = gcodec.getTextLines( gcodeText )
		self.twitterUsername = twitterbotPreferences.twitterUsername.value
		self.twitterPassword = twitterbotPreferences.twitterPassword.value
		self.layersBetweenTweets = twitterbotPreferences.layersBetweenTweets.value
		self.startMessage = twitterbotPreferences.startMessage.value
		self.progressMessage = twitterbotPreferences.progressMessage.value
		self.finishMessage = twitterbotPreferences.finishMessage.value
		self.quips = twitterbotPreferences.quips.value
		self.quipsList = self.quips.split( '|' )
		#print( 'quipsList: ' + str ( self.quipsList ) )
		self.prevQuip = ''
		self.percentageOfQuips = int( twitterbotPreferences.percentageOfQuips.value )
		if self.percentageOfQuips <= 0 or self.percentageOfQuips > 10:
			self.percentageOfQuips = 3
		if int( self.layersBetweenTweets ) < 1:
			self.layersBetweenTweets = 10
		self.twitterHashtags = twitterbotPreferences.twitterHashtags.value
		self.parseInitialization( twitterbotPreferences )
		#print( "===> self.lineIndex: " + str( self.lineIndex ) )	
		self.totalGcodeLines = len( self.lines )
		self.linesBetweenQuips = int( round( self.totalGcodeLines / self.percentageOfQuips, 0 ) )
		#print( 'self.linesBetweenQuips: ' + str( self.linesBetweenQuips ) )
		#print( 'self.totalGcodeLines: ' + str( self.totalGcodeLines ) )
		for self.lineIndex in xrange( self.lineIndex, len( self.lines ) ):
			# quip messages
			# print( '===> self.lineIndex: ' + str( self.lineIndex ) )
			if self.lineIndex % self.linesBetweenQuips == 0 and self.lineIndex > 0 and self.isPrintFinished == False:
				self.addLine( self.createQuipMessage( self.lineIndex ) )
			line = self.lines[ self.lineIndex ]
			# print( '===> Parsing line ' + str( self.lineIndex ) + ': ' + line )
			self.parseLine( line )
Example #14
0
	def getCraftedGcode( self, gcodeText, binary16ByteRepository ):
		"Parse gcode text and store the gcode."
		self.binary16ByteRepository = binary16ByteRepository
		lines = gcodec.getTextLines( gcodeText )
		for line in lines:
			self.parseLine( line )
		return self.output.getvalue()
Example #15
0
def getNavigationHypertext( fileText, transferredFileNameIndex, transferredFileNames ):
	"Get the hypertext help with navigation lines."
	helpTextEnd = fileText.find( '</p>' )
	helpTextStart = fileText.find( '<p>' )
	helpText = fileText[ helpTextStart : helpTextEnd ]
	lines = gcodec.getTextLines( helpText )
	headings = []
	headingLineTable = {}
	for line in lines:
		addToHeadings( headingLineTable, headings, line )
	headingsToBeenAdded = True
	output = cStringIO.StringIO()
	for line in lines:
		if line[ : 2 ] == '==':
			if headingsToBeenAdded:
				output.write( '<br />\n' )
				for heading in headings:
					heading.addToOutput( output )
				output.write( '<br />\n' )
				headingsToBeenAdded = False
			if line in headingLineTable:
				line = headingLineTable[ line ]
		output.write( line + '\n' )
	helpText = output.getvalue()
	previousFileName = 'contents.html'
	previousIndex = transferredFileNameIndex - 1
	if previousIndex >= 0:
		previousFileName = transferredFileNames[ previousIndex ]
	previousLinkText = '<a href="%s">Previous</a>' % previousFileName
	navigationLine = getNavigationLine( '<a href="contents.html">Contents</a>', previousLinkText, getNextLinkText( transferredFileNames, transferredFileNameIndex + 1 ) )
	helpText = navigationLine + helpText + '<br />\n<br />\n' + navigationLine + '<hr>\n'
	return fileText[ : helpTextStart ] + helpText + fileText[ helpTextEnd : ]
Example #16
0
 def getCraftedGcode(self, gcodeText, binary16ByteRepository):
     "Parse gcode text and store the gcode."
     self.binary16ByteRepository = binary16ByteRepository
     lines = gcodec.getTextLines(gcodeText)
     for line in lines:
         self.parseLine(line)
     return self.output.getvalue()
Example #17
0
	def parseGcode( self, fileName, gcodeText, skeinviewPreferences ):
		"Parse gcode text and store the vector output."
		self.fileName = fileName
		self.gcodeText = gcodeText
		self.initializeActiveLocation()
		self.cornerHigh = Vector3( - 999999999.0, - 999999999.0, - 999999999.0 )
		self.cornerLow = Vector3( 999999999.0, 999999999.0, 999999999.0 )
		self.goAroundExtruderOffTravel = skeinviewPreferences.goAroundExtruderOffTravel.value
		self.lines = gcodec.getTextLines( gcodeText )
		self.isThereALayerStartWord = gcodec.isThereAFirstWord( '(<layer>', self.lines, 1 )
		for line in self.lines:
			self.parseCorner( line )
		self.cornerHighComplex = self.cornerHigh.dropAxis( 2 )
		self.cornerLowComplex = self.cornerLow.dropAxis( 2 )
		self.scale = skeinviewPreferences.pixelsPerMillimeter.value
		self.scaleCornerHigh = self.scale * self.cornerHighComplex
		self.scaleCornerLow = self.scale * self.cornerLowComplex
		self.cornerImaginaryTotal = self.cornerHigh.y + self.cornerLow.y
		self.margin = complex( 10.0, 10.0 )
		self.marginCornerHigh = self.scaleCornerHigh + self.margin
		self.marginCornerLow = self.scaleCornerLow - self.margin
		self.screenSize = self.marginCornerHigh - self.marginCornerLow
		self.initializeActiveLocation()
		self.colorNames = [ 'brown', 'red', 'orange', 'yellow', 'green', 'blue', 'purple' ]
		for self.lineIndex in xrange( len( self.lines ) ):
			line = self.lines[ self.lineIndex ]
			self.parseLine( line )
Example #18
0
	def getCraftedGcode( self, gcodeText, raftRepository ):
		"Parse gcode text and store the raft gcode."
		self.raftRepository = raftRepository
		self.supportEndText = preferences.getFileInAlterationsOrGivenDirectory( os.path.dirname( __file__ ), 'Support_End.gcode' )
		self.supportEndLines = gcodec.getTextLines( self.supportEndText )
		self.supportStartText = preferences.getFileInAlterationsOrGivenDirectory( os.path.dirname( __file__ ), 'Support_Start.gcode' )
		self.supportStartLines = gcodec.getTextLines( self.supportStartText )
		self.minimumSupportRatio = math.tan( math.radians( raftRepository.supportMinimumAngle.value ) )
		self.lines = gcodec.getTextLines( gcodeText )
		self.parseInitialization()
		if raftRepository.addRaftElevateNozzleOrbitSetAltitude.value:
			self.addRaft()
		self.addTemperature( raftRepository.temperatureShapeFirstLayerOutline.value )
		for line in self.lines[ self.lineIndex : ]:
			self.parseLine( line )
		return self.distanceFeedRate.output.getvalue()
Example #19
0
	def parseGcode( self, fileName, gcodeText, repository ):
		"Parse gcode text and store the vector output."
		self.fileName = fileName
		self.gcodeText = gcodeText
		self.repository = repository
		self.initializeActiveLocation()
		self.cornerHigh = Vector3( - 999999999.0, - 999999999.0, - 999999999.0 )
		self.cornerLow = Vector3( 999999999.0, 999999999.0, 999999999.0 )
		self.lines = gcodec.getTextLines( gcodeText )
		self.isThereALayerStartWord = gcodec.isThereAFirstWord( '(<layer>', self.lines, 1 )
		self.parseInitialization()
		for line in self.lines[ self.lineIndex : ]:
			self.parseCorner( line )
		self.cornerHighComplex = self.cornerHigh.dropAxis( 2 )
		self.cornerLowComplex = self.cornerLow.dropAxis( 2 )
		self.scale = repository.scale.value
		self.scaleCornerHigh = self.scale * self.cornerHighComplex
		self.scaleCornerLow = self.scale * self.cornerLowComplex
		self.cornerImaginaryTotal = self.cornerHigh.y + self.cornerLow.y
		self.margin = complex( 10.0, 10.0 )
		self.marginCornerHigh = self.scaleCornerHigh + self.margin
		self.marginCornerLow = self.scaleCornerLow - self.margin
		self.screenSize = self.marginCornerHigh - self.marginCornerLow
		self.initializeActiveLocation()
		self.colorNames = [ 'brown', 'red', 'orange', 'yellow', 'green', 'blue', 'purple' ]
		for self.lineIndex in xrange( self.lineIndex, len( self.lines ) ):
			line = self.lines[ self.lineIndex ]
			self.parseLine( line )
Example #20
0
	def getCraftedGcode( self, gcodeText, flowRepository ):
		"Parse gcode text and store the flow gcode."
		self.flowRepository = flowRepository
		self.lines = gcodec.getTextLines( gcodeText )
		self.parseInitialization()
		for line in self.lines[ self.lineIndex : ]:
			self.parseLine( line )
		return self.distanceFeedRate.output.getvalue()
def readPreferencesFromText(archivablePreferences, text):
    "Set an archive to the preferences read from a text."
    lines = gcodec.getTextLines(text)
    preferenceTable = {}
    for preference in archivablePreferences.archive:
        preference.addToPreferenceTable(preferenceTable)
    for lineIndex in xrange(len(lines)):
        setArchiveToLine(lineIndex, lines, preferenceTable)
Example #22
0
	def __init__( self, xmlText ):
		"Add empty lists."
		self.isInComment = False
		self.parents = []
		self.rootElement = None
		self.lines = gcodec.getTextLines( xmlText )
		for line in self.lines:
			self.parseLine( line )
Example #23
0
	def parseGcode( self, gcodeText, oozebanePreferences ):
		"Parse gcode text and store the oozebane gcode."
		self.lines = gcodec.getTextLines( gcodeText )
		self.oozebanePreferences = oozebanePreferences
		self.parseInitialization( oozebanePreferences )
		for self.lineIndex in xrange( self.lineIndex, len( self.lines ) ):
			line = self.lines[ self.lineIndex ]
			self.parseLine( line )
Example #24
0
	def parseGcode( self, gcodeText, stretchPreferences ):
		"Parse gcode text and store the stretch gcode."
		self.lines = gcodec.getTextLines( gcodeText )
		self.stretchPreferences = stretchPreferences
		self.parseInitialization()
		for self.lineIndex in xrange( self.lineIndex, len( self.lines ) ):
			line = self.lines[ self.lineIndex ]
			self.parseStretch( line )
Example #25
0
def addFacesGivenText(stlText, triangleMesh, vertexIndexTable):
    "Add faces given stl text."
    lines = gcodec.getTextLines(stlText)
    vertices = []
    for line in lines:
        if line.find('vertex') != -1:
            vertices.append(getVertexGivenLine(line))
    addFacesGivenVertices(triangleMesh, vertexIndexTable, vertices)
Example #26
0
 def getCraftedGcode(self, clipRepository, gcodeText):
     "Parse gcode text and store the clip gcode."
     self.lines = gcodec.getTextLines(gcodeText)
     self.parseInitialization(clipRepository)
     for self.lineIndex in xrange(self.lineIndex, len(self.lines)):
         line = self.lines[self.lineIndex]
         self.parseLine(line)
     return self.distanceFeedRate.output.getvalue()
 def __init__(self, xmlText):
     "Add empty lists."
     self.isInComment = False
     self.parents = []
     self.rootElement = None
     self.lines = gcodec.getTextLines(xmlText)
     for line in self.lines:
         self.parseLine(line)
Example #28
0
	def getCraftedGcode( self, clipPreferences, gcodeText ):
		"Parse gcode text and store the clip gcode."
		self.lines = gcodec.getTextLines( gcodeText )
		self.parseInitialization( clipPreferences )
		for self.lineIndex in xrange( self.lineIndex, len( self.lines ) ):
			line = self.lines[ self.lineIndex ]
			self.parseLine( line )
		return self.distanceFeedRate.output.getvalue()
Example #29
0
	def addFromUpperLowerFile( self, fileName ):
		"Add lines of text from the fileName or the lowercase fileName, if there is no file by the original fileName in the directory."
		fileText = preferences.getFileInGivenPreferencesDirectory( os.path.dirname( __file__ ), fileName )
		if fileText == '':
			return
		fileLines = gcodec.getTextLines( fileText )
		for line in fileLines:
			self.addLine( line )
Example #30
0
 def getCraftedGcode(self, gcodeText, flowRepository):
     "Parse gcode text and store the flow gcode."
     self.flowRepository = flowRepository
     self.lines = gcodec.getTextLines(gcodeText)
     self.parseInitialization()
     for line in self.lines[self.lineIndex:]:
         self.parseLine(line)
     return self.distanceFeedRate.output.getvalue()
Example #31
0
	def parseGcode( self, gcodeText, hopPreferences ):
		"Parse gcode text and store the hop gcode."
		self.lines = gcodec.getTextLines( gcodeText )
		self.minimumSlope = math.tan( math.radians( hopPreferences.minimumHopAngle.value ) )
		self.parseInitialization( hopPreferences )
		for self.lineIndex in xrange( self.lineIndex, len( self.lines ) ):
			line = self.lines[ self.lineIndex ]
			self.parseLine( line )
Example #32
0
def readPreferencesFromText( archivablePreferences, text ):
	"Set an archive to the preferences read from a text."
	lines = gcodec.getTextLines( text )
	preferenceTable = {}
	for preference in archivablePreferences.archive:
		preference.addToPreferenceTable( preferenceTable )
	for lineIndex in xrange( len( lines ) ):
		setArchiveToLine( lineIndex, lines, preferenceTable )
Example #33
0
def addFacesGivenText( stlText, triangleMesh, vertexIndexTable ):
	"Add faces given stl text."
	lines = gcodec.getTextLines( stlText )
	vertices = []
	for line in lines:
		if line.find( 'vertex' ) != - 1:
			vertices.append( getVertexGivenLine( line ) )
	addFacesGivenVertices( triangleMesh, vertexIndexTable, vertices )
Example #34
0
	def getCraftedGcode( self, gcodeText, coolPreferences ):
		"Parse gcode text and store the cool gcode."
		self.coolPreferences = coolPreferences
		self.coolEndText = preferences.getFileInAlterationsOrGivenDirectory( os.path.dirname( __file__ ), 'Cool_End.gcode' )
		self.coolEndLines = gcodec.getTextLines( self.coolEndText )
		self.coolStartText = preferences.getFileInAlterationsOrGivenDirectory( os.path.dirname( __file__ ), 'Cool_Start.gcode' )
		self.coolStartLines = gcodec.getTextLines( self.coolStartText )
		self.halfCorner = complex( coolPreferences.minimumOrbitalRadius.value, coolPreferences.minimumOrbitalRadius.value )
		self.lines = gcodec.getTextLines( gcodeText )
		self.minimumArea = 4.0 * coolPreferences.minimumOrbitalRadius.value * coolPreferences.minimumOrbitalRadius.value
		self.parseInitialization()
		for self.lineIndex in xrange( self.lineIndex, len( self.lines ) ):
			line = self.lines[ self.lineIndex ]
			self.parseLine( line )
		if coolPreferences.turnFanOffAtEnding.value:
			self.distanceFeedRate.addLine( 'M107' )
		return self.distanceFeedRate.output.getvalue()
Example #35
0
	def getCraftedGcode( self, gcodeText, repository ):
		"Parse gcode text and store the bevel gcode."
		self.repository = repository
		self.lines = gcodec.getTextLines( gcodeText )
		self.parseInitialization()
		for lineIndex in xrange( self.lineIndex, len( self.lines ) ):
			self.parseLine( lineIndex )
		return self.distanceFeedRate.output.getvalue()
Example #36
0
	def getCraftedGcode( self, whittlePreferences, gcodeText ):
		"Parse gcode text and store the whittle gcode."
		self.whittlePreferences = whittlePreferences
		self.lines = gcodec.getTextLines( gcodeText )
		self.parseInitialization()
		for line in self.lines[ self.lineIndex : ]:
			self.parseLine( line )
		return self.distanceFeedRate.output.getvalue()
Example #37
0
 def parseGcode(self, gcodeText, stretchPreferences):
     "Parse gcode text and store the stretch gcode."
     self.lines = gcodec.getTextLines(gcodeText)
     self.stretchPreferences = stretchPreferences
     self.parseInitialization()
     for self.lineIndex in xrange(self.lineIndex, len(self.lines)):
         line = self.lines[self.lineIndex]
         self.parseStretch(line)
Example #38
0
 def getCraftedGcode(self, gcodeText, repository):
     "Parse gcode text and store the bevel gcode."
     self.repository = repository
     self.lines = gcodec.getTextLines(gcodeText)
     self.parseInitialization()
     for lineIndex in xrange(self.lineIndex, len(self.lines)):
         self.parseLine(lineIndex)
     return self.distanceFeedRate.output.getvalue()
Example #39
0
	def getCraftedGcode( self, jitterRepository, gcodeText ):
		"Parse gcode text and store the jitter gcode."
		self.lines = gcodec.getTextLines( gcodeText )
		self.parseInitialization( jitterRepository )
		for self.lineIndex in xrange( self.lineIndex, len( self.lines ) ):
			line = self.lines[ self.lineIndex ]
			self.parseAddJitter( line )
		return self.distanceFeedRate.output.getvalue()
Example #40
0
 def parseGcode(self, gcodeText, raftlessPreferences):
     "Parse gcode text and store the raftless gcode."
     self.raftlessPreferences = raftlessPreferences
     self.wantsExtrusionIntro = self.raftlessPreferences.addExtrusionIntro.value
     self.lines = gcodec.getTextLines(gcodeText)
     self.parseInitialization()
     for line in self.lines[self.lineIndex:]:
         self.parseLine(line)
     return self.distanceFeedRate.output.getvalue()
Example #41
0
	def parseGcode( self, gcodeText, coolPreferences ):
		"Parse gcode text and store the cool gcode."
		self.lines = gcodec.getTextLines( gcodeText )
		self.parseInitialization( coolPreferences )
		for self.lineIndex in xrange( self.lineIndex, len( self.lines ) ):
			line = self.lines[ self.lineIndex ]
			self.parseLine( coolPreferences, line )
		if coolPreferences.turnFanOffAtEnding.value:
			self.addLine( 'M107' )
Example #42
0
 def getCraftedGcode(self, gcodeText, stretchRepository):
     "Parse gcode text and store the stretch gcode."
     self.lines = gcodec.getTextLines(gcodeText)
     self.stretchRepository = stretchRepository
     self.parseInitialization()
     for self.lineIndex in xrange(self.lineIndex, len(self.lines)):
         line = self.lines[self.lineIndex]
         self.parseStretch(line)
     return self.distanceFeedRate.output.getvalue()
Example #43
0
 def parseGcode(self, gcodeText, hopPreferences):
     "Parse gcode text and store the hop gcode."
     self.lines = gcodec.getTextLines(gcodeText)
     self.minimumSlope = math.tan(
         math.radians(hopPreferences.minimumHopAngle.value))
     self.parseInitialization(hopPreferences)
     for self.lineIndex in xrange(self.lineIndex, len(self.lines)):
         line = self.lines[self.lineIndex]
         self.parseLine(line)
Example #44
0
	def getCraftedGcode( self, gcodeText, hopRepository ):
		"Parse gcode text and store the hop gcode."
		self.lines = gcodec.getTextLines( gcodeText )
		self.minimumSlope = math.tan( math.radians( hopRepository.minimumHopAngle.value ) )
		self.parseInitialization( hopRepository )
		for self.lineIndex in xrange( self.lineIndex, len( self.lines ) ):
			line = self.lines[ self.lineIndex ]
			self.parseLine( line )
		return self.distanceFeedRate.output.getvalue()
Example #45
0
	def parseGcode( self, filletPreferences, gcodeText ):
		"Parse gcode text and store the bevel gcode."
		self.cornerFeedrateOverOperatingFeedrate = filletPreferences.cornerFeedrateOverOperatingFeedrate.value
		self.lines = gcodec.getTextLines( gcodeText )
		self.filletPreferences = filletPreferences
		self.parseInitialization( filletPreferences )
		for self.lineIndex in xrange( self.lineIndex, len( self.lines ) ):
			line = self.lines[ self.lineIndex ]
			self.parseLine( line )
Example #46
0
 def addFromUpperLowerFile(self, fileName):
     "Add lines of text from the fileName or the lowercase fileName, if there is no file by the original fileName in the directory."
     fileText = preferences.getFileInGivenPreferencesDirectory(
         os.path.dirname(__file__), fileName)
     if fileText == '':
         return
     fileLines = gcodec.getTextLines(fileText)
     for line in fileLines:
         self.addLine(line)
Example #47
0
	def getCraftedGcode( self, gcodeText, oozebaneRepository ):
		"Parse gcode text and store the oozebane gcode."
		self.lines = gcodec.getTextLines( gcodeText )
		self.oozebaneRepository = oozebaneRepository
		self.parseInitialization( oozebaneRepository )
		for self.lineIndex in xrange( self.lineIndex, len( self.lines ) ):
			line = self.lines[ self.lineIndex ]
			self.parseLine( line )
		return self.distanceFeedRate.output.getvalue()
Example #48
0
	def getCraftedGcode( self, gcodeText, repository ):
		"Parse gcode text and store the raftless gcode."
		self.repository = repository
		self.wantsExtrusionIntro=self.repository.addExtrusionIntro.value
		self.lines = gcodec.getTextLines( gcodeText )
		self.parseInitialization()
		for line in self.lines[ self.lineIndex : ]:
			self.parseLine( line )
		return self.distanceFeedRate.output.getvalue()
Example #49
0
	def getCraftedGcode( self, gcodeText, repository ):
		"Parse gcode text and store the temperature gcode."
		self.repository = repository
		self.lines = gcodec.getTextLines( gcodeText )
		self.parseInitialization()
		self.distanceFeedRate.addLines( self.lines[ self.lineIndex : ] )
#		for line in self.lines[ self.lineIndex : ]:
#			self.parseLine( line )
		return self.distanceFeedRate.output.getvalue()
Example #50
0
	def getCraftedGcode( self, gcodeText, stretchRepository ):
		"Parse gcode text and store the stretch gcode."
		self.lines = gcodec.getTextLines( gcodeText )
		self.stretchRepository = stretchRepository
		self.parseInitialization()
		for self.lineIndex in xrange( self.lineIndex, len( self.lines ) ):
			line = self.lines[ self.lineIndex ]
			self.parseStretch( line )
		return self.distanceFeedRate.output.getvalue()
Example #51
0
 def getCraftedGcode(self, gcodeText, repository):
     "Parse gcode text and store the drill gcode."
     self.lines = gcodec.getTextLines(gcodeText)
     self.repository = repository
     self.parseInitialization()
     for line in self.lines[self.lineIndex:]:
         self.parseSurroundingLoop(line)
     for line in self.lines[self.lineIndex:]:
         self.parseLine(line)
     return self.distanceFeedRate.output.getvalue()
Example #52
0
 def getCraftedGcode(self, filletRepository, gcodeText):
     "Parse gcode text and store the bevel gcode."
     self.cornerFeedRateOverOperatingFeedRate = filletRepository.cornerFeedRateOverOperatingFeedRate.value
     self.lines = gcodec.getTextLines(gcodeText)
     self.filletRepository = filletRepository
     self.parseInitialization(filletRepository)
     for self.lineIndex in xrange(self.lineIndex, len(self.lines)):
         line = self.lines[self.lineIndex]
         self.parseLine(line)
     return self.distanceFeedRate.output.getvalue()
Example #53
0
 def parseSVG(self, svgText):
     "Parse SVG text and store the layers."
     if svgText == '':
         return None
     svgText = svgText.replace('\t', ' ')
     svgText = svgText.replace(';', ' ')
     self.lines = gcodec.getTextLines(svgText)
     self.parseInitialization()
     for lineIndex in xrange(self.lineIndex, len(self.lines)):
         self.parseLine(lineIndex)
Example #54
0
def addFacesGivenText(objText, triangleMesh):
    "Add faces given obj text."
    lines = gcodec.getTextLines(objText)
    for line in lines:
        splitLine = line.split()
        firstWord = gcodec.getFirstWord(splitLine)
        if firstWord == 'v':
            triangleMesh.vertices.append(getVertexGivenLine(line))
        elif firstWord == 'f':
            triangleMesh.faces.append(getFaceGivenLine(line, triangleMesh))
Example #55
0
 def getCraftedGcode(self, gcodeText, repository):
     "Parse gcode text and store the coil gcode."
     self.repository = repository
     self.lines = gcodec.getTextLines(gcodeText)
     self.parseInitialization()
     self.parseBoundaries()
     self.parseUntilLayer()
     self.addCoilLayers()
     self.distanceFeedRate.addLines(self.shutdownLines)
     return self.distanceFeedRate.output.getvalue()
Example #56
0
 def parseGcode(self, unpausePreferences, gcodeText):
     "Parse gcode text and store the unpause gcode."
     self.delaySecond = unpausePreferences.delay.value * 0.001
     self.maximumSpeed = unpausePreferences.maximumSpeed.value
     self.minimumSpeedUpReciprocal = 1.0 / self.maximumSpeed
     self.unpausePreferences = unpausePreferences
     self.lines = gcodec.getTextLines(gcodeText)
     self.parseInitialization()
     for self.lineIndex in xrange(self.lineIndex, len(self.lines)):
         line = self.lines[self.lineIndex]
         self.parseLine(line)