如何解决Modelica网页颜色
我认为将某些颜色定义为常量以便稍后在Modelica颜色注释中使用可能会很方便。似乎网页颜色是一种公认的标准,我将所有这些都复制到一个常量数组包中:
- https://en.wikipedia.org/wiki/Web_colors
- https://gist.github.com/thorade/a1298571938231ef90d3bedf6b514967
但是似乎我无法按预期使用它们,以下示例失败。 似乎文字可以工作,或者如果我在同一类中定义常量,但是如果我导入它就行了。 我是在做错什么,还是我使用的工具有局限性?
within ;
package Modelica_Colors
type RealColor = Modelica.Icons.TypeReal[3] (each min=0,each max=255);
package BasicColors
final constant RealColor Aqua={0,255,255};
final constant RealColor Black={0,0};
final constant RealColor Blue={0,255};
final constant RealColor Fuchsia={255,255};
final constant RealColor Gray={128,128,128};
final constant RealColor Grey={128,128};
final constant RealColor Green={0,0};
final constant RealColor Lime={0,0};
final constant RealColor Maroon={128,0};
final constant RealColor Navy={0,128};
final constant RealColor Olive={128,0};
final constant RealColor Purple={128,128};
final constant RealColor Red={255,0};
final constant RealColor Silver={192,192,192};
final constant RealColor Teal={0,128};
final constant RealColor White={255,255};
final constant RealColor Yellow={255,0};
end BasicColors;
package Colors
final constant RealColor Crimson={220,20,60};
final constant RealColor Cyan={0,255};
final constant RealColor DarkBlue={0,139};
final constant RealColor DarkCyan={0,139,139};
final constant RealColor OliveDrab={107,142,35};
final constant RealColor Orange={255,165,0};
final constant RealColor OrangeRed={255,69,0};
final constant RealColor Orchid={218,112,214};
final constant RealColor PaleGoldenRod={238,232,170};
final constant RealColor PaleGreen={152,251,152};
final constant RealColor Yellow={255,0};
final constant RealColor YellowGreen={154,205,50};
end Colors;
model Test
// works
constant RealColor test_const1={255,147}; // pinkish
// does not work
final constant RealColor test_equal=Modelica_Colors.Colors.OrangeRed;
constant RealColor test_pi={Modelica.Constants.pi,2*Modelica.Constants.pi,3*Modelica.Constants.pi};
import Modelica_Colors.BasicColors.Yellow;
protected
// works
constant RealColor test_const2={147,255};
annotation (Icon(coordinateSystem(preserveAspectRatio=false),graphics={
Rectangle(
extent={{-100,100},{0,0}},lineColor=test_const2,fillColor=test_const1,fillPattern=FillPattern.Solid),Rectangle(
extent={{0,0},{100,-100}},lineColor=Modelica_Colors.Colors.Cyan,fillColor=Yellow,lineColor=test_equal,fillColor=test_equal,Rectangle(
extent={{-100,fillColor=test_pi,fillPattern=FillPattern.Solid)}),Diagram(coordinateSystem(
preserveAspectRatio=false)));
end Test;
annotation (uses(Modelica(version="3.2.3")));
end Modelica_Colors;
解决方法
原因很简单:取决于变量的图形注释仅在结果文件中存在变量时才起作用。 因此,由于您的颜色批注使用导入来调用数据,因此结果文件中不包含黄色代码,因此您的测试框无法着色。 可以将相同的逻辑应用于受保护的变量:它将无法应用于任何图形注释。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。