2016-04-28 12 views
4

In Modelica ist es möglich, Anmerkungen zu einem Objekt, z. B. einem Connector, zu definieren, die ihre grafische Darstellung ändern.Weisen Sie dem Connector in Modelica einen bestimmten Verbindungsstil zu.

Kann man auch definieren, wie die Verbindung von einem Verbinder zum anderen aussieht? Wie zwei Instanzen der Connector-Klasse "foo" wird immer eine gestrichelte Linie als eine Verbindung haben, während zwei der Klasse "Balken" eine dickere durchgezogene Linie haben.

Bis jetzt habe ich bemerkt, dass die Verbindungslinien die Farbe der äußeren Strichfarbe des Verbinders nehmen, aber das ist es. Und ich habe in den diesbezüglichen Unterlagen nichts gefunden.

Antwort

4

Ja, es ist möglich:

Wenn Sie einen Blick auf Modelica.Blocks.Examples.BusUsage_Utilities.ControlBus Sie werden sich, die von einem Symbol auf dem Symbol (Modelica.Icons.SignalBus) und legt ein kleines gelbes Rechteck erweitert:

Icon with rectangle

Wenn Sie die Rechteckspezifikation in der Anmerkung des Verbinders ändern, werden die sichtbaren Linien zwischen den Verbindern mit dem Rechteckstil angezeigt, z

changing connection appearance via annotation

Die angeschlossenen ControlBusses wie folgt aussehen: Connection between ControlBusses

auf der Informationsschicht von Modelica.Blocks.Examples.BusUsage einige Bemerkungen zu diesem Thema gibt.

Mit freundlichen Grüßen, Rene Gerade Nielsen

2

Neben der Antwort von Rene Nur Nielsen, sind bedingte Zuweisungen auch möglich, wie für die LinePattern im folgenden Beispiel gezeigt:

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)); 

der gleichen Idee funktioniert auch anderswo, für Symbole, Verbindungen, Verbinder und Attribute wie Dicke, Farbe, Sichtbarkeit. Auf diese Weise können Sie die auf einen anderen Wert in Ihren beiden Klassen setzen, oder wenn Sie mehr Möglichkeiten als nur true und false benötigen, verwenden Sie eine Aufzählung oder sogar einen Vergleich wie if m_flow<0.