#!/usr/bin/env python3 import os import sys #runnato il comando python3 -m pip install -U https://github.com/OpenModelica/OMPython/archive/master.zip import OMPython from OMPython import OMCSessionZMQ #carica un file dato un path preso dagli argomenti della chiamata omc = OMCSessionZMQ() path = sys.argv[1] omc.execute('loadFile("' + path + '")') # caricamento del file modelica # className = os.path.basename(path)[:-3] classes = omc.execute('getClassNames()') className = classes["SET1"]["Set1"][ 0] # estazione del nome della classe appena caricata print("\n#", className, "loaded.") # Parametri e costanti: params = {} # dizionario dei parametri e delle costanti try: # print(omc.execute("getInstantiatedParametersAndValues(" + className + ")")) instantiatedParams = omc.execute( "getInstantiatedParametersAndValues(" + className + ")")["SET2"]["Values"][0].replace('"', '').replace( ' ', '').split(",") # estrazione dei/delle parametri/costanti for i in range(len(instantiatedParams) ): # inserimento nel dizionario di ogni valore ottenuto instantiatedParams[i] = instantiatedParams[i].split("=")
#!/usr/bin/env python3 import os import sys import xmltodict from OMPython import OMCSessionZMQ omc = OMCSessionZMQ() omc.execute('loadModel(Modelica)') for file in os.listdir('.'): #elenco elementi in directory if os.path.isfile(file): #controllo se elemento e' file if file.endswith('.mo'): #prendo solo i .mo omc.execute('loadFile("' + file + '")') if (len(sys.argv) > 2): className = sys.argv[2] + '.' + sys.argv[1] else: className = sys.argv[1] omc.execute('dumpXMLDAE(' + className + ', translationLevel="backEnd", addMathMLCode=true)') with open(className + '.xml') as fd: doc = xmltodict.parse(fd.read()) print(doc)
#!/usr/bin/env python3 import os import sys import xmltodict from OMPython import OMCSessionZMQ omc = OMCSessionZMQ() omc.execute('loadModel(Modelica)') for file in os.listdir('.'): #elenco elementi in directory if os.path.isfile(file): #controllo se elemento e' file if file.endswith('.mo'): #prendo solo i .mo omc.execute('loadFile("' + file + '")') omc.execute('dumpXMLDAE(TestModel.MyModel, translationLevel="backEnd")') with open('TestModel.MyModel.xml') as fd: doc = xmltodict.parse(fd.read()) print(doc)