如何在Dymola / Modelica的启动路径中添加自定义程序包?

时间:2013-03-15 20:15:04

标签: modelica dymola

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

5 个答案:

答案 0 :(得分:8)

诀窍是将以下行添加到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包之外还在路径上。

答案 1 :(得分:4)

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

如果您希望它始终显示在包浏览器中,您可能需要设置.mos文件(脚本)来加载它。 Dymola具备这种能力,但您必须阅读手册以确定该脚本必须被调用以及Dymola希望找到它的位置。

我希望有所帮助。

答案 2 :(得分:1)

在Dymola 2018的instalation文件夹中 - >插入 - > 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包在没有它的情况下加载正常,并且包菜单中添加的“实用程序”包没用。 但它没有打开Annex60包。

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

答案 3 :(得分:1)

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

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

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

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

这是一个适用于所有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。将执行脚本,并在“命令”窗口中显示最终错误或消息

答案 4 :(得分:1)

另一个建议,您无需将软件包硬编码到操作系统的环境变量中(对于经验不足的程序员可能更安全):

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