有时当组件被拉伸时,我们不希望拉伸连接器,因为它看起来很难看。例如,请参阅下面的Modelica.Blocks.Sources.RealExpression
是否可以在模型中实例化连接器(或其他竞争对手)时添加图形注释以避免这种情况?
祝你好运, Rene Just Nielsen
答案 0 :(得分:3)
我认为目前无法完全按照你的意愿行事。
请注意,可以使用
阻止整个 realExpression的拉伸annotation (Icon(coordinateSystem(preserveAspectRatio=true),...),
Diagram(coordinateSystem(preserveAspectRatio=true),...),
但是,没有指定在RealExpression的连接器中使用它应该可以防止连接器的拉伸 - 同时仍然允许拉伸组件。
答案 1 :(得分:2)
我不知道允许使用现有RealExpression块的解决方案。作为一种解决方法,您可以创建此块的新版本 - 通过扩展或复制它。
您可以创建一个新的,更广泛的真实表达式,扩展原始的真实表达,隐藏原始图标并绘制一个新图标。
缺点:这需要每个尺寸一个模型,但是如果频繁使用尺寸,这应该没问题。
model RealExpression_600x200
extends Modelica.Blocks.Sources.RealExpression annotation (
IconMap(extent={{100,-100},{300,100}}, primitivesVisible=false),
DiagramMap(extent={{100,-100},{300,100}}, primitivesVisible=false));
equation
annotation (
Diagram(coordinateSystem(extent={{-300,-100},{300,100}})),
Icon(coordinateSystem(extent={{-300,-100},{300,100}}), graphics={
Rectangle(
extent={{-300,40},{300,-40}},
lineColor={0,0,0},
lineThickness=5.0,
fillColor={235,235,235},
fillPattern=FillPattern.Solid,
borderPattern=BorderPattern.Raised),
Text(
extent={{-300,100},{300,60}},
textString="%name",
lineColor={0,0,255}),
Text(
extent={{-296,15},{296,-15}},
lineColor={0,0,0},
textString="%y")}),
uses(Modelica(version="3.2.2")));
end RealExpression_600x200;
您还可以复制RealExpression并引入一个控制图形注释的参数。可以添加常用尺寸作为选择。您不应该重新缩放组件,而是选择参数width
的大小。
block RealExpression "Real expression with varying size, set via parameter"
parameter Integer width = 10
annotation(choices(choice=20 "Regular",
choice=40 "Wide",
choice=80 "Wiiiiiiide"));
Modelica.Blocks.Interfaces.RealOutput y=0.0 "Value of Real output"
annotation (
Dialog(group="Time varying output signal"),
Placement(transformation(extent={{10*width/2,-10},{10*width/2+20,10}})));
annotation (
Icon(
coordinateSystem(
preserveAspectRatio=true,
extent={{-100,-100},{100,100}}),
graphics={
Rectangle(
extent={{-10*width/2,40},{10*width/2,-40}},
lineColor={0,0,0},
lineThickness=5.0,
fillColor={235,235,235},
fillPattern=FillPattern.Solid,
borderPattern=BorderPattern.Raised),
Text(
extent={{-10*width/2+4,15},{10*width/2-4,-15}},
lineColor={0,0,0},
textString="%y"),
Text(
extent={{-10*width/2,90},{10*width/2,50}},
textString="%name",
lineColor={0,0,255})}),
uses(Modelica(version="3.2.2")));
end RealExpression;