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

时间:2017-01-24 15:56:19

标签: modelica dymola

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

5 个答案:

答案 0 :(得分:2)

这个问题有点含糊不清 - 另一个答案对于一个场景来说非常好。 (可以修改步骤2中的openModel调用。)

但是,如果总是想要在特定目录中启动Dymola等,可以使用Dymola 2017 FD01中的GUI(与Dymola 2016 FD01略有不同):

  1. 更改目录(文件>更改目录)
  2. 添加到Modelica路径(文件> Modelica路径)
  3. 保存这些设置(编辑>选项>设置:选择启动和模式路径)
  4. 如果你想“预加载”库,有一些选择: 在启动脚本中,您可以使用import MyPackage;openModel("...\\MyPackage.mo");,如果您是管理员,则可以修改Dymola / insert / dymodraw.ini并添加一行:Dymola5LibraryMenu "MyPackage"(从技术上讲,它不会“加载“ - 它只是在包浏览器中显示库。”

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

答案 1 :(得分:2)

这是一个允许单击一次加载一组库的过程。 它利用了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脚本。

答案 2 :(得分:1)

此方法已针对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始终将其自动生成的文件放在当前工作目录中。将该位置设置为相同位置通常是个好主意,因此无需查找输出文件的位置。因此,在.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文件中指定的操作。

答案 3 :(得分: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时,库将自动加载。

答案 4 :(得分:1)

近年来,有两种选择可能对您有所帮助。

  1. 文件>库管理>安装,此对话框可让您打开 zip文件或类似的分布式库,请安装它, 更新MODELICAPATH以再次找到它,甚至更新File> Libraries 菜单以供将来使用。一站式操作。

  2. 模拟>编辑startup.mos 如果要编辑启动 脚本,这是找到它的便捷方法 编辑。