向JModelica中的MODELICAPATH添加其他库

向JModelica中的MODELICAPATH添加其他库,modelica,jmodelica,Modelica,Jmodelica,在JModelica中,我希望使用多个现有库中的组件创建模型 这意味着将多个库添加到MODELICAPATH中非常有用,这样可以在不更改现有路径的情况下引用组件。类似的事情在中国似乎是可能的 在JModelica 1.13中,这似乎曾经是可能的: 我已经阅读了JModelica 2.1文档,但似乎没有提到这个论点。我还尝试运行上面的脚本,但编译器无法找到包含在选项中列出的库中的模型路径 在JModelica安装中向第三方MSL文件夹添加库不是一个选项,因为我将使用的多个库是GitHub repo

在JModelica中,我希望使用多个现有库中的组件创建模型

这意味着将多个库添加到MODELICAPATH中非常有用,这样可以在不更改现有路径的情况下引用组件。类似的事情在中国似乎是可能的

在JModelica 1.13中,这似乎曾经是可能的:

我已经阅读了JModelica 2.1文档,但似乎没有提到这个论点。我还尝试运行上面的脚本,但编译器无法找到包含在选项中列出的库中的模型路径

在JModelica安装中向第三方MSL文件夹添加库不是一个选项,因为我将使用的多个库是GitHub repos

是否可以通过启动脚本或IPython代码将这些多个库添加到MODELICAPATH?

为了更简单的界面,删除了“extra_lib_dirs”选项:

from pymodelica import compile_fmu

name = compile_fmu("MyModel", ["MyModelicaFile.mo", "C:\My\Modelica\Lib", ...])

指定模型后的列表可以将任意数量的Modelica文件或目录带到Modelica库所在的位置。

是的,JModelica.org查看环境变量MODELICAPATH以获取Modelica库的其他位置(根据第13.2.4节)

要么在启动JModelica.org之前批量修改变量,要么在Python中修改环境:

import os
os.environ['MODELICAPATH'] = "C:/somePath/;" + os.environ['JMODELICA_HOME'] + "/ThirdParty/MSL"
from pymodelica import compile_fmu
compile_fmu("SomeLibrary.SomeModel")
注意,如果要从MSL编译模型或使用MSL的一部分编译模型,那么还必须将JModelica.org安装中的MSL文件夹添加到MODELICAPATH。原因是我们正在覆盖默认的
MODELICAPATH
,JModelica.org使用
MODELICAPATH
查找MSL

我可以补充一点,将库文件夹添加到
MODELICAPATH
比在
compile\u fmu
命令中列出它们更有效。原因是,如果您将它们列在
compile_fmu
命令中,那么所有库都将被解析,而如果您将它们(或者更确切地说是父文件夹)添加到MODELICAPATH中,则会根据需要加载它们

import os
os.environ['MODELICAPATH'] = "C:/somePath/;" + os.environ['JMODELICA_HOME'] + "/ThirdParty/MSL"
from pymodelica import compile_fmu
compile_fmu("SomeLibrary.SomeModel")