Ejemplo n.º 1
0
def xme2mga(path_xme, path_mga):
    # use abspath, since on GME x64-only, parser will be called out-of-proc (which won't share the same cwd)
    abspath_xme = os.path.abspath(path_xme)
    abspath_mga = os.path.abspath(path_mga)

    xme = DispatchEx('Mga.MgaParser')
    (paradigm, parversion, parguid, basename,
     ver) = xme.GetXMLInfo(abspath_xme)

    mga = DispatchEx('Mga.MgaProject')
    resolver = DispatchEx('Mga.MgaResolver')

    try:
        resolver.IsInteractive = False
        xme.Resolver = resolver
    except AttributeError:
        # Older GME
        pass

    # create_project(mga, 'MGA=' + abspath_mga, paradigm)
    mga.Create('MGA=' + abspath_mga, paradigm)

    try:
        xme.ParseProject(mga, path_xme)
    except Exception:
        mga.Close(True)
        raise

    mga.Save('MGA=' + abspath_mga)
Ejemplo n.º 2
0
class Aspen():
    def __init__(self, aspenFile):
        '''
		Parameters
		file: str, excel file
		'''

        CoInitialize()
        self.file = aspenFile
        self.COM = DispatchEx('Apwn.Document')
        self.COM.InitFromArchive2(self.file)

    def get_value(self, aspenPath):
        '''
		Parameters
		aspenPath: str, path in ASPEN tree
		
		Returns
		value: num or str, value in ASPEN tree node
		'''

        value = self.COM.Tree.FindNode(aspenPath).Value

        return value

    def set_value(self, aspenPath, value, ifFortran):
        '''
		Parameters
		aspenPath: str, path in ASPEN tree
		value: float or str, value to set
		ifFortran: bool, whether it is a Fortran variable
		'''

        if ifFortran:
            oldValue = self.COM.Tree.FindNode(aspenPath).Value

            self.COM.Tree.FindNode(aspenPath).Value = re.sub(
                r'(?<==).+', str(value), oldValue)

        else:
            self.COM.Tree.FindNode(aspenPath).Value = float(value)

    def run_model(self):

        self.COM.Reinit()
        self.COM.Engine.Run2()

    def save_model(self, saveFile):
        '''
		Parameters
		saveFile: str, file name to save (.bkp)
		'''

        self.COM.SaveAs(saveFile)

    def close(self):

        self.COM.Close()