Мне неизвестно о решении, которое позволяет использовать существующий блок RealExpression. В качестве обходного пути вы можете создавать новые версии этого блока - либо расширяя его, либо дублируя его.
Вариант 1: Расширить 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;
Вариант 2: дублировать RealExpression и установить размер с помощью параметра
Вы также можете продублировать выражение 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;