Esempio n. 1
0
def processXMLElement( xmlElement, xmlProcessor ):
	"Process the xml element."
	fileName = evaluate.getEvaluatedValue('file', xmlElement )
	if fileName == None:
		return
	parserFileName = xmlElement.getRoot().parser.fileName
	absoluteFileName = gcodec.getAbsoluteFolderPath( parserFileName, fileName )
	xmlText = ''
	if fileName.endswith('.xml'):
		xmlText = gcodec.getFileText( absoluteFileName )
	else:
		xmlText = getXMLFromCarvingFileName( absoluteFileName )
	if xmlText == '':
		print('The file %s could not be found in the folder which the fabmetheus xml file is in.' % fileName )
		return
	if '_importname' in xmlElement.attributeDictionary:
		xmlElement.importName = xmlElement.attributeDictionary['_importname']
	else:
		xmlElement.importName = gcodec.getUntilDot( fileName )
		xmlElement.attributeDictionary['_importname'] = xmlElement.importName
	XMLSimpleReader( parserFileName, xmlElement, xmlText )
	originalChildren = xmlElement.children[ : ]
	xmlElement.children = []
	for child in originalChildren:
		for subchild in child.children:
			subchild.setParentAddToChildren(xmlElement)
		for attributeDictionaryKey in child.attributeDictionary.keys():
			if attributeDictionaryKey != 'version':
				xmlElement.attributeDictionary[ attributeDictionaryKey ] = child.attributeDictionary[ attributeDictionaryKey ]
	group.processShape( group.Group, xmlElement, xmlProcessor )
	root = xmlElement.getRoot()
	root.idDictionary[ xmlElement.importName ] = evaluate.ElementID(xmlElement)
	root.nameDictionary[ xmlElement.importName ] = evaluate.ElementName(xmlElement)
Esempio n. 2
0
def writeOutput( fileName, gcodeText = '' ):
	"Write statistics for a skeinforge gcode file, if 'Write Statistics File for Skeinforge Chain' is selected."
	repository = settings.getReadRepository( StatisticRepository() )
	if gcodeText == '':
		gcodeText = gcodec.getFileText( fileName )
	if repository.activateStatistic.value:
		analyzeFileGivenText( fileName, gcodeText, repository )
Esempio n. 3
0
def writeOutput( fileName, fileNameSuffix, gcodeText = ''):
	"Write a commented gcode file for a skeinforge gcode file, if 'Write Commented File for Skeinforge Chain' is selected."
	repository = settings.getReadRepository( CommentRepository() )
	if gcodeText == '':
		gcodeText = gcodec.getFileText( fileNameSuffix )
	if repository.activateComment.value:
		getWindowAnalyzeFileGivenText( fileNameSuffix, gcodeText )
Esempio n. 4
0
def getChainText(fileName, procedure):
    "Get a crafted shape file."
    text = ''
    if fileName.endswith('.gcode') or fileName.endswith('.svg'):
        text = gcodec.getFileText(fileName)
    procedures = getProcedures(procedure, text)
    return getChainTextFromProcedures(fileName, procedures, text)
Esempio n. 5
0
def processXMLElement(xmlElement):
    "Process the xml element."
    fileName = evaluate.getEvaluatedValue('file', xmlElement)
    if fileName == None:
        return
    parserFileName = xmlElement.getRoot().parser.fileName
    absoluteFileName = gcodec.getAbsoluteFolderPath(parserFileName, fileName)
    xmlText = ''
    if fileName.endswith('.xml'):
        xmlText = gcodec.getFileText(absoluteFileName)
    else:
        xmlText = getXMLFromCarvingFileName(absoluteFileName)
    if xmlText == '':
        print(
            'The file %s could not be found in the folder which the fabmetheus xml file is in.'
            % fileName)
        return
    if '_importname' in xmlElement.attributeDictionary:
        xmlElement.importName = xmlElement.attributeDictionary['_importname']
    else:
        xmlElement.importName = gcodec.getUntilDot(fileName)
        xmlElement.attributeDictionary['_importname'] = xmlElement.importName
    XMLSimpleReader(parserFileName, xmlElement, xmlText)
    originalChildren = xmlElement.children[:]
    xmlElement.children = []
    for child in originalChildren:
        for subchild in child.children:
            subchild.setParentAddToChildren(xmlElement)
        for attributeDictionaryKey in child.attributeDictionary.keys():
            if attributeDictionaryKey != 'version':
                xmlElement.attributeDictionary[
                    attributeDictionaryKey] = child.attributeDictionary[
                        attributeDictionaryKey]
    group.processShape(group.Group, xmlElement)
Esempio n. 6
0
def getXMLFromXMLFileName(fileName):
    "Get xml text from xml text."
    xmlText = gcodec.getFileText(fileName)
    xmlText = str(FabmetheusParser(xmlText))
    if xmlText != '':
        return xmlText
    return getXMLFromCarvingFileName(fileName)
Esempio n. 7
0
def getChainText( fileName, procedure ):
	"Get a crafted shape file."
	text = ''
	if fileName.endswith('.gcode') or fileName.endswith('.svg'):
		text = gcodec.getFileText(fileName)
	procedures = getProcedures( procedure, text )
	return getChainTextFromProcedures( fileName, procedures, text )
Esempio n. 8
0
def getXMLFromXMLFileName( fileName ):
	"Get xml text from xml text."
	xmlText = gcodec.getFileText( fileName )
	xmlText = str( FabmetheusParser( xmlText ) )
	if xmlText != '':
		return xmlText
	return getXMLFromCarvingFileName( fileName )
Esempio n. 9
0
	def addInitializationToOutput( self ):
		"Add initialization gcode to the output."
		self.addFromUpperLowerFile( self.prefaceRepository.nameOfStartFile.value ) # Add a start file if it exists.
		self.distanceFeedRate.addTagBracketedLine( 'creation', 'skeinforge' ) # GCode formatted comment
		absoluteFilePathUntilDot = os.path.abspath( __file__ )[ : os.path.abspath( __file__ ).rfind( '.' ) ]
		if absoluteFilePathUntilDot == '/home/enrique/Desktop/backup/babbleold/script/reprap/fabmetheus/skeinforge_application/skeinforge_plugins/craft_plugins/preface': #is this script on Enrique's computer?
			gcodec.writeFileText( gcodec.getVersionFileName(), date.today().isoformat() )
		versionText = gcodec.getFileText( gcodec.getVersionFileName() )
		self.distanceFeedRate.addTagBracketedLine( 'version', versionText ) # GCode formatted comment
		self.distanceFeedRate.addLine( '(<extruderInitialization>)' ) # GCode formatted comment
		if self.prefaceRepository.setPositioningToAbsolute.value:
			self.distanceFeedRate.addLine( 'G90' ) # Set positioning to absolute.
		if self.prefaceRepository.setUnitsToMillimeters.value:
			self.distanceFeedRate.addLine( 'G21' ) # Set units to millimeters.
		if self.prefaceRepository.startAtHome.value:
			self.distanceFeedRate.addLine( 'G28' ) # Start at home.
		if self.prefaceRepository.turnExtruderOffAtStartUp.value:
			self.distanceFeedRate.addLine( 'M103' ) # Turn extruder off.
		craftTypeName = skeinforge_profile.getCraftTypeName()
		self.distanceFeedRate.addTagBracketedLine( 'craftTypeName', craftTypeName )
		self.distanceFeedRate.addTagBracketedLine( 'decimalPlacesCarried', self.distanceFeedRate.decimalPlacesCarried )
		self.distanceFeedRate.addTagBracketedLine( 'layerThickness', self.distanceFeedRate.getRounded( self.layerThickness ) )
		if self.prefaceRepository.meta.value:
			self.distanceFeedRate.addTagBracketedLine( 'meta', self.prefaceRepository.meta.value )
		self.distanceFeedRate.addTagBracketedLine( 'perimeterWidth', self.distanceFeedRate.getRounded( self.perimeterWidth ) )
		self.distanceFeedRate.addTagBracketedLine( 'profileName', skeinforge_profile.getProfileName( craftTypeName ) )
		self.distanceFeedRate.addTagBracketedLine( 'procedureDone', 'carve' )
		self.distanceFeedRate.addTagBracketedLine( 'procedureDone', 'preface' )
		self.distanceFeedRate.addLine( '(</extruderInitialization>)' ) # Initialization is finished, extrusion is starting.
		self.distanceFeedRate.addLine( '(<extrusion>)' ) # Initialization is finished, extrusion is starting.
Esempio n. 10
0
 def __init__(self):
     "Set the default settings, execute title & settings fileName."
     settings.addListsToRepository('skeinforge.skeinforge.html', '', self)
     self.fileNameInput = settings.FileNameInput().getFromFileName(
         fabmetheus_interpret.getGNUTranslatorGcodeFileTypeTuples(),
         'Open File for Skeinforge', self, '')
     versionText = gcodec.getFileText(gcodec.getVersionFileName())
     self.createdOnLabel = settings.LabelDisplay().getFromName(
         'Created On: ' + versionText, self)
     self.profileType = settings.MenuButtonDisplay().getFromName(
         'Profile Type: ', self)
     self.profileSelection = settings.MenuButtonDisplay().getFromName(
         'Profile Selection: ', self)
     addToProfileMenu(self.profileSelection, self.profileType, self)
     settings.LabelDisplay().getFromName('Search:', self)
     reprapSearch = settings.HelpPage().getFromNameAfterHTTP(
         'members.axion.net/~enrique/search_reprap.html', 'Reprap', self)
     skeinforgeSearch = settings.HelpPage().getFromNameAfterHTTP(
         'members.axion.net/~enrique/search_skeinforge.html', 'Skeinforge',
         self)
     skeinforgeSearch.column += 2
     webSearch = settings.HelpPage().getFromNameAfterHTTP(
         'members.axion.net/~enrique/search_web.html', 'Web', self)
     webSearch.column += 4
     settings.LabelDisplay().getFromName('', self)
     importantFileNames = ['craft', 'profile']
     getRadioPluginsAddPluginGroupFrame(getPluginsDirectoryPath(),
                                        importantFileNames,
                                        getPluginFileNames(), self)
     self.executeTitle = 'Skeinforge'
Esempio n. 11
0
 def __init__(self):
     "Set the default settings, execute title & settings fileName."
     settings.addListsToRepository("skeinforge_application.skeinforge.html", "", self)
     self.fileNameInput = settings.FileNameInput().getFromFileName(
         fabmetheus_interpret.getGNUTranslatorGcodeFileTypeTuples(), "Open File for Skeinforge", self, ""
     )
     self.profileType = settings.MenuButtonDisplay().getFromName("Profile Type: ", self)
     self.profileSelection = settings.MenuButtonDisplay().getFromName("Profile Selection: ", self)
     addToProfileMenu(self.profileSelection, self.profileType, self)
     settings.LabelDisplay().getFromName("Search:", self)
     reprapSearch = settings.HelpPage().getFromNameAfterHTTP(
         "members.axion.net/~enrique/search_reprap.html", "Reprap", self
     )
     skeinforgeSearch = settings.HelpPage().getFromNameAfterHTTP(
         "members.axion.net/~enrique/search_skeinforge.html", "Skeinforge", self
     )
     skeinforgeSearch.column += 2
     webSearch = settings.HelpPage().getFromNameAfterHTTP("members.axion.net/~enrique/search_web.html", "Web", self)
     webSearch.column += 4
     versionText = gcodec.getFileText(gcodec.getVersionFileName())
     self.version = settings.LabelDisplay().getFromName("Version: " + versionText, self)
     settings.LabelDisplay().getFromName("", self)
     importantFileNames = ["craft", "profile"]
     getRadioPluginsAddPluginGroupFrame(getPluginsDirectoryPath(), importantFileNames, getPluginFileNames(), self)
     self.executeTitle = "Skeinforge"
Esempio n. 12
0
def writeOutput(fileName, fileNameSuffix, gcodeText=''):
    "Write a commented gcode file for a skeinforge gcode file, if 'Write Commented File for Skeinforge Chain' is selected."
    repository = settings.getReadRepository(CommentRepository())
    if gcodeText == '':
        gcodeText = gcodec.getFileText(fileNameSuffix)
    if repository.activateComment.value:
        getWindowAnalyzeFileGivenText(fileNameSuffix, gcodeText)
Esempio n. 13
0
def processXMLElement(xmlElement):
    "Process the xml element."
    fileName = evaluate.getEvaluatedValue("file", xmlElement)
    if fileName == None:
        return
    parserFileName = xmlElement.getRoot().parser.fileName
    absoluteFileName = gcodec.getAbsoluteFolderPath(parserFileName, fileName)
    xmlText = ""
    if fileName.endswith(".xml"):
        xmlText = gcodec.getFileText(absoluteFileName)
    else:
        xmlText = getXMLFromCarvingFileName(absoluteFileName)
    if xmlText == "":
        print("The file %s could not be found in the folder which the fabmetheus xml file is in." % fileName)
        return
    if "_importname" in xmlElement.attributeDictionary:
        xmlElement.importName = xmlElement.attributeDictionary["_importname"]
    else:
        xmlElement.importName = gcodec.getUntilDot(fileName)
        xmlElement.attributeDictionary["_importname"] = xmlElement.importName
    XMLSimpleReader(parserFileName, xmlElement, xmlText)
    originalChildren = xmlElement.children[:]
    xmlElement.children = []
    for child in originalChildren:
        for subchild in child.children:
            subchild.setParentAddToChildren(xmlElement)
        for attributeDictionaryKey in child.attributeDictionary.keys():
            if attributeDictionaryKey != "version":
                xmlElement.attributeDictionary[attributeDictionaryKey] = child.attributeDictionary[
                    attributeDictionaryKey
                ]
    group.processShape(group.Group, xmlElement)
Esempio n. 14
0
def readWriteNavigationHelp( documentDirectoryPath, transferredFileNameIndex, transferredFileNames ):
	"Read the hypertext help documents, and add the navigation lines to them."
	fileName = transferredFileNames[ transferredFileNameIndex ]
	print(fileName)
	filePath = os.path.join( documentDirectoryPath, fileName )
	fileText = gcodec.getFileText(filePath)
	fileText = getNavigationHypertext( fileText, transferredFileNameIndex, transferredFileNames )
	gcodec.writeFileText( filePath, fileText )
Esempio n. 15
0
def readWriteNavigationHelp(documentDirectoryPath, transferredFileNameIndex,
                            transferredFileNames):
    "Read the hypertext help documents, and add the navigation lines to them."
    fileName = transferredFileNames[transferredFileNameIndex]
    print(fileName)
    filePath = os.path.join(documentDirectoryPath, fileName)
    fileText = gcodec.getFileText(filePath)
    fileText = getNavigationHypertext(fileText, transferredFileNameIndex,
                                      transferredFileNames)
    gcodec.writeFileText(filePath, fileText)
Esempio n. 16
0
def getCarving( fileName = ''):
	"Get the triangle mesh for the obj file."
	if fileName == '':
		return None
	objText = gcodec.getFileText( fileName, 'rb')
	if objText == '':
		return None
	triangleMesh = trianglemesh.TriangleMesh()
	addFacesGivenText( objText, triangleMesh )
	triangleMesh.setEdgesForAllFaces()
	return triangleMesh
Esempio n. 17
0
def getCarving( fileName = ''):
	"Get the carving for the csv file."
	csvText = gcodec.getFileText( fileName )
	if csvText == '':
		return None
	csvParser = CSVSimpleParser( fileName, None, csvText )
	lowerClassName = csvParser.getRoot().className.lower()
	pluginModule = gcodec.getModuleWithDirectoryPath( getPluginsDirectoryPath(), lowerClassName )
	if pluginModule == None:
		return None
	return pluginModule.getCarvingFromParser( csvParser )
Esempio n. 18
0
def getCarving(fileName=''):
    "Get the triangle mesh for the obj file."
    if fileName == '':
        return None
    objText = gcodec.getFileText(fileName, 'rb')
    if objText == '':
        return None
    triangleMesh = trianglemesh.TriangleMesh()
    addFacesGivenText(objText, triangleMesh)
    triangleMesh.setEdgesForAllFaces()
    return triangleMesh
Esempio n. 19
0
def getCarving( fileName = ''):
	"Get the carving for the xml file."
	xmlText = gcodec.getFileText( fileName )
	if xmlText == '':
		return None
	xmlParser = XMLSimpleReader( fileName, None, xmlText )
	lowerClassName = xmlParser.getRoot().className.lower()
	pluginModule = gcodec.getModuleWithDirectoryPath( getPluginsDirectoryPath(), lowerClassName )
	if pluginModule == None:
		return None
	return pluginModule.getCarvingFromParser( xmlParser )
Esempio n. 20
0
def readWriteDeleteHypertextHelp( documentDirectoryPath, hypertextFileIndex, hypertextFiles, transferredFileNames ):
	"Read the pydoc hypertext help documents, write them in the documentation folder then delete the originals."
	fileName = hypertextFiles[ hypertextFileIndex ]
	print(fileName)
	filePath = os.path.join( documentDirectoryPath, fileName )
	fileText = gcodec.getFileText(fileName)
	fileText = getWrappedHypertext( fileText, hypertextFileIndex, hypertextFiles )
	if fileText.find('This page is in the table of contents.') > - 1:
		fileText = fileText.replace('This page is in the table of contents.', '')
		transferredFileNames.append(fileName)
	gcodec.writeFileText( filePath, fileText )
	os.remove(fileName)
Esempio n. 21
0
def getCarving(fileName=''):
    "Get the carving for the csv file."
    csvText = gcodec.getFileText(fileName)
    if csvText == '':
        return None
    csvParser = CSVSimpleParser(fileName, None, csvText)
    lowerClassName = csvParser.getRoot().className.lower()
    pluginModule = gcodec.getModuleWithDirectoryPath(getPluginsDirectoryPath(),
                                                     lowerClassName)
    if pluginModule == None:
        return None
    return pluginModule.getCarvingFromParser(csvParser)
Esempio n. 22
0
def getCarving(fileName=''):
    "Get the carving for the xml file."
    xmlText = gcodec.getFileText(fileName)
    if xmlText == '':
        return None
    xmlParser = XMLSimpleReader(fileName, None, xmlText)
    lowerClassName = xmlParser.getRoot().className.lower()
    pluginModule = gcodec.getModuleWithDirectoryPath(getPluginsDirectoryPath(),
                                                     lowerClassName)
    if pluginModule == None:
        return None
    return pluginModule.getCarvingFromParser(xmlParser)
Esempio n. 23
0
 def addInitializationToOutput(self):
     "Add initialization gcode to the output."
     self.addFromUpperLowerFile(self.prefaceRepository.nameOfStartFile.value
                                )  # Add a start file if it exists.
     self.distanceFeedRate.addTagBracketedLine(
         'creation', 'skeinforge')  # GCode formatted comment
     absoluteFilePathUntilDot = os.path.abspath(
         __file__)[:os.path.abspath(__file__).rfind('.')]
     if absoluteFilePathUntilDot == '/home/enrique/Desktop/backup/babbleold/script/reprap/fabmetheus/skeinforge_application/skeinforge_plugins/craft_plugins/preface':  #is this script on Enrique's computer?
         gcodec.writeFileText(
             gcodec.getVersionFileName(),
             date.today().isoformat().replace('-', '.')[2:])
     versionText = gcodec.getFileText(gcodec.getVersionFileName())
     self.distanceFeedRate.addTagBracketedLine(
         'version', versionText)  # GCode formatted comment
     self.distanceFeedRate.addLine(
         '(<extruderInitialization>)')  # GCode formatted comment
     if self.prefaceRepository.setPositioningToAbsolute.value:
         self.distanceFeedRate.addLine(
             'G90')  # Set positioning to absolute.
     if self.prefaceRepository.setUnitsToMillimeters.value:
         self.distanceFeedRate.addLine('G21')  # Set units to millimeters.
     if self.prefaceRepository.startAtHome.value:
         self.distanceFeedRate.addLine('G28')  # Start at home.
     if self.prefaceRepository.turnExtruderOffAtStartUp.value:
         self.distanceFeedRate.addLine('M103')  # Turn extruder off.
     craftTypeName = skeinforge_profile.getCraftTypeName()
     self.distanceFeedRate.addTagBracketedLine('craftTypeName',
                                               craftTypeName)
     self.distanceFeedRate.addTagBracketedLine(
         'decimalPlacesCarried', self.distanceFeedRate.decimalPlacesCarried)
     layerThickness = float(
         self.svgReader.sliceDictionary['layerThickness'])
     self.distanceFeedRate.addTagBracketedLine(
         'layerThickness', self.distanceFeedRate.getRounded(layerThickness))
     if self.prefaceRepository.meta.value:
         self.distanceFeedRate.addTagBracketedLine(
             'meta', self.prefaceRepository.meta.value)
     perimeterWidth = float(
         self.svgReader.sliceDictionary['perimeterWidth'])
     self.distanceFeedRate.addTagBracketedLine(
         'perimeterWidth', self.distanceFeedRate.getRounded(perimeterWidth))
     self.distanceFeedRate.addTagBracketedLine(
         'profileName', skeinforge_profile.getProfileName(craftTypeName))
     self.distanceFeedRate.addTagBracketedLine(
         'procedureDone', self.svgReader.sliceDictionary['procedureDone'])
     self.distanceFeedRate.addTagBracketedLine('procedureDone', 'preface')
     self.distanceFeedRate.addLine(
         '(</extruderInitialization>)'
     )  # Initialization is finished, extrusion is starting.
     self.distanceFeedRate.addLine(
         '(<extrusion>)'
     )  # Initialization is finished, extrusion is starting.
Esempio n. 24
0
def getTriangleMesh( fileName = '' ):
	"Carve a GNU Triangulated Surface file.  If no fileName is specified, carve the first GNU Triangulated Surface file in this folder."
	if fileName == '':
		unmodified = gcodec.getGNUTriangulatedSurfaceFiles()
		if len( unmodified ) == 0:
			print( "There are no GNU Triangulated Surface files in this folder." )
			return None
		fileName = unmodified[ 0 ]
	gnuTriangulatedSurfaceText = gcodec.getFileText( fileName )
	if gnuTriangulatedSurfaceText == '':
		return None
	triangleMesh = TriangleMesh().getFromGNUTriangulatedSurfaceText( gnuTriangulatedSurfaceText )
	return triangleMesh
Esempio n. 25
0
	def __init__( self ):
		"Set the default settings, execute title & settings fileName."
		settings.addListsToRepository( 'skeinforge.html', '', self )
		self.fileNameInput = settings.FileNameInput().getFromFileName( fabmetheus_interpret.getGNUTranslatorGcodeFileTypeTuples(), 'Open File for Skeinforge', self, '' )
		versionText = gcodec.getFileText( gcodec.getVersionFileName() )
		self.profileType = settings.MenuButtonDisplay().getFromName( 'Profile Type: ', self )
		self.profileSelection = settings.MenuButtonDisplay().getFromName( 'Profile Selection: ', self )
		addToProfileMenu( self.profileSelection, self.profileType, self )
		settings.LabelDisplay().getFromName( 'Web Help:', self )
		reprapSearch = settings.HelpPage().getFromNameAfterHTTP( 'www.bitsfrombytes.com/wiki/index.php?title=Skeinforge', 'Bfb Wiki', self )
		settings.LabelDisplay().getFromName( '', self )
		importantFileNames = [ 'craft', 'profile' ]
		getRadioPluginsAddPluginGroupFrame( getPluginsDirectoryPath(), importantFileNames, getPluginFileNames(), self )
		self.executeTitle = 'Skeinforge'
Esempio n. 26
0
	def __init__(self, fontFamily):
		"Initialize."
		self.fontFamily = fontFamily
		self.glyphDictionary = {}
		self.glyphXMLElementDictionary = {}
		self.missingGlyph = None
		fileName = os.path.join(getFontsDirectoryPath(), fontFamily + '.svg')
		self.xmlParser = XMLSimpleReader(fileName, None, gcodec.getFileText(fileName))
		self.fontXMLElement = self.xmlParser.getRoot().getFirstChildWithClassName('defs').getFirstChildWithClassName('font')
		self.fontFaceXMLElement = self.fontXMLElement.getFirstChildWithClassName('font-face')
		self.unitsPerEM = float(self.fontFaceXMLElement.attributeDictionary['units-per-em'])
		glyphXMLElements = self.fontXMLElement.getChildrenWithClassName('glyph')
		for glyphXMLElement in glyphXMLElements:
			self.glyphXMLElementDictionary[glyphXMLElement.attributeDictionary['unicode']] = glyphXMLElement
Esempio n. 27
0
	def __init__(self, fontFamily):
		"Initialize."
		self.fontFamily = fontFamily
		self.glyphDictionary = {}
		self.glyphXMLElementDictionary = {}
		self.missingGlyph = None
		fileName = os.path.join(getFontsDirectoryPath(), fontFamily + '.svg')
		self.xmlParser = XMLSimpleReader(fileName, None, gcodec.getFileText(fileName))
		self.fontXMLElement = self.xmlParser.getRoot().getFirstChildWithClassName('defs').getFirstChildWithClassName('font')
		self.fontFaceXMLElement = self.fontXMLElement.getFirstChildWithClassName('font-face')
		self.unitsPerEM = float(self.fontFaceXMLElement.attributeDictionary['units-per-em'])
		glyphXMLElements = self.fontXMLElement.getChildrenWithClassName('glyph')
		for glyphXMLElement in glyphXMLElements:
			self.glyphXMLElementDictionary[glyphXMLElement.attributeDictionary['unicode']] = glyphXMLElement
Esempio n. 28
0
def getTriangleMesh(fileName=''):
    "Carve a GNU Triangulated Surface file.  If no fileName is specified, carve the first GNU Triangulated Surface file in this folder."
    if fileName == '':
        unmodified = gcodec.getGNUTriangulatedSurfaceFiles()
        if len(unmodified) == 0:
            print(
                "There are no GNU Triangulated Surface files in this folder.")
            return None
        fileName = unmodified[0]
    gnuTriangulatedSurfaceText = gcodec.getFileText(fileName)
    if gnuTriangulatedSurfaceText == '':
        return None
    triangleMesh = TriangleMesh().getFromGNUTriangulatedSurfaceText(
        gnuTriangulatedSurfaceText)
    return triangleMesh
Esempio n. 29
0
def readWriteDeleteHypertextHelp(documentDirectoryPath, hypertextFileIndex,
                                 hypertextFiles, transferredFileNames):
    "Read the pydoc hypertext help documents, write them in the documentation folder then delete the originals."
    fileName = hypertextFiles[hypertextFileIndex]
    print(fileName)
    filePath = os.path.join(documentDirectoryPath, fileName)
    fileText = gcodec.getFileText(fileName)
    fileText = getWrappedHypertext(fileText, hypertextFileIndex,
                                   hypertextFiles)
    if fileText.find('This page is in the table of contents.') > -1:
        fileText = fileText.replace('This page is in the table of contents.',
                                    '')
        transferredFileNames.append(fileName)
    gcodec.writeFileText(filePath, fileText)
    os.remove(fileName)
Esempio n. 30
0
def getCarving(fileName=''):
    "Get the triangle mesh for the stl file."
    if fileName == '':
        return None
    stlData = gcodec.getFileText(fileName, 'rb')
    if stlData == '':
        return None
    triangleMesh = trianglemesh.TriangleMesh()
    vertexIndexTable = {}
    numberOfVertexStrings = stlData.count('vertex')
    requiredVertexStringsForText = max(2, len(stlData) / 8000)
    if numberOfVertexStrings > requiredVertexStringsForText:
        addFacesGivenText(stlData, triangleMesh, vertexIndexTable)
    else:
        #	A binary stl should never start with the word "solid".  Because this error is common the file is been parsed as binary regardless.
        addFacesGivenBinary(stlData, triangleMesh, vertexIndexTable)
    triangleMesh.setEdgesForAllFaces()
    return triangleMesh
Esempio n. 31
0
def getCarving( fileName = '' ):
	"Get the triangle mesh for the stl file."
	if fileName == '':
		return None
	stlData = gcodec.getFileText( fileName, 'rb' )
	if stlData == '':
		return None
	triangleMesh = trianglemesh.TriangleMesh()
	vertexIndexTable = {}
	numberOfVertexStrings = stlData.count( 'vertex' )
	requiredVertexStringsForText = max( 2, len( stlData ) / 8000 )
	if numberOfVertexStrings > requiredVertexStringsForText:
		addFacesGivenText( stlData, triangleMesh, vertexIndexTable )
	else:
#	A binary stl should never start with the word "solid".  Because this error is common the file is been parsed as binary regardless.
		addFacesGivenBinary( stlData, triangleMesh, vertexIndexTable )
	triangleMesh.setEdgesForAllFaces()
	return triangleMesh
Esempio n. 32
0
	def __init__( self ):
		"Set the default settings, execute title & settings fileName."
		settings.addListsToRepository( 'skeinforge.skeinforge.html', '', self )
		self.fileNameInput = settings.FileNameInput().getFromFileName( fabmetheus_interpret.getGNUTranslatorGcodeFileTypeTuples(), 'Open File for Skeinforge', self, '' )
		versionText = gcodec.getFileText( gcodec.getVersionFileName() )
		self.createdOnLabel = settings.LabelDisplay().getFromName( 'Created On: ' + versionText, self )
		self.profileType = settings.MenuButtonDisplay().getFromName( 'Profile Type: ', self )
		self.profileSelection = settings.MenuButtonDisplay().getFromName( 'Profile Selection: ', self )
		addToProfileMenu( self.profileSelection, self.profileType, self )
		settings.LabelDisplay().getFromName( 'Search:', self )
		reprapSearch = settings.HelpPage().getFromNameAfterHTTP( 'members.axion.net/~enrique/search_reprap.html', 'Reprap', self )
		skeinforgeSearch = settings.HelpPage().getFromNameAfterHTTP( 'members.axion.net/~enrique/search_skeinforge.html', 'Skeinforge', self )
		skeinforgeSearch.column += 2
		webSearch = settings.HelpPage().getFromNameAfterHTTP( 'members.axion.net/~enrique/search_web.html', 'Web', self )
		webSearch.column += 4
		settings.LabelDisplay().getFromName( '', self )
		importantFileNames = [ 'craft', 'profile' ]
		getRadioPluginsAddPluginGroupFrame( getPluginsDirectoryPath(), importantFileNames, getPluginFileNames(), self )
		self.executeTitle = 'Skeinforge'
Esempio n. 33
0
 def __init__(self):
     "Set the default settings, execute title & settings fileName."
     settings.addListsToRepository('skeinforge.html', '', self)
     self.fileNameInput = settings.FileNameInput().getFromFileName(
         fabmetheus_interpret.getGNUTranslatorGcodeFileTypeTuples(),
         'Open File for Skeinforge', self, '')
     versionText = gcodec.getFileText(gcodec.getVersionFileName())
     self.profileType = settings.MenuButtonDisplay().getFromName(
         'Profile Type: ', self)
     self.profileSelection = settings.MenuButtonDisplay().getFromName(
         'Profile Selection: ', self)
     addToProfileMenu(self.profileSelection, self.profileType, self)
     settings.LabelDisplay().getFromName('Web Help:', self)
     reprapSearch = settings.HelpPage().getFromNameAfterHTTP(
         'www.bitsfrombytes.com/wiki/index.php?title=Skeinforge',
         'Bfb Wiki', self)
     settings.LabelDisplay().getFromName('', self)
     importantFileNames = ['craft', 'profile']
     getRadioPluginsAddPluginGroupFrame(getPluginsDirectoryPath(),
                                        importantFileNames,
                                        getPluginFileNames(), self)
     self.executeTitle = 'Skeinforge'
Esempio n. 34
0
    def addInitializationToOutput(self):
        "Add initialization gcode to the output."
        self.addFromUpperLowerFile(self.prefaceRepository.nameOfStartFile.value
                                   )  # Add a start file if it exists.
        self.distanceFeedRate.addTagBracketedLine(
            'creator', 'skeinforge')  # GCode formatted comment
        absoluteFilePathUntilDot = os.path.abspath(
            __file__)[:os.path.abspath(__file__).rfind('.')]
        if absoluteFilePathUntilDot == '/home/enrique/Desktop/backup/babbleold/script/reprap/pyRepRap/skeinforge_tools/craft_plugins/preface':  #check to see if this script is on Enrique's computer
            gcodec.writeFileText(gcodec.getVersionFileName(),
                                 date.today().isoformat())
        versionText = gcodec.getFileText(gcodec.getVersionFileName())
        self.distanceFeedRate.addTagBracketedLine(
            'version', versionText)  # GCode formatted comment
        self.distanceFeedRate.addLine(
            '(<extruderInitialization>)')  # GCode formatted comment
        "BFB CODE 1st INITIALIZATION OF EXTRUDERS --------------------------------------------------------------------------------------------"
        self.bfbclass = bfb.BfbRepository()
        self.bfbclass = settings.getReadRepository(self.bfbclass)
        self.raftclass = raft.RaftRepository()
        self.raftclass = settings.getReadRepository(self.raftclass)
        self.secondHeadPrimeRev = chan(self.bfbclass.secondHeadPrimeRev.value,
                                       6400)
        self.secondHeadPrimeSpeed = chan(
            self.bfbclass.secondHeadPrimeSpeed.value, 10)
        self.secondHeadPrintRev = chan(self.bfbclass.secondHeadPrintRev.value,
                                       6400)
        self.secondHeadPrintPrime = chan(
            self.bfbclass.secondHeadPrintPrime.value, 6400)
        self.firstHeadPrimeRev = chan(self.bfbclass.firstHeadPrimeRev.value,
                                      6400)
        self.firsHeadPrimeSpeed = chan(self.bfbclass.firsHeadPrimeSpeed.value,
                                       10)
        self.firstHeadPrintRev = chan(self.bfbclass.firstHeadPrintRev.value,
                                      6400)
        self.firstHeadPrintPrime = chan(
            self.bfbclass.firstHeadPrintPrime.value, 6400)
        self.speedclass = speed.SpeedRepository()
        self.speedclass = settings.getReadRepository(self.speedclass)
        travelfeedRateMinute = 60 * self.speedclass.travelFeedRatePerSecond.value
        version = settings.getfirmware()
        version = version[0:2]

        if self.raftclass.activateRaft.value == True:
            "use second extruder for raft"
            if self.bfbclass.useRaft.value == True:
                if version == "x1":
                    self.distanceFeedRate.addLine('#v3.00')
                    self.distanceFeedRate.addLine('G90')
                    self.distanceFeedRate.addLine('M228')
                    self.distanceFeedRate.addLine('M103')
                    self.distanceFeedRate.addLine(
                        'G92 X' + str(self.bfbclass.secondHeadOffsetX.value) +
                        ' Y' + str(self.bfbclass.secondHeadOffsetY.value) +
                        ' F' + str(travelfeedRateMinute))
                    self.distanceFeedRate.addLine('M107')
                    self.distanceFeedRate.addLine(
                        'M204 S' + str(self.bfbclass.RaftT.value))
                    self.distanceFeedRate.addLine(
                        'M552 P' + str(self.secondHeadPrimeRev) + ' S' +
                        str(self.secondHeadPrimeSpeed))
                    self.distanceFeedRate.addLine('M103 P3200 S1000')
                    self.distanceFeedRate.addLine('M543')
                    if self.bfbclass.useM227.value == True:
                        self.distanceFeedRate.addLine(
                            'M227 P' + str(self.secondHeadPrintPrime) + ' S' +
                            str(self.secondHeadPrintRev))
                if version == "x2":
                    self.distanceFeedRate.addLine('#v4.00')
                    self.distanceFeedRate.addLine('G90')
                    self.distanceFeedRate.addLine(
                        'G92 X' + str(self.bfbclass.secondHeadOffsetX.value) +
                        ' Y' + str(self.bfbclass.secondHeadOffsetY.value) +
                        ' F' + str(travelfeedRateMinute))
                    if self.bfbclass.useM227.value == True:
                        self.distanceFeedRate.addLine(
                            'M227 P' + str(self.secondHeadPrintPrime) + ' S' +
                            str(self.secondHeadPrintRev))
                    self.distanceFeedRate.addLine('M107')
                    self.distanceFeedRate.addLine(
                        'M204 S' + str(self.bfbclass.RaftT.value))
                    self.distanceFeedRate.addLine(
                        'M552 P' + str(self.secondHeadPrimeRev) + ' S' +
                        str(self.secondHeadPrimeSpeed))
                    self.distanceFeedRate.addLine('M543')
                if self.bfbclass.UseFanEx2.value == True:
                    "Turn ON FAN"
                    self.distanceFeedRate.addLine('M106')
                else:
                    "Turn OFF FAN"
                    self.distanceFeedRate.addLine('M107')

            else:
                if version == "x1":
                    "use just one extruder for raft"
                    self.distanceFeedRate.addLine('G90')
                    self.distanceFeedRate.addLine('M228')
                    self.distanceFeedRate.addLine('M103')
                    self.distanceFeedRate.addLine('M107')
                    self.distanceFeedRate.addLine(
                        'M104 S' + str(self.bfbclass.RaftT.value))
                    self.distanceFeedRate.addLine('M551 P' +
                                                  str(self.firstHeadPrimeRev) +
                                                  ' S' +
                                                  str(self.firsHeadPrimeSpeed))
                    self.distanceFeedRate.addLine('M103 P3200 S1000')
                    self.distanceFeedRate.addLine('M543')

                if version == "x2":
                    "use just one extruder for raft"
                    self.distanceFeedRate.addLine('G90')
                    self.distanceFeedRate.addLine('M107')
                    self.distanceFeedRate.addLine(
                        'M104 S' + str(self.bfbclass.RaftT.value))
                    self.distanceFeedRate.addLine('M551 P' +
                                                  str(self.firstHeadPrimeRev) +
                                                  ' S' +
                                                  str(self.firsHeadPrimeSpeed))
                    self.distanceFeedRate.addLine('M543')
                if self.bfbclass.useM227.value == True:
                    self.distanceFeedRate.addLine(
                        'M227 P' + str(self.firstHeadPrintPrime) + ' S' +
                        str(self.firstHeadPrintRev))
                if self.bfbclass.UseFanEx1.value == True:
                    "Turn ON FAN"
                    self.distanceFeedRate.addLine('M106')
                else:
                    "Turn OFF FAN"
                    self.distanceFeedRate.addLine('M107')
        else:
            if version == "x1":
                "NO RAFT"
                self.distanceFeedRate.addLine('G90')
                self.distanceFeedRate.addLine('M228')
                self.distanceFeedRate.addLine('M103')
                self.distanceFeedRate.addLine('M107')
                self.distanceFeedRate.addLine(
                    'M104 S' + str(self.bfbclass.firstWorkT.value))
                self.distanceFeedRate.addLine('M551 P' +
                                              str(self.firstHeadPrimeRev) +
                                              ' S' +
                                              str(self.firsHeadPrimeSpeed))
                self.distanceFeedRate.addLine('M103 P3200 S1000')
                self.distanceFeedRate.addLine('M543')
            if version == "x2":
                self.distanceFeedRate.addLine('G90')
                self.distanceFeedRate.addLine('M107')
                self.distanceFeedRate.addLine(
                    'M104 S' + str(self.bfbclass.firstWorkT.value))
                self.distanceFeedRate.addLine('M551 P' +
                                              str(self.firstHeadPrimeRev) +
                                              ' S' +
                                              str(self.firsHeadPrimeSpeed))
                self.distanceFeedRate.addLine('M543')
            if self.bfbclass.useM227.value == True:
                self.distanceFeedRate.addLine('M227 P' +
                                              str(self.firstHeadPrintPrime) +
                                              ' S' +
                                              str(self.firstHeadPrintRev))
            if self.bfbclass.UseFanEx1.value == True:
                "Turn ON FAN"
                self.distanceFeedRate.addLine('M106')
            else:
                "Turn OFF FAN"
                self.distanceFeedRate.addLine('M107')
        if self.prefaceRepository.setPositioningToAbsolute.value:
            self.distanceFeedRate.addLine(
                'G90')  # Set positioning to absolute.
        if self.prefaceRepository.setUnitsToMillimeters.value:
            self.distanceFeedRate.addLine('G21')  # Set units to millimeters.
        if self.prefaceRepository.startAtHome.value:
            self.distanceFeedRate.addLine('G28')  # Start at home.
        if self.prefaceRepository.turnExtruderOffAtStartUp.value:
            self.distanceFeedRate.addLine('M103')  # Turn extruder off.
        craftTypeName = skeinforge_profile.getCraftTypeName()
        self.distanceFeedRate.addTagBracketedLine('craftTypeName',
                                                  craftTypeName)
        self.distanceFeedRate.addTagBracketedLine(
            'decimalPlacesCarried', self.distanceFeedRate.decimalPlacesCarried)
        self.distanceFeedRate.addTagBracketedLine(
            'layerThickness',
            self.distanceFeedRate.getRounded(self.layerThickness))
        if self.prefaceRepository.meta.value:
            self.distanceFeedRate.addTagBracketedLine(
                'meta', self.prefaceRepository.meta.value)
        self.distanceFeedRate.addTagBracketedLine(
            'perimeterWidth',
            self.distanceFeedRate.getRounded(self.perimeterWidth))
        self.distanceFeedRate.addTagBracketedLine(
            'profileName', skeinforge_profile.getProfileName(craftTypeName))
        self.distanceFeedRate.addTagBracketedLine('procedureDone', 'carve')
        self.distanceFeedRate.addTagBracketedLine('procedureDone', 'preface')
        self.distanceFeedRate.addLine(
            '(</extruderInitialization>)'
        )  # Initialization is finished, extrusion is starting.
        self.distanceFeedRate.addLine(
            '(<extrusion>)'
        )  # Initialization is finished, extrusion is starting.
Esempio n. 35
0
def analyzeFile(fileName):
    "Behold a gcode file."
    gcodeText = gcodec.getFileText(fileName)
    analyzeFileGivenText(fileName, gcodeText)
Esempio n. 36
0
def getWindowAnalyzeFile(fileName):
	"Behold a gcode file."
	gcodeText = gcodec.getFileText(fileName)
	return getWindowAnalyzeFileGivenText(fileName, gcodeText)
Esempio n. 37
0
def getWindowAnalyzeFile(fileName):
	"Write scalable vector graphics for a gcode file."
	gcodeText = gcodec.getFileText(fileName)
	return getWindowAnalyzeFileGivenText(fileName, gcodeText)
Esempio n. 38
0
def analyzeFile( fileName ):
	"Display a gcode file in a skeinview window."
	gcodeText = gcodec.getFileText( fileName )
	analyzeFileGivenText( fileName, gcodeText )
Esempio n. 39
0
def getWindowAnalyzeFile( fileName ):
	"Write statistics for a gcode file."
	return getWindowAnalyzeFileGivenText( fileName, gcodec.getFileText( fileName ) )
Esempio n. 40
0
def getWindowAnalyzeFile(fileName):
	"Display a gcode file in a skeinview window."
	gcodeText = gcodec.getFileText(fileName)
	return getWindowAnalyzeFileGivenText(fileName, gcodeText)
Esempio n. 41
0
	def addInitializationToOutput( self ):
		"Add initialization gcode to the output."
		self.addFromUpperLowerFile( self.prefaceRepository.nameOfStartFile.value ) # Add a start file if it exists.
		self.distanceFeedRate.addTagBracketedLine( 'creator', 'skeinforge' ) # GCode formatted comment
		absoluteFilePathUntilDot = os.path.abspath( __file__ )[ : os.path.abspath( __file__ ).rfind( '.' ) ]
		if absoluteFilePathUntilDot == '/home/enrique/Desktop/backup/babbleold/script/reprap/pyRepRap/skeinforge_tools/craft_plugins/preface': #check to see if this script is on Enrique's computer
			gcodec.writeFileText( gcodec.getVersionFileName(), date.today().isoformat() )
		versionText = gcodec.getFileText( gcodec.getVersionFileName() )
		self.distanceFeedRate.addTagBracketedLine( 'version', versionText ) # GCode formatted comment
		self.distanceFeedRate.addLine( '(<extruderInitialization>)' ) # GCode formatted comment
		"BFB CODE 1st INITIALIZATION OF EXTRUDERS --------------------------------------------------------------------------------------------"
		self.bfbclass = bfb.BfbRepository()
		self.bfbclass = settings.getReadRepository( self.bfbclass )
		self.raftclass = raft.RaftRepository()
		self.raftclass = settings.getReadRepository( self.raftclass )
		self.secondHeadPrimeRev = chan(self.bfbclass.secondHeadPrimeRev.value, 6400)
		self.secondHeadPrimeSpeed = chan(self.bfbclass.secondHeadPrimeSpeed.value, 10)
		self.secondHeadPrintRev = chan(self.bfbclass.secondHeadPrintRev.value, 6400)
		self.secondHeadPrintPrime = chan(self.bfbclass.secondHeadPrintPrime.value, 6400)
		self.firstHeadPrimeRev = chan(self.bfbclass.firstHeadPrimeRev.value, 6400)
		self.firsHeadPrimeSpeed = chan(self.bfbclass.firsHeadPrimeSpeed.value, 10)
		self.firstHeadPrintRev = chan(self.bfbclass.firstHeadPrintRev.value, 6400)
		self.firstHeadPrintPrime = chan(self.bfbclass.firstHeadPrintPrime.value, 6400)
		self.speedclass = speed.SpeedRepository()
		self.speedclass = settings.getReadRepository( self.speedclass )
		travelfeedRateMinute=60*self.speedclass.travelFeedRatePerSecond.value
		version=settings.getfirmware()
		version=version[0:2]
		
		
		if self.raftclass.activateRaft.value == True:
			"use second extruder for raft"
			if self.bfbclass.useRaft.value == True:
				if version == "x1":
                                        self.distanceFeedRate.addLine( '#v3.00' )
					self.distanceFeedRate.addLine( 'G90' )
					self.distanceFeedRate.addLine( 'M228' )
					self.distanceFeedRate.addLine( 'M103' )
					self.distanceFeedRate.addLine( 'G92 X'+str(self.bfbclass.secondHeadOffsetX.value)+' Y'+str(self.bfbclass.secondHeadOffsetY.value)+' F'+str(travelfeedRateMinute) )
					self.distanceFeedRate.addLine( 'M107' )
					self.distanceFeedRate.addLine( 'M204 S'+str(self.bfbclass.RaftT.value) )
					self.distanceFeedRate.addLine( 'M552 P'+str(self.secondHeadPrimeRev)+' S'+str(self.secondHeadPrimeSpeed) )
					self.distanceFeedRate.addLine( 'M103 P3200 S1000' )
					self.distanceFeedRate.addLine( 'M543' )
					if self.bfbclass.useM227.value== True:
						self.distanceFeedRate.addLine( 'M227 P'+str(self.secondHeadPrintPrime)+' S'+str(self.secondHeadPrintRev) )
				if version == "x2":
                                        self.distanceFeedRate.addLine( '#v4.00' )
					self.distanceFeedRate.addLine( 'G90' )
					self.distanceFeedRate.addLine( 'G92 X'+str(self.bfbclass.secondHeadOffsetX.value)+' Y'+str(self.bfbclass.secondHeadOffsetY.value)+' F'+str(travelfeedRateMinute) )
					if self.bfbclass.useM227.value== True:
						self.distanceFeedRate.addLine( 'M227 P'+str(self.secondHeadPrintPrime)+' S'+str(self.secondHeadPrintRev) )
					self.distanceFeedRate.addLine( 'M107' )
					self.distanceFeedRate.addLine( 'M204 S'+str(self.bfbclass.RaftT.value) )
					self.distanceFeedRate.addLine( 'M552 P'+str(self.secondHeadPrimeRev)+' S'+str(self.secondHeadPrimeSpeed) )
					self.distanceFeedRate.addLine( 'M543' )
				if self.bfbclass.UseFanEx2.value== True:
					"Turn ON FAN"
					self.distanceFeedRate.addLine( 'M106')
				else:
					"Turn OFF FAN"
					self.distanceFeedRate.addLine( 'M107')
			
			else:
				if version == "x1":
					"use just one extruder for raft"
					self.distanceFeedRate.addLine( 'G90' )
					self.distanceFeedRate.addLine( 'M228' )
					self.distanceFeedRate.addLine( 'M103' )
					self.distanceFeedRate.addLine( 'M107' )
					self.distanceFeedRate.addLine( 'M104 S'+str(self.bfbclass.RaftT.value) )
					self.distanceFeedRate.addLine( 'M551 P'+str(self.firstHeadPrimeRev)+' S'+str(self.firsHeadPrimeSpeed) )
					self.distanceFeedRate.addLine( 'M103 P3200 S1000' )
					self.distanceFeedRate.addLine( 'M543' )
					
				if version == "x2":
					"use just one extruder for raft"
					self.distanceFeedRate.addLine( 'G90' )
					self.distanceFeedRate.addLine( 'M107' )
					self.distanceFeedRate.addLine( 'M104 S'+str(self.bfbclass.RaftT.value) )
					self.distanceFeedRate.addLine( 'M551 P'+str(self.firstHeadPrimeRev)+' S'+str(self.firsHeadPrimeSpeed) )
					self.distanceFeedRate.addLine( 'M543' )
				if self.bfbclass.useM227.value== True:
						self.distanceFeedRate.addLine( 'M227 P'+str(self.firstHeadPrintPrime)+' S'+str(self.firstHeadPrintRev) )
				if self.bfbclass.UseFanEx1.value== True:
					"Turn ON FAN"
					self.distanceFeedRate.addLine( 'M106')
				else:
					"Turn OFF FAN"
					self.distanceFeedRate.addLine( 'M107')
		else:
			if version == "x1":
				"NO RAFT"
				self.distanceFeedRate.addLine( 'G90' )
				self.distanceFeedRate.addLine( 'M228' )
				self.distanceFeedRate.addLine( 'M103' )
				self.distanceFeedRate.addLine( 'M107' )
				self.distanceFeedRate.addLine( 'M104 S'+str(self.bfbclass.firstWorkT.value) )
				self.distanceFeedRate.addLine( 'M551 P'+str(self.firstHeadPrimeRev)+' S'+str(self.firsHeadPrimeSpeed) )
				self.distanceFeedRate.addLine( 'M103 P3200 S1000' )
				self.distanceFeedRate.addLine( 'M543' )
			if version == "x2":
				self.distanceFeedRate.addLine( 'G90' )
				self.distanceFeedRate.addLine( 'M107' )
				self.distanceFeedRate.addLine( 'M104 S'+str(self.bfbclass.firstWorkT.value) )
				self.distanceFeedRate.addLine( 'M551 P'+str(self.firstHeadPrimeRev)+' S'+str(self.firsHeadPrimeSpeed) )
				self.distanceFeedRate.addLine( 'M543' )
			if self.bfbclass.useM227.value== True:
				self.distanceFeedRate.addLine( 'M227 P'+str(self.firstHeadPrintPrime)+' S'+str(self.firstHeadPrintRev) )
			if self.bfbclass.UseFanEx1.value== True:
				"Turn ON FAN"
				self.distanceFeedRate.addLine( 'M106')
			else:
				"Turn OFF FAN"
				self.distanceFeedRate.addLine( 'M107')
		if self.prefaceRepository.setPositioningToAbsolute.value:
			self.distanceFeedRate.addLine( 'G90' ) # Set positioning to absolute.
		if self.prefaceRepository.setUnitsToMillimeters.value:
			self.distanceFeedRate.addLine( 'G21' ) # Set units to millimeters.
		if self.prefaceRepository.startAtHome.value:
			self.distanceFeedRate.addLine( 'G28' ) # Start at home.
		if self.prefaceRepository.turnExtruderOffAtStartUp.value:
			self.distanceFeedRate.addLine( 'M103' ) # Turn extruder off.
		craftTypeName = skeinforge_profile.getCraftTypeName()
		self.distanceFeedRate.addTagBracketedLine( 'craftTypeName', craftTypeName )
		self.distanceFeedRate.addTagBracketedLine( 'decimalPlacesCarried', self.distanceFeedRate.decimalPlacesCarried )
		self.distanceFeedRate.addTagBracketedLine( 'layerThickness', self.distanceFeedRate.getRounded( self.layerThickness ) )
		if self.prefaceRepository.meta.value:
			self.distanceFeedRate.addTagBracketedLine( 'meta', self.prefaceRepository.meta.value )
		self.distanceFeedRate.addTagBracketedLine( 'perimeterWidth', self.distanceFeedRate.getRounded( self.perimeterWidth ) )
		self.distanceFeedRate.addTagBracketedLine( 'profileName', skeinforge_profile.getProfileName( craftTypeName ) )
		self.distanceFeedRate.addTagBracketedLine( 'procedureDone', 'carve' )
		self.distanceFeedRate.addTagBracketedLine( 'procedureDone', 'preface' )
		self.distanceFeedRate.addLine( '(</extruderInitialization>)' ) # Initialization is finished, extrusion is starting.
		self.distanceFeedRate.addLine( '(<extrusion>)' ) # Initialization is finished, extrusion is starting.
Esempio n. 42
0
def analyzeFile( fileName ):
	"Write scalable vector graphics for a gcode file."
	gcodeText = gcodec.getFileText( fileName )
	analyzeFileGivenText( fileName, gcodeText )
Esempio n. 43
0
def analyzeFile(fileName):
    "Write scalable vector graphics for a gcode file."
    gcodeText = gcodec.getFileText(fileName)
    analyzeFileGivenText(fileName, gcodeText)
Esempio n. 44
0
def getWindowAnalyzeFile(fileName):
	"Display a gcode file in a skeinview window."
	gcodeText = gcodec.getFileText(fileName)
	return getWindowAnalyzeFileGivenText(fileName, gcodeText)
Esempio n. 45
0
def analyzeFile( fileName ):
	"Comment a gcode file."
	gcodeText = gcodec.getFileText( fileName )
	analyzeFileGivenText( fileName, gcodeText )
Esempio n. 46
0
def getWindowAnalyzeFile(fileName):
    "Comment a gcode file."
    gcodeText = gcodec.getFileText(fileName)
    return getWindowAnalyzeFileGivenText(fileName, gcodeText)
def getChainText(fileName, procedure):
    "Get a crafted shape file."
    text = gcodec.getFileText(fileName)
    procedures = getProcedures(procedure, text)
    return getChainTextFromProcedures(fileName, procedures, text)
Esempio n. 48
0
def getChainText( fileName, procedure ):
	"Get a crafted shape file."
	text = gcodec.getFileText( fileName )
	procedures = getProcedures( procedure, text )
	return getChainTextFromProcedures( fileName, procedures, text )
Esempio n. 49
0
	def getCarving( self, fileName = ''):
		"Get the triangle mesh for the gts file."
		carving = SVGCarving()
		carving.parseSVG( fileName, gcodec.getFileText(fileName) )
		return carving
Esempio n. 50
0
def getWindowAnalyzeFile( fileName ):
	"Write scalable vector graphics for a gcode file."
	gcodeText = gcodec.getFileText( fileName )
	return getWindowAnalyzeFileGivenText( fileName, gcodeText )
Esempio n. 51
0
def analyzeFile(fileName):
    "Display a gcode file in a skeinview window."
    gcodeText = gcodec.getFileText(fileName)
    analyzeFileGivenText(fileName, gcodeText)
Esempio n. 52
0
def getCarving(fileName=''):
    "Get the triangle mesh for the gts file."
    carving = SVGCarving()
    carving.parseSVG(fileName, gcodec.getFileText(fileName))
    return carving
Esempio n. 53
0
def getCarving(fileName):
	"Get the carving for the gts file."
	return getFromGNUTriangulatedSurfaceText( gcodec.getFileText(fileName), trianglemesh.TriangleMesh() )
Esempio n. 54
0
def analyzeFile(fileName):
    "Comment a gcode file."
    gcodeText = gcodec.getFileText(fileName)
    analyzeFileGivenText(fileName, gcodeText)
Esempio n. 55
0
def analyzeFile( fileName ):
	"Write statistics for a gcode file."
	analyzeFileGivenText( fileName, gcodec.getFileText( fileName ) )
Esempio n. 56
0
def getWindowAnalyzeFile(fileName):
    "Write statistics for a gcode file."
    return getWindowAnalyzeFileGivenText(fileName,
                                         gcodec.getFileText(fileName))