【发布时间】:2019-05-16 18:42:56
【问题描述】:
在https://trac.modelica.org/Modelica/ticket/2229#comment:2 中提到,Dymola 能够在将更改应用于库时自动更新转换脚本。我正在搜索 Dymola 手册,但找不到任何如何应用此功能的实际指南。
但是,我可以在选项中找到一些设置,但我无法强制 Dymola 创建/更新转换脚本。
有人对如何启用自动创建转换脚本的功能有一些指导吗?
【问题讨论】:
标签: dymola
在https://trac.modelica.org/Modelica/ticket/2229#comment:2 中提到,Dymola 能够在将更改应用于库时自动更新转换脚本。我正在搜索 Dymola 手册,但找不到任何如何应用此功能的实际指南。
但是,我可以在选项中找到一些设置,但我无法强制 Dymola 创建/更新转换脚本。
有人对如何启用自动创建转换脚本的功能有一些指导吗?
【问题讨论】:
标签: dymola
为此提供了三个高级变量,即:
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]";
如 cmets 所示,将这些变量设置为 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= 和尾随,。
Dymola 2022x 可以将命令导出到文件。
然后,Dymola 将从库注释中删除先前生成的命令,并将它们以正确的格式复制到指定的文件中。请注意,Dymola 还将更新库的版本号并调整from 命令。如果不需要,请将其改回。
【讨论】: