如何通过 Python 在 Dymola 中设置 Advanced.EnableCodeExport 标志?

Kau*_*ubh 2 python modelica dymola

在工作流中,我尝试使用 dymola.egg 中的 Python 函数从 Dymola 自动执行 fmu 生成过程。我能够使用以下功能实现这一点。

dymola.translateModelFMU(model, True, 
                              fmiVersion ="2",
                              fmiType ="all");
Run Code Online (Sandbox Code Playgroud)

然而,这会生成没有二进制导出的 fmus(生成依赖于许可证的 fmus)。
我有可用的二进制导出浮动许可证,因此我想通过脚本检出并返回二进制导出许可证。为了实现这一点,有没有办法Advanced.EnableCodeExport = True通过Python进行设置?
有没有其他方法(其他库)来实现这一目标?目标是根据需要检查浮动二进制导出许可证。我想 dymola.close()Dymola 和二进制出口许可证都将退还给其他人使用。

mar*_*rco 6

dymola.ExecuteCommand() 对于可以从 Dymola 的命令窗口设置但在 python 界面中不可用的所有内容,它都是作为后备解决方案存在的。

因此,您可以使用以下方法设置标志:

dymola.ExecuteCommand("Advanced.EnableCodeExport=true")
Run Code Online (Sandbox Code Playgroud)

请注意,true此处必须写小写(与 Modelica 和 Dymola 一样,与 python 不同)。

  • @Priyanka 不,你需要设置标志;仅 RequestOption() 是不够的。设置标志后,将在需要时检出该选项。 (2认同)