Modelica Dymola中的库启动skcript

Modelica Dymola中的库启动skcript,modelica,dymola,Modelica,Dymola,使用Dymola,我正在寻找一种在加载库时自动执行脚本的方法。其目的是使用defineUnitConversion()命令定义附加的displayUnits,该命令特定于加载的库。不过,我认为在其他一些情况下,这可能会有所帮助 我在这方面得出的结论是: 我知道可以将转换添加到dymolainstaldir/insert/displayUnits.mos中的文件中,但这带来了一个缺点,即必须在每台新计算机上或更新Dymola后重新进行转换。我想避免这种情况 除此之外,我只找到了libraryin

使用Dymola,我正在寻找一种在加载库时自动执行脚本的方法。其目的是使用
defineUnitConversion()
命令定义附加的
displayUnits
,该命令特定于加载的库。不过,我认为在其他一些情况下,这可能会有所帮助

我在这方面得出的结论是:

  • 我知道可以将转换添加到
    dymolainstaldir/insert/displayUnits.mos中的文件中,但这带来了一个缺点,即必须在每台新计算机上或更新Dymola后重新进行转换。我想避免这种情况
  • 除此之外,我只找到了
    libraryinfo.mos
    文件,它似乎是在Dymola启动时读取的。因此,我假设它不是放置转换的正确位置,因为它包含关于库的一般信息,并且应该只包含相应的函数
Dymola 2022有一个新的(特定于工具的)功能,正好涵盖了这个用例。第24页“库启动脚本”一节中提到了它

它基本上引入了一个新的注释,它允许指定
.mos
脚本的路径,该脚本在加载相应的库时执行。以下是发行说明中的示例:

package ThisPack
 annotation(__Dymola_startup =
 "modelica://ThisPack/Resources/Scripts/Dymola/startup.mos");
end ThisPack;

还可以通过UI设置注释…

如果打开Dymola,然后查看命令窗口,您应该能够看到启动期间执行了哪些脚本。在我的例子中,我只看到
RunScript(“c:/program files/dymola 2020/insert/dymola.mos”,true)所以应该可以从dymola.mos脚本调用任何其他脚本。嘿,matth,谢谢你的评论!我想这是可行的,但这是一个不可移植的解决方案。我希望在加载库时在任何机器上执行脚本。