首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向JModelica中的MODELICAPATH添加其他库

向JModelica中的MODELICAPATH添加其他库
EN

Stack Overflow用户
提问于 2018-03-13 22:53:36
回答 2查看 705关注 0票数 1

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

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

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

代码语言:javascript
复制
c_opts =
    {'extra_lib_dirs':['c:\MyLibs1','c:\MyLibs2']}

compile_fmu(class_path, compiler_options=c_opts)

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

因为我要使用的多个库都是GitHub代码库,所以不能将库添加到JModelica安装中的第三方MSL文件夹中。

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

EN

回答 2

Stack Overflow用户

发布于 2018-03-14 03:47:51

选项"extra_lib_dirs“已被删除,取而代之的是更简单的界面:

代码语言:javascript
复制
from pymodelica import compile_fmu

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

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

票数 2
EN

Stack Overflow用户

发布于 2018-03-14 14:44:06

是的,JModelica.org在环境变量MODELICAPATH中查找Modelica库的其他位置(根据Modelica language specification,13.2.4节)。

您可以在启动JModelica.org之前批量修改变量,也可以在Python内部修改环境:

代码语言:javascript
复制
import os
os.environ['MODELICAPATH'] = "C:/somePath/;" + os.environ['JMODELICA_HOME'] + "/ThirdParty/MSL"
from pymodelica import compile_fmu
compile_fmu("SomeLibrary.SomeModel")

请注意,如果您打算从MSL编译模型,或者使用MSL的一部分编译模型,那么您还必须将MSL文件夹从JModelica.org安装添加到MODELICAPATH。这是因为我们覆盖了默认的MODELICAPATH,而JModelica.org使用MODELICAPATH来查找MSL。

我可能会补充说,将库文件夹添加到MODELICAPATH比在compile_fmu命令中列出它们更有效。这样做的原因是,如果您将它们列出到compile_fmu命令中,那么所有的库都将被解析,而如果您将它们(或者更确切地说是父文件夹)添加到MODELICAPATH中,那么它们将根据需要进行加载。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49259284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档