【问题标题】:Dymola mos script: get current directoryDymola mos 脚本:获取当前目录
【发布时间】:2019-11-21 09:23:44
【问题描述】:

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

我试过这样:

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

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

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

【问题讨论】:

标签: scripting filepath dymola


【解决方案1】:

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

这是一个最小的例子:

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

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

【讨论】:

  • 也许我的方法很复杂:我想要实现的是从相对路径加载一个库,这样我就可以将 load.mos 文件放在 SVN 或 git 上的库旁边,并且检查 repo 的每个人都可以双击 load.mos 文件。有什么想法可以做到吗?
  • 我使用这种方法:stackoverflow.com/a/58378134/8725275(您标记为相关的问题中的答案之一)。唯一的问题是,所有用户都必须定义一个环境变量。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 2011-01-07
  • 1970-01-01
  • 2012-04-11
  • 2022-06-16
相关资源
最近更新 更多