Dymola mos 脚本:获取当前目录

Dymola mos script: get current directory

在mos脚本中,我想将当前目录(即mos脚本所在的目录)保存到一个字符串变量中。在第二步中,我想打开一个位于 net 目录中的库到 mos 文件。

我这样试过:

myCWD = Modelica.Utilities.System.getWorkDirectory();

但这将始终具有值 C:\USERNAME\Documents\Dymola

有没有办法从 mos 脚本中获取 mos 文件本身的路径? 或者有没有更好的方法来使用相对路径,或者从相对路径(但总是相对于mos文件)构建绝对路径?

cdreturns Dymolas 工作目录,所以它按预期工作。我不知道如何用 mos 脚本解决你的问题,但在 Modelica 函数中,Dymola 内置函数 classDirectory() 可以满足你的要求。

这是一个最小的例子:

function myScript
algorithm 
  Modelica.Utilities.Streams.print(classDirectory());
end myScript;

请注意,在 Dymola 中,函数在大多数情况下可以替代 mos 脚本。通常你可以简单地将你的mos脚本内容复制到一个函数的算法部分并调用该函数。