在 Dymola 中使用脚本 API 库

问题描述

我想在 Dymola 中使用 C 包装器执行一个 python 函数,如 tutorial 所示。 但是,我无法执行命令 stringReplace(readFile("pycflags"),"\n","");,因为我收到错误消息 Undeclared function stringReplace 和 resp。 Undeclared function readFile。 这些函数是来自 here 的 Open Modelica 库的 Scripting API 的一部分。

我可以在 Dymola 中使用脚本 API 吗?如果是,我该如何使用它?

解决方法

您不能在 Dymola 中使用 OpenModelica 脚本 API。 Modelica.Utilities.Streams.readFile 类似于 OpenModelica readFile,但它返回一个字符串数组而不是单个字符串(并且 sum(stringArray) 不是有效的 Modelica,因此您需要编写自己的函数来创建一个数组中的单个字符串,它可能不会运行得非常快)。 Modelica.Utilities.Strings.replacestringReplace 的直接替代品。

您需要打开 Modelica 标准库才能使用上述函数(这在 Windows 上特别慢,因此 OpenModelica 有其脚本 API,其中包含一些类似于 MSL 的函数)。