def __init__(self, elementNode): "Set defaults." self.bevelOverRadius = evaluate.getEvaluatedFloat(0.2, elementNode, "bevelOverRadius") self.boltRadiusOverRadius = evaluate.getEvaluatedFloat(0.0, elementNode, "boltRadiusOverRadius") self.columns = evaluate.getEvaluatedInt(2, elementNode, "columns") self.elementNode = elementNode self.heightOverRadius = evaluate.getEvaluatedFloat(2.0, elementNode, "heightOverRadius") self.interiorOverhangRadians = setting.getInteriorOverhangRadians(elementNode) self.overhangSpan = setting.getOverhangSpan(elementNode) self.pegClearanceOverRadius = evaluate.getEvaluatedFloat(0.0, elementNode, "pegClearanceOverRadius") self.pegRadians = math.radians(evaluate.getEvaluatedFloat(2.0, elementNode, "pegAngle")) self.pegHeightOverHeight = evaluate.getEvaluatedFloat(0.4, elementNode, "pegHeightOverHeight") self.pegRadiusOverRadius = evaluate.getEvaluatedFloat(0.7, elementNode, "pegRadiusOverRadius") self.radius = lineation.getFloatByPrefixBeginEnd(elementNode, "radius", "width", 5.0) self.rows = evaluate.getEvaluatedInt(1, elementNode, "rows") self.topBevelOverRadius = evaluate.getEvaluatedFloat(0.2, elementNode, "topBevelOverRadius") # Set derived values. self.bevel = evaluate.getEvaluatedFloat(self.bevelOverRadius * self.radius, elementNode, "bevel") self.boltRadius = evaluate.getEvaluatedFloat(self.boltRadiusOverRadius * self.radius, elementNode, "boltRadius") self.boltSides = evaluate.getSidesMinimumThreeBasedOnPrecision(elementNode, self.boltRadius) self.bottomLeftCenter = complex(-float(self.columns - 1), -float(self.rows - 1)) * self.radius self.height = evaluate.getEvaluatedFloat(self.heightOverRadius * self.radius, elementNode, "height") self.hollowPegSockets = [] centerY = self.bottomLeftCenter.imag diameter = self.radius + self.radius self.pegExistence = CellExistence( self.columns, self.rows, evaluate.getEvaluatedValue(None, elementNode, "pegs") ) self.socketExistence = CellExistence( self.columns, self.rows, evaluate.getEvaluatedValue(None, elementNode, "sockets") ) for rowIndex in xrange(self.rows): centerX = self.bottomLeftCenter.real for columnIndex in xrange(self.columns): hollowPegSocket = HollowPegSocket(complex(centerX, centerY)) hollowPegSocket.shouldAddPeg = self.pegExistence.getIsInExistence(columnIndex, rowIndex) hollowPegSocket.shouldAddSocket = self.socketExistence.getIsInExistence(columnIndex, rowIndex) self.hollowPegSockets.append(hollowPegSocket) centerX += diameter centerY += diameter self.pegClearance = evaluate.getEvaluatedFloat( self.pegClearanceOverRadius * self.radius, elementNode, "pegClearance" ) halfPegClearance = 0.5 * self.pegClearance self.pegHeight = evaluate.getEvaluatedFloat(self.pegHeightOverHeight * self.height, elementNode, "pegHeight") self.pegRadius = evaluate.getEvaluatedFloat(self.pegRadiusOverRadius * self.radius, elementNode, "pegRadius") sides = 24 * max(1, math.floor(evaluate.getSidesBasedOnPrecision(elementNode, self.pegRadius) / 24)) self.socketRadius = self.pegRadius + halfPegClearance self.pegSides = evaluate.getEvaluatedInt(sides, elementNode, "pegSides") self.pegRadius -= halfPegClearance self.pegRadiusArealized = evaluate.getRadiusArealizedBasedOnAreaRadius( elementNode, self.pegRadius, self.pegSides ) self.socketSides = evaluate.getEvaluatedInt(sides, elementNode, "socketSides") self.socketRadiusArealized = evaluate.getRadiusArealizedBasedOnAreaRadius( elementNode, self.socketRadius, self.socketSides ) self.topBevel = evaluate.getEvaluatedFloat(self.topBevelOverRadius * self.radius, elementNode, "topBevel") self.topBevelPositions = evaluate.getEvaluatedString("nwse", elementNode, "topBevelPositions").lower() self.topRight = complex(float(self.columns), float(self.rows)) * self.radius
def __init__(self, xmlElement): 'Set defaults.' self.bevelOverRadius = evaluate.getEvaluatedFloat(0.2, 'bevelOverRadius', xmlElement) self.boltRadiusOverRadius = evaluate.getEvaluatedFloat(0.0, 'boltRadiusOverRadius', xmlElement) self.columns = evaluate.getEvaluatedInt(2, 'columns', xmlElement) self.heightOverRadius = evaluate.getEvaluatedFloat(2.0, 'heightOverRadius', xmlElement) self.interiorOverhangRadians = setting.getInteriorOverhangRadians(xmlElement) self.overhangSpan = setting.getOverhangSpan(xmlElement) self.pegClearanceOverRadius = evaluate.getEvaluatedFloat(0.0, 'pegClearanceOverRadius', xmlElement) self.pegRadians = math.radians(evaluate.getEvaluatedFloat(2.0, 'pegAngle', xmlElement)) self.pegHeightOverHeight = evaluate.getEvaluatedFloat(0.4, 'pegHeightOverHeight', xmlElement) self.pegRadiusOverRadius = evaluate.getEvaluatedFloat(0.7, 'pegRadiusOverRadius', xmlElement) self.radius = lineation.getFloatByPrefixBeginEnd('radius', 'width', 5.0, xmlElement) self.rows = evaluate.getEvaluatedInt(1, 'rows', xmlElement) self.topBevelOverRadius = evaluate.getEvaluatedFloat(0.2, 'topBevelOverRadius', xmlElement) self.xmlElement = xmlElement # Set derived values. self.bevel = evaluate.getEvaluatedFloat(self.bevelOverRadius * self.radius, 'bevel', xmlElement) self.boltRadius = evaluate.getEvaluatedFloat(self.boltRadiusOverRadius * self.radius, 'boltRadius', xmlElement) self.boltSides = evaluate.getSidesMinimumThreeBasedOnPrecision(self.boltRadius, xmlElement) self.bottomLeftCenter = complex(-float(self.columns - 1), -float(self.rows - 1)) * self.radius self.height = evaluate.getEvaluatedFloat(self.heightOverRadius * self.radius, 'height', xmlElement) self.hollowPegSockets = [] centerY = self.bottomLeftCenter.imag diameter = self.radius + self.radius self.pegExistence = CellExistence(self.columns, self.rows, evaluate.getEvaluatedValue(None, 'pegs', xmlElement)) self.socketExistence = CellExistence(self.columns, self.rows, evaluate.getEvaluatedValue(None, 'sockets', xmlElement)) for rowIndex in xrange(self.rows): centerX = self.bottomLeftCenter.real for columnIndex in xrange(self.columns): hollowPegSocket = HollowPegSocket(complex(centerX, centerY)) hollowPegSocket.shouldAddPeg = self.pegExistence.getIsInExistence(columnIndex, rowIndex) hollowPegSocket.shouldAddSocket = self.socketExistence.getIsInExistence(columnIndex, rowIndex) self.hollowPegSockets.append(hollowPegSocket) centerX += diameter centerY += diameter self.pegClearance = evaluate.getEvaluatedFloat(self.pegClearanceOverRadius * self.radius, 'pegClearance', xmlElement) halfPegClearance = 0.5 * self.pegClearance self.pegHeight = evaluate.getEvaluatedFloat(self.pegHeightOverHeight * self.height, 'pegHeight', xmlElement) self.pegRadius = evaluate.getEvaluatedFloat(self.pegRadiusOverRadius * self.radius, 'pegRadius', xmlElement) sides = 24 * max(1, math.floor(evaluate.getSidesBasedOnPrecision(self.pegRadius, xmlElement) / 24)) self.socketRadius = self.pegRadius + halfPegClearance self.pegSides = evaluate.getEvaluatedInt(sides, 'pegSides', xmlElement) self.socketSides = evaluate.getEvaluatedInt(sides, 'socketSides', xmlElement) self.pegRadius -= halfPegClearance self.topBevel = evaluate.getEvaluatedFloat(self.topBevelOverRadius * self.radius, 'topBevel', xmlElement) self.topBevelPositions = evaluate.getEvaluatedString('nwse', 'topBevelPositions', xmlElement).lower() self.topRight = complex(float(self.columns), float(self.rows)) * self.radius
def __init__(self, xmlElement): """Set defaults.""" self.bevelOverRadius = evaluate.getEvaluatedFloat(0.2, 'bevelOverRadius', xmlElement) self.boltRadiusOverRadius = evaluate.getEvaluatedFloat(0.0, 'boltRadiusOverRadius', xmlElement) self.columns = evaluate.getEvaluatedInt(2, 'columns', xmlElement) self.heightOverRadius = evaluate.getEvaluatedFloat(2.0, 'heightOverRadius', xmlElement) self.interiorOverhangRadians = setting.getInteriorOverhangRadians(xmlElement) self.overhangSpan = setting.getOverhangSpan(xmlElement) self.pegClearanceOverRadius = evaluate.getEvaluatedFloat(0.0, 'pegClearanceOverRadius', xmlElement) self.pegRadians = math.radians(evaluate.getEvaluatedFloat(2.0, 'pegAngle', xmlElement)) self.pegHeightOverHeight = evaluate.getEvaluatedFloat(0.4, 'pegHeightOverHeight', xmlElement) self.pegRadiusOverRadius = evaluate.getEvaluatedFloat(0.7, 'pegRadiusOverRadius', xmlElement) self.radius = lineation.getFloatByPrefixBeginEnd('radius', 'width', 5.0, xmlElement) self.rows = evaluate.getEvaluatedInt(1, 'rows', xmlElement) self.topBevelOverRadius = evaluate.getEvaluatedFloat(0.2, 'topBevelOverRadius', xmlElement) self.xmlElement = xmlElement # Set derived values. self.bevel = evaluate.getEvaluatedFloat(self.bevelOverRadius * self.radius, 'bevel', xmlElement) self.boltRadius = evaluate.getEvaluatedFloat(self.boltRadiusOverRadius * self.radius, 'boltRadius', xmlElement) self.boltSides = evaluate.getSidesMinimumThreeBasedOnPrecision(self.boltRadius, xmlElement) self.bottomLeftCenter = complex(-float(self.columns - 1), -float(self.rows - 1)) * self.radius self.height = evaluate.getEvaluatedFloat(self.heightOverRadius * self.radius, 'height', xmlElement) self.hollowPegSockets = [] centerY = self.bottomLeftCenter.imag diameter = self.radius + self.radius self.pegExistence = CellExistence(self.columns, self.rows, evaluate.getEvaluatedValue(None, 'pegs', xmlElement)) self.socketExistence = CellExistence(self.columns, self.rows, evaluate.getEvaluatedValue(None, 'sockets', xmlElement)) for rowIndex in xrange(self.rows): centerX = self.bottomLeftCenter.real for columnIndex in xrange(self.columns): hollowPegSocket = HollowPegSocket(complex(centerX, centerY)) hollowPegSocket.shouldAddPeg = self.pegExistence.getIsInExistence(columnIndex, rowIndex) hollowPegSocket.shouldAddSocket = self.socketExistence.getIsInExistence(columnIndex, rowIndex) self.hollowPegSockets.append(hollowPegSocket) centerX += diameter centerY += diameter self.pegClearance = evaluate.getEvaluatedFloat(self.pegClearanceOverRadius * self.radius, 'pegClearance', xmlElement) halfPegClearance = 0.5 * self.pegClearance self.pegHeight = evaluate.getEvaluatedFloat(self.pegHeightOverHeight * self.height, 'pegHeight', xmlElement) self.pegRadius = evaluate.getEvaluatedFloat(self.pegRadiusOverRadius * self.radius, 'pegRadius', xmlElement) sides = 24 * max(1, math.floor(evaluate.getSidesBasedOnPrecision(self.pegRadius, xmlElement) / 24)) self.socketRadius = self.pegRadius + halfPegClearance self.pegSides = evaluate.getEvaluatedInt(sides, 'pegSides', xmlElement) self.socketSides = evaluate.getEvaluatedInt(sides, 'socketSides', xmlElement) self.pegRadius -= halfPegClearance self.topBevel = evaluate.getEvaluatedFloat(self.topBevelOverRadius * self.radius, 'topBevel', xmlElement) self.topBevelPositions = evaluate.getEvaluatedString('nwse', 'topBevelPositions', xmlElement).lower() self.topRight = complex(float(self.columns), float(self.rows)) * self.radius
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)
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)
def __init__(self, xmlElement): 'Set defaults.' self.fileName = evaluate.getEvaluatedString('', 'file', xmlElement) self.heightGrid = evaluate.getEvaluatedValue([], 'heightGrid', xmlElement) self.inradius = evaluate.getVector3ByPrefixes(['demisize', 'inradius'], Vector3(10.0, 10.0, 5.0), xmlElement) self.inradius = evaluate.getVector3ByMultiplierPrefix(2.0, 'size', self.inradius, xmlElement) self.start = evaluate.getEvaluatedFloat(0.0, 'start', xmlElement)
def __init__(self, elementNode): 'Set defaults.' self.fileName = evaluate.getEvaluatedString('', elementNode, 'file') self.heightGrid = evaluate.getEvaluatedValue([], elementNode, 'heightGrid') self.inradius = evaluate.getVector3ByPrefixes(elementNode, ['demisize', 'inradius'], Vector3(10.0, 10.0, 5.0)) self.inradius = evaluate.getVector3ByMultiplierPrefix(elementNode, 2.0, 'size', self.inradius) self.start = evaluate.getEvaluatedFloat(0.0, elementNode, 'start')
def processXMLElement(xmlElement): "Process the xml element." fileName = evaluate.getEvaluatedValue('file', xmlElement) if fileName == None: return parserFileName = xmlElement.getRoot().parser.fileName absoluteFileName = archive.getAbsoluteFolderPath(parserFileName, fileName) xmlText = '' if fileName.endswith('.xml'): xmlText = archive.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 = archive.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)
def __init__(self, elementNode): 'Set defaults.' self.fileName = evaluate.getEvaluatedString('', elementNode, 'file') self.heightGrid = evaluate.getEvaluatedValue([], elementNode, 'heightGrid') self.inradius = evaluate.getVector3ByPrefixes(elementNode, ['demisize', 'inradius'], Vector3(10.0, 10.0, 5.0)) self.inradius = evaluate.getVector3ByMultiplierPrefix(elementNode, 2.0, 'size', self.inradius) self.start = evaluate.getEvaluatedFloat(0.0, elementNode, 'start')
def __init__(self, xmlElement): 'Set defaults.' self.fileName = evaluate.getEvaluatedString('', 'file', xmlElement) self.heightGrid = evaluate.getEvaluatedValue([], 'heightGrid', xmlElement) self.inradius = evaluate.getVector3ByPrefixes(['demisize', 'inradius'], Vector3(10.0, 10.0, 5.0), xmlElement) self.inradius = evaluate.getVector3ByMultiplierPrefix( 2.0, 'size', self.inradius, xmlElement) self.start = evaluate.getEvaluatedFloat(0.0, 'start', xmlElement)
def processXMLElement(xmlElement): 'Process the xml element.' fileName = evaluate.getEvaluatedValue('file', xmlElement) if fileName == None: return parserFileName = xmlElement.getRoot().parser.fileName absoluteFileName = archive.getAbsoluteFolderPath(parserFileName, fileName) absoluteFileName = os.path.abspath(absoluteFileName) if 'models/' not in absoluteFileName: print( 'Warning, models/ was not in the absolute file path, so for security nothing will be done for:' ) print(xmlElement) print('For which the absolute file path is:') print(absoluteFileName) print( 'The import tool can only read a file which has models/ in the file path.' ) print( 'To import the file, move the file into a folder called model/ or a subfolder which is inside the model folder tree.' ) return xmlText = '' if fileName.endswith('.xml'): xmlText = archive.getFileText(absoluteFileName) else: xmlText = getXMLFromCarvingFileName(absoluteFileName) print('The import tool is opening the file:') print(absoluteFileName) if xmlText == '': print( 'The file %s could not be found by processXMLElement in import.' % fileName) return if '_importName' in xmlElement.attributeDictionary: xmlElement.importName = xmlElement.attributeDictionary['_importName'] else: xmlElement.importName = archive.getUntilDot(fileName) if evaluate.getEvaluatedBooleanDefault(True, 'basename', xmlElement): xmlElement.importName = os.path.basename(xmlElement.importName) xmlElement.attributeDictionary['_importName'] = xmlElement.importName importXMLElement = xml_simple_reader.XMLElement() xml_simple_reader.XMLSimpleReader(parserFileName, importXMLElement, xmlText) for child in importXMLElement.children: child.copyXMLChildren('', xmlElement) euclidean.removeElementsFromDictionary(child.attributeDictionary, ['id', 'name']) xmlElement.attributeDictionary.update(child.attributeDictionary) if evaluate.getEvaluatedBooleanDefault(False, 'overwriteRoot', xmlElement): xmlElement.getRoot().attributeDictionary.update( child.attributeDictionary) group.processShape(group.Group, xmlElement)
def getComplexByPrefix(elementNode, prefix, valueComplex): 'Get complex from prefix and xml element.' value = evaluate.getEvaluatedValue(None, elementNode, prefix) if value != None: valueComplex = getComplexByDictionaryListValue(value, valueComplex) x = evaluate.getEvaluatedFloat(None, elementNode, prefix + '.x') if x != None: valueComplex = complex(x, getComplexIfNone(valueComplex).imag) y = evaluate.getEvaluatedFloat(None, elementNode, prefix + '.y') if y != None: valueComplex = complex(getComplexIfNone(valueComplex).real, y) return valueComplex
def getComplexByPrefix(prefix, valueComplex, xmlElement): "Get complex from prefix and xml element." value = evaluate.getEvaluatedValue(prefix, xmlElement) if value != None: valueComplex = getComplexByDictionaryListValue(value, valueComplex) x = evaluate.getEvaluatedFloat(prefix + '.x', xmlElement) if x != None: valueComplex = complex(x, getComplexIfNone(valueComplex).imag) y = evaluate.getEvaluatedFloat(prefix + '.y', xmlElement) if y != None: valueComplex = complex(getComplexIfNone(valueComplex).real, y) return valueComplex
def getComplexByPrefix(elementNode, prefix, valueComplex): 'Get complex from prefix and xml element.' value = evaluate.getEvaluatedValue(None, elementNode, prefix) if value != None: valueComplex = getComplexByDictionaryListValue(value, valueComplex) x = evaluate.getEvaluatedFloat(None, elementNode, prefix + '.x') if x != None: valueComplex = complex( x, getComplexIfNone( valueComplex ).imag ) y = evaluate.getEvaluatedFloat(None, elementNode, prefix + '.y') if y != None: valueComplex = complex( getComplexIfNone( valueComplex ).real, y ) return valueComplex
def getComplexByPrefix( prefix, valueComplex, xmlElement ): "Get complex from prefix and xml element." value = evaluate.getEvaluatedValue(prefix, xmlElement) if value != None: valueComplex = getComplexByDictionaryListValue(value, valueComplex) x = evaluate.getEvaluatedFloat(prefix + '.x', xmlElement) if x != None: valueComplex = complex( x, getComplexIfNone( valueComplex ).imag ) y = evaluate.getEvaluatedFloat(prefix + '.y', xmlElement) if y != None: valueComplex = complex( getComplexIfNone( valueComplex ).real, y ) return valueComplex
def processXMLElement(xmlElement): 'Process the xml element.' fileName = evaluate.getEvaluatedValue('file', xmlElement ) if fileName == None: return parserFileName = xmlElement.getRoot().parser.fileName absoluteFileName = archive.getAbsoluteFolderPath(parserFileName, fileName) absoluteFileName = os.path.abspath(absoluteFileName) if 'models/' not in absoluteFileName: print('Warning, models/ was not in the absolute file path, so for security nothing will be done for:') print(xmlElement) print('For which the absolute file path is:') print(absoluteFileName) print('The import tool can only read a file which has models/ in the file path.') print('To import the file, move the file into a folder called model/ or a subfolder which is inside the model folder tree.') return xmlText = '' if fileName.endswith('.xml'): xmlText = archive.getFileText(absoluteFileName) else: xmlText = getXMLFromCarvingFileName(absoluteFileName) print('The import tool is opening the file:') print(absoluteFileName) if xmlText == '': print('The file %s could not be found by processXMLElement in import.' % fileName) return if '_importName' in xmlElement.attributeDictionary: xmlElement.importName = xmlElement.attributeDictionary['_importName'] else: xmlElement.importName = archive.getUntilDot(fileName) if evaluate.getEvaluatedBooleanDefault(True, 'basename', xmlElement): xmlElement.importName = os.path.basename(xmlElement.importName) xmlElement.attributeDictionary['_importName'] = xmlElement.importName importXMLElement = xml_simple_reader.XMLElement() xml_simple_reader.XMLSimpleReader(parserFileName, importXMLElement, xmlText) for child in importXMLElement.children: child.copyXMLChildren('', xmlElement) euclidean.removeElementsFromDictionary(child.attributeDictionary, ['id', 'name']) xmlElement.attributeDictionary.update(child.attributeDictionary) if evaluate.getEvaluatedBooleanDefault(False, 'overwriteRoot', xmlElement): xmlElement.getRoot().attributeDictionary.update(child.attributeDictionary) group.processShape(group.Group, xmlElement)
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 = getXMLFromFileName( 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 XMLSimpleParser( parserFileName, xmlElement, xmlText ) group.processShape( group.Group, xmlElement, xmlProcessor ) root = xmlElement.getRoot() root.idDictionary[ xmlElement.importName ] = evaluate.ElementID( xmlElement ) root.nameDictionary[ xmlElement.importName ] = evaluate.ElementName( xmlElement )
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 = getXMLFromFileName(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 XMLSimpleParser(parserFileName, xmlElement, xmlText) group.processShape(group.Group, xmlElement, xmlProcessor) root = xmlElement.getRoot() root.idDictionary[xmlElement.importName] = evaluate.ElementID(xmlElement) root.nameDictionary[xmlElement.importName] = evaluate.ElementName( xmlElement)