如何在Dymola中自动创建转换脚本

时间:2019-05-16 18:42:56

标签: dymola

https://trac.modelica.org/Modelica/ticket/2229#comment:2中提到,当将更改应用于库时,Dymola具有自动更新转换脚本的功能。我在搜索Dymola手册,但找不到如何应用此功能的实际指南。

但是,我可以在选项中找到一些设置,但是我不能强迫Dymola创建/更新转换脚本。

enter image description here

有人对如何启用自动创建转换脚本的功能有一些指导吗?

1 个答案:

答案 0 :(得分:3)

为此,有三个高级变量:

Integer Advanced.ActivateSmartDelete = 3 "Updates other classes when deleting class/component [0 - no, 1 - ask, 2 yes (if possible)]";
Integer Advanced.ActivateSmartRename = 3 "Updates other classes when renaming component [0 - no, 1 - ask, 2 yes, 3 - also script]";
Integer Advanced.ActivateSmartRenameClass = 3 "Updates other classes when renaming class [0 - no, 1 - ask, 2 yes, 3 - also script]";

如注释所示,将这些变量设置为3(使用Dymola命令窗口或在更新的Dymola版本中,可以在屏幕快照中看到的选项)会自动创建转换命令。

Dymola将转换命令写入您的库的模型注释中。他们将看起来像这样:

  from(
    version="3.2.3",
    to="Intermediate",
    change(item=convertClass("Modelica.Blocks.Continuous.PID", "Modelica.Blocks.Continuous.PID_Controller"),
           item=convertClass("Modelica.Blocks.Continuous.FirstOrder", "Modelica.Blocks.Continuous.PT1")))

请注意,如果要将转换脚本存储在单独的文件(而不是库的package.mo)中,则必须稍微转换一下。

在脚本中,以上命令如下所示:

convertClear()
convertClass("Modelica.Blocks.Continuous.PID", "Modelica.Blocks.Continuous.PID_Controller"),
convertClass("Modelica.Blocks.Continuous.FirstOrder", "Modelica.Blocks.Continuous.PT1")

所以是相同的命令,但是没有item=并且没有尾随,