【问题标题】:Removing annotations from a Modelica model从 Modelica 模型中删除注释
【发布时间】:2017-05-14 13:48:03
【问题描述】:

我正在开发一个 Modelica 库,需要生成一个包含源代码列表的文档。我希望能够在没有注释的情况下包含 Modelica 模型的来源。

我可以手动编辑它们,但我正在寻找更自动化的策略。我猜最方便和直接的方法是使用一些工具来保存没有注释的.mo 文件并将它们包含在我的文档中(我在 LaTeX 中使用\lstinputlisting)。

可以这样做吗?我可以访问 Dymola、OpenModelica 和 JModelica。 Dymola 显然能够生成这样的列表,因为它能够将其包含在自动生成的文档中(文件 > 导出 > HTML...)。我一直在研究使用 Dymola 和 OpenModelica 编写脚本,但也没有找到方法。

JModelica 似乎是一个不错的选择,但我没有使用 Python 的经验。如果这是可能的并且有人给我一些指示,我愿意自己研究一下。我发现提到了一个可能完成这项工作的prettyprint 函数,但我不确定从哪里开始。我什至在latest documentation 中找不到对该函数的引用。

我也可以更方便地找到一种使用 Dymola/OpenModelica 的方法(无论是通过 UI 还是使用脚本)。我错过了什么吗?

【问题讨论】:

    标签: annotations modelica dymola openmodelica jmodelica


    【解决方案1】:

    我认为您可以在 OpenModelica 中使用 saveTotalModel("total.mo", MyModelName)。这将去除大多数注释(如果我没记错的话,不是用于代码生成的注释)并漂亮地打印包含所有依赖项的源代码。然后,您只需复制粘贴要包含在列表中的模型/包。或者,如果您愿意,可以执行以下操作以仅包含特定模型的代码:

    loadModel(Modelica);
    loadFile("MyModel.mo");
    saveTotalModel("total.mo", MyModel.A.B);
    clear();
    loadFile(MyModel);
    str := list(MyModel.A.B);
    writeFile("MyModel.A.B.listing", str);
    

    【讨论】:

    • 感谢@sjoelund.se 的快速回复。我不确定如何实施您的解决方案。我有one file per model。理想情况下,我希望能够保存没有注释的库的完整版本。我应该输入这些命令吗?对不起,我知道脚本,但我不熟悉它们。我正在尝试将它们输入到我在 OMEdit 中打开的编译器 CLI 窗口中。我得到了这个saveTotalModel("total.mo",PVSystems.Electrical.PVArray) >> true,但我不知道结果在哪里! (cd 不返回任何内容)
    • 您可以使用 cd() 命令查看它的位置,或者如果您在 Windows 上,它应该保存在 %TEMP%\OpenModelica\OMEdit 中
    • 非常感谢@AdrianPop,确实cd() 工作了,我在%TEMP% 文件夹中找到了该文件。我一直在尝试创建我想要的结果,发现我可以使用saveTotalModel("ModelWithStuff.mo", PVSystems.Subpkg.Model) 创建模型的无注释版本。但这包括一些我不想要的额外内容。然后我 clear(),加载 那个 版本并使用 writeFile("ModelClean.mo", list(PVSystems.Subpkg.Model)) 提取我想要的部分
    • 我接受了这个答案,感谢您花时间写它。我确实认为可以通过解释可以在哪里发出这些命令来改进它(我使用了 Compiler CLI,但我正在研究创建一个脚本,不知道该怎么做)。我也很难理解命令本身,为什么要加载 Modelica,保存东西的位置,为什么第二个 loadFile 的语法与第一个不同,等等。谢谢!
    • 这是受此答案启发的resulting script
    猜你喜欢
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 2014-03-24
    • 2016-11-05
    • 2015-05-11
    • 2014-08-27
    相关资源
    最近更新 更多