【发布时间】:2017-01-24 15:56:19
【问题描述】:
有没有办法在启动 Dymola 时自动加载库、切换到某个工作目录等?
【问题讨论】:
有没有办法在启动 Dymola 时自动加载库、切换到某个工作目录等?
【问题讨论】:
这个问题有点模棱两可 - 另一个答案对于一种情况来说非常好。 (第 2 步中的 openModel 调用可以修改。)
但是,如果您总是想要在特定目录等中启动 Dymola,则可以使用 GUI。取决于版本。
Dymola 2020 x(及更高版本) 允许通过 File>Working Directory
更改启动目录并且有 Tools>Library Management>Modelica Path,您可以在其中添加包含外部库的目录。
要使库显示为预加载,您必须在相应的库中添加libraryInfo.mos 脚本;您可以查看 Dymola 安装中的 Modelica 标准库以获取灵感。
后者在“更多关于库以及库和演示菜单的构建”部分(在用户手册的某处)中进行了更详细的描述。
Dymola 2017 FD01(与 Dymola 2016 FD01 略有不同):
如果您想“预加载”库,有一些选项:
在启动脚本中,您可以使用 import MyPackage; 或 openModel("...\\MyPackage.mo"); 或者如果您是管理员,您可以修改 Dymola/insert/dymodraw.ini 并添加一行:Dymola5LibraryMenu "MyPackage"(从技术上讲,它不会“加载” - 它只是显示包浏览器中的库)。
一个重要的区别是,即使在“全部清除”之后,更改 dymodraw.ini 也会使库保持“加载”状态。
【讨论】:
近年来有两种选择可能对您有所帮助。
File>Library Management>Install 此对话框允许您打开一个 zip文件或类似分布式库的东西,安装它, 更新 MODELICAPATH 以再次找到它,甚至更新 File>Libraries 菜单以包括它以供将来使用。一站式操作。
Simulation>Edit startup.mos 如果您更喜欢编辑启动 脚本,这是找到它的便捷方法结束打开它 编辑。
【讨论】:
这是一个允许通过单击加载一组库的过程。
它利用了 dymola.exe 可以以 .mos 脚本作为第一个参数启动的事实。
它专为以下情况而设计
第一次设置有点麻烦,但很快就完成了后续项目。你需要:
start.mos 文件DYMOLA_WD和MODELICA_LIBS这是 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 脚本。
【讨论】:
此方法已针对 Dymola 2017FD01 进行了测试。以前的版本通过不再可用的setup.mos 脚本使用不同的方法。截至本文发布时,还没有通过 Dymola GUI 执行此操作的选项。
可以通过 .mos 文件轻松完成,步骤如下:
C:\Users\USERNAME\Documents\Dymola\startup.mos
.mos 文件。例如,要加载库添加openModel("C:\\Users\\USERNAME\\Documents\\ModelicaLibrary\\package.mo");
.mos 文件末尾更改当前目录:cd("C:\\Users\\USERNAME\\Documents\\Dymola");
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"
.mos 文件中指定的操作。【讨论】:
另一个建议,您不需要将包硬编码到操作系统的环境变量中(对于没有经验的程序员来说可能更安全):
【讨论】: