2016-04-28 7 views
4

В Modelica можно определить аннотации, прикрепленные к объекту, например соединителю, которые меняют свой графический вид.Назначение конкретного типа соединения для соединителя в Modelica

Можно ли также определить, как будет выглядеть соединение от одного разъема к другому? Например, два экземпляра класса соединителя «foo» всегда будут иметь пунктирную линию в качестве соединения, а два класса «бар» будут иметь более толстую полную строку.

До сих пор я заметил, что линии соединений имеют цвет внешнего цвета разъема, но это все. И я не нашел ничего в документации, связанной с этим.

ответ

4

Да, можно:

Если вы посмотрите на Modelica.Blocks.Examples.BusUsage_Utilities.ControlBus вы будете себе, что простирается от значка (Modelica.Icons.SignalBus) и помещает небольшой желтый прямоугольник в верхней части иконы:

Icon with rectangle

Если вы измените спецификацию прямоугольника в аннотации соединителя, то видимые линии между коннекторами будут отображаться с использованием стиля прямоугольника, например

changing connection appearance via annotation

Подключенные ControlBusses выглядеть следующим образом: Connection between ControlBusses

На информационном слое Modelica.Blocks.Examples.BusUsage есть несколько замечаний по этому вопросу.

С наилучшими пожеланиями, Рене Просто Nielsen

2

В дополнение к ответу Рене Just Nielsen, условные задания также возможны, как показано на LinePattern в следующем примере:

parameter Boolean dashy=true; 
..... 
equation 
    connect(pipe3.port_b,pipe4. port_a) annotation (Line(
     points={{20,0},{20,0},{20,10},{0,10},{0,16},{0,20},{0,20}}, 
     color={0,127,255}, 
     thickness=0.5, 
     pattern=if dashy then LinePattern.Dash else LinePattern.Solid)); 

То же самое Идея также работает в другом месте, для значков, соединений, коннекторов и атрибутов, таких как толщина, цвет, видимость. Таким образом, вы можете установить Boolean на другое значение в ваших двух классах, или если вам нужно больше вариантов, чем просто true и false, используйте перечисление или даже сравнение, например if m_flow<0.

 Смежные вопросы

  • Нет связанных вопросов^_^