这篇文章讲述了有关 Modelica 语言 (DYMOLA GUI) 中端口图标位置的恼人问题。
我有一个使用 Heatport 和 Fluid 端口接口的模型。
应该发生什么,并且大多数时候都会发生:
我使用的几种型号通常一切正常。
然而,最近对于一个模型,图表层中的一个端口神秘地链接到图标层中的一个端口。因此,它们无法在两个图层(图标和图表)中移动到正确的位置。
故障端口(port_a_RES1)和正常端口(所有其他端口)之间的文本代码完全相同,包括注释:
Fluid.Interfaces.FluidPort_a port_a_RES1(redeclare package Medium = Medium) annotation (Placement(transformation(extent={{90,-110},{70,-90}}), iconTransformation(extent={{50,-110},{70,-90}})));
Fluid.Interfaces.FluidPort_b port_b_RES2(redeclare package Medium = Medium) annotation (Placement(transformation(extent={{-70,-110},{-90,-90}}), iconTransformation(extent={{90,60},{110,80}})));
Fluid.Interfaces.FluidPort_a port_a_RES2(redeclare package Medium = Medium) annotation (Placement(transformation(extent={{-20,-110},{-40,-90}}), iconTransformation(extent={{90,30},{110,50}})));
Fluid.Interfaces.FluidPort_b port_b_RES1(redeclare package Medium = Medium) annotation (Placement(transformation(extent={{40,-110},{20,-90}}), iconTransformation(extent={{90,-80},{110,-60}})));
根据 Modelica 规范 https://specation.modelica.org/maint/3.5/annotations.html#annotations-for-graphical-objects Extend 是一个包含 2 个点的列表,定义了一个矩形,该矩形定义了图标的位置和形状。
当尝试从其他图标或图表视图中以图形方式移动 port_a_RES1 时,错误的 port_a_RES1 conversion.extent[2] 中的第二个范围似乎出于某种原因坚持 iconTransformation.extent[2]。
我能够通过修改 iconTransformation.extent 来手动纠正该行为。
但是,DYMOLA 中似乎存在一些隐藏变量,
很高兴知道这一点......
感谢您的见解!