如何在启动时添加加载库、更改目录等?

How to add load libraries, change directory, etc. on startup?

有没有办法在启动 Dymola 时自动加载库、更改到某个工作目录等?

此方法已针对 Dymola 2017FD01 进行测试。以前的版本通过不再可用的 setup.mos 脚本使用不同的方法。在这篇文章中,没有通过 Dymola GUI 执行此操作的选项。

可以通过 .mos 文件轻松完成,步骤如下:

  1. 在有意义的位置创建一个 .mos 文件。例如,C:\Users\USERNAME\Documents\Dymola\startup.mos
  2. 将所需的操作添加到 .mos 文件。例如,要加载库,请添加 openModel("C:\Users\USERNAME\Documents\ModelicaLibrary\package.mo");
  3. Dymola 始终将其 auto-generated 文件放在当前工作目录中。将该位置设置为同一位置通常是个好主意,这样就无需寻找输出文件的位置。因此,在.mos文件的末尾更改当前目录:cd("C:\Users\USERNAME\Documents\Dymola");
  4. 如果 Dymola.exe 文件不存在快捷方式,则创建一个。
  5. 右键单击快捷方式并转到 Properties。在 Shortcut>Target 下,在末尾附加 "C:\Users\USERNAME\Documents\Dymola\startup.mos"。该单元格的内容现在应如下所示:"C:\Program Files (x86)\Dymola 2017 FD01\bin64\Dymola.exe" "C:\Users\vmg\Documents\Dymola\startup.mos"
  6. 就是这样。从该快捷方式启动 Dymola 时,应执行 .mos 文件中指定的操作。

这个问题有点模棱两可 - 另一个答案对于一种情况来说非常好。 (步骤2中的openModel调用可以修改。)

但是,如果您总是想要在特定目录等中启动 Dymola,则可以使用 GUI。如何取决于版本。

Dymola 2020 x(及更高版本) 允许通过文件>工作目录

更改start-up目录

并且具有工具>库管理>Modelica 路径,您可以在其中添加包含外部库的目录。

要使库显示为预加载,您必须在相应的库中添加一个 libraryInfo.mos 脚本;您可以查看 Dymola 安装中的 Modelica 标准库以获取灵感。

后者在“更多关于库以及库和演示菜单的构建”部分(在用户手册中的某处)中有更详细的描述。

Dymola 2017 FD01(与 Dymola 2016 FD01 略有不同):

  1. 更改目录(文件>更改目录)
  2. 添加到 Modelica 路径(文件>Modelica 路径)
  3. 保存这些设置(编辑>选项>设置:Select 启动和 Modelica 路径)

如果你想“预加载”库,有一些选项: 在启动脚本中,您可以使用 import MyPackage;openModel("...\MyPackage.mo"); 或者如果您是管理员,您可以修改 Dymola/insert/dymodraw.ini 并添加一行:Dymola5LibraryMenu "MyPackage"(技术上它不会“ load" - 它只是在包浏览器中显示库。

一个重要的区别是,更改 dymodraw.ini 即使在“全部清除”之后仍会保持库“加载”。

不需要将包硬编码到操作系统的环境变量中的另一个建议(对于没有经验的程序员来说可能更安全):

  1. 转到安装 Dymola 的文件夹(例如 C:\Program Files\Dymola 2020)。
  2. 在插入文件夹中搜索 Dymola.mos 文件。 'insert' folder
  3. 打开脚本(例如,在记事本++中)
  4. 使用 openModel 语句将 link(s) 添加到您的 Dymola-library-package.mo 文件中 例如,openModel("C:/IDEAS/package.mo"); Dymola.mos script
  5. 保存脚本。现在,每次打开 Dymola 时,您的库都会自动加载。

近年来有两个选项可能对您有所帮助。

  1. File>Library Management>Install 此对话框允许您打开一个 zip 文件或类似的分布式库,安装它, 更新 MODELICAPATH 以再次找到它,甚至更新 File>Libraries 菜单以包含它以备将来使用。一次操作。

  2. 模拟>编辑startup.mos如果你喜欢编辑启动 脚本,这是找到它的便捷方式 结束打开它 编辑.

这是一个允许单击一次加载一组库的过程。 它利用了 dymola.exe 可以用 .mos 脚本作为第一个参数启动的事实。

它专为

等情况而设计
  • 您正在使用 Windows
  • 您正在从事一个或多个项目
  • 每个项目都需要加载一组库
  • 每个项目都使用自己的工作目录
  • 其他用户可能会协作,因此他们需要完全相同的设置

要求

第一次设置需要做一些工作,但对于以后的项目来说很快就可以完成。您需要:

  • 您的库中有一个 start.mos 文件
  • 环境变量DYMOLA_WDMODELICA_LIBS
    (这只是为了允许其他用户为他们的库和工作目录使用不同的路径)
  • dymola.exe
  • 的文件快捷方式

这是 start.mos 特定项目的样子(通常您只更改前两行):

// user setup
libs = {"Buildings 6.0.0", "PhotoVoltaics", "MyProject"}
wd = "myproject"

// open all libs
lib_dir = Modelica.Utilities.System.getEnvironmentVariable("MODELICA_LIBS");
lib_dir = Modelica.Utilities.Strings.replace(lib_dir, "\", "/")
for l in libs loop
    openModel(lib_dir + "/" + l + "/package.mo");
end for;

// change to wd
wd = Modelica.Utilities.System.getEnvironmentVariable("DYMOLA_WD") + "/" + wd;
wd = Modelica.Utilities.Strings.replace(wd, "\", "/")
Modelica.Utilities.Files.createDirectory(wd)
cd(wd)

现在您在 windows 文件资源管理器中创建 dymola.exe 的快捷方式。在字段 Target 中设置

"C:\Program Files\Dymola 2020\bin64\Dymola.exe" "%MODELICA_LIBS%\MyProject\Resources\scripts\start.mos"

例子

假设用户设置了环境变量

MODELICA_LIBS = E:\modelica
DYMOLA_WD = E:\dymola_wds

用户硬盘上的文件夹结构必须如下所示,上面的脚本才能运行:

E:\modelica
|- Buildings 6.0.0
   |- package.mo
   |- ...
|- PhotoVoltaics
   |- package.mo
   |- ...
|- MyProject
   |- package.mo
   |- ...
   |- Resources
   |  |- scripts
   |     |- start.mos
   |- ...

现在使用dymola.exe-快捷方式启动Dymola,它将自动加载项目所需的库并更改工作目录。

对于另一个项目,需要一个新的快捷方式以及一个新的 start.mos 脚本。