问题描述
我想在 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.replace
是 stringReplace
的直接替代品。
您需要打开 Modelica 标准库才能使用上述函数(这在 Windows 上特别慢,因此 OpenModelica 有其脚本 API,其中包含一些类似于 MSL 的函数)。