4

我有一个自定义包,我发现自己在 Dymola 模型中重复使用它,我想将此包放在一个公共目录中,该目录在我启动 Dymola 时会自动加载。我目前的策略是在加载我正在处理的模型时加载自定义包,然后保存总计。这并不优雅,因为自定义包的内容最终保存在我硬盘上的多个位置,如果我更改其中一个,更改不会反映在任何地方。我想要一种更强大的方式来将此自定义包分发到我的所有模型。有没有办法告诉 Dymola 每次都自动加载我的自定义包装?

4

5 回答 5

9

诀窍是将以下几行添加到 c:/Users/USERNAME/AppData/Roaming/Dynasim 中的 settings.mos 中:

Utilities.setenv("MODELICAPATH", "C:\Users\USERNAME\Documents\Dymola");
openModel("c:\Users\USERNAME\Documents\Dymola\UserDefined\package.mo")

第一行将目录添加到 Dymola 用于搜索在模型第一次运行之前尚未加载的包的路径中,第二行加载指定的包。这两个命令可能有些多余,但我都这样做是因为除了加载 UserDefined 包之外,我还想确保我的自定义包在路径上。

于 2013-03-20T14:08:11.717 回答
4

两个建议。首先,您需要将您的包添加到 MODELICAPATH。您必须查阅 Dymola 文档才能准确了解您需要做什么。但通常,这意味着您必须设置一个环境变量,该变量提供;要搜索您的包的目录列表(分隔)。现在它将把它放在你的路径中,这样它就可以自动找到它,但在需要它之前它不会加载它。

如果您希望它始终出现在包浏览器中,您可能需要设置一个 .mos 文件(脚本)来加载它。Dymola 具有该功能,但您必须阅读手册以了解必须调用该脚本的内容以及 Dymola 期望在何处找到它。

我希望这会有所帮助。

于 2013-03-16T13:29:14.193 回答
1

在 Dymola 2018 -> insert -> dymola.mos 的安装文件夹中,我添加了以下行:

Utilities.setenv("MODELICAPATH", "C:\Users\XXXX\Documents\Dymola");
openModel("C:\Users\XXXX\Documents\Dymola\DCOL\package.mo");
openModel(“C:\Users\XXXX\Documents\Dymola\Annex60 1.0.0\package.mo”);

现在我没有得到实用程序语句,因为没有它,DCOL 包可以很好地加载,并且在包菜单中添加的“实用程序”包是无用的。但它并没有打开附件60 包。

我尝试了很多不同的组合,但无法加载多个包。我怀疑文本作品中也添加了“cd”和“Advanced.ParallelizeCode”。

于 2018-02-14T12:55:58.370 回答
1

自 Dymola 2017 FD01 以来,已接受的答案不起作用,因为不再使用文件 settings.mos。用户设置存储在 setup.dymx 文件中,位于

C:\Users\USERNAME\AppData\Roaming\DassaultSystemes\Dymola

与 setup.mos 文件相比,您不能在 setup.dymx 中包含带有 modelica 脚本的自定义行。

使用 dymola.mos的答案仍然有效,但您需要管理员权限才能修改此文件。

这是一个适用于所有 Dyomola 版本的简单解决方案:您可以将 .mos-script 作为第一个参数传递给 dymola.exe。

这可以像这样完成:

  • 使用 openModel() 等命令在某处创建一个 .mos 脚本。
  • 创建 Dymola.exe 的桌面快捷方式
  • 打开快捷方式的属性并在目标文本字段中添加 .mos 脚本的路径。然后它看起来像这样:

"C:\Program Files\Dymola 2018 FD01\bin64\Dymola.exe" "C:\<some-path>\startup.mos"

  • 使用桌面快捷方式启动 Dymola。该脚本将被执行,最终的错误或消息将显示在“命令”窗口中
于 2018-02-19T13:19:39.593 回答
1

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

  1. 转到安装 Dymola 的文件夹(例如 C:\Program Files\Dymola 2020)。
  2. 在插入文件夹中搜索 Dymola.mos 文件。“插入”文件夹
  3. 打开脚本(例如,在记事本++中)
  4. 在此处使用 openModel 语句将链接添加到您的 Dymola-library-package.mo 文件,例如openModel("C:/IDEAS/package.mo"); Dymola.mos 脚本
  5. 保存脚本。现在,每次打开 Dymola 时,您的库都会自动加载。
于 2019-10-08T12:18:08.203 回答