input换行显示_都是甲方爸爸的任务罢了——Simulink模块名称和端口显示编辑

6bb046c468682f5c8af198c4c8a95bf6.png

导语

e325dc96af73d6c46695a2269647b002.png

今天这个话题是临时起意来写的,事情源于群友的一个问题:

0403bf12619ff130fde2678ddbc79e2e.png

说实话,我也觉得中间就挺好的呀4e0d16431b51f79e2b49e8fa23bad048.png 在中间布局合理,醒目突出,而且符合软件开发人员一般视觉习惯,为什么要改呢?没办法,甲方爸爸和领导们永远是对的,我改

97aaf81e63fc9cd9a2f379e922290110.png

6bb046c468682f5c8af198c4c8a95bf6.png

修改位置

e325dc96af73d6c46695a2269647b002.png

如果顺手加一行属性的话,肯定马上就按照甲方爸爸的要求改动了。可问题是一般我们在Mask中习惯用的disp()函数并没有更多的属性选项,只能键入最基本的一段字符串。

c9745e700fa02b12cbc23a09f75cadd6.png

这里我们需要使用另一个函数,text(),比如:

text(2,8,'A Simple Plot','Color','red','FontSize',14)

text函数可以定义很多属性,其中最前面两个就是给定(x,y)坐标。这里就来到了关键点,因为我们在simulink界面建模时候并不知道模块的坐标信息,而且模块也可能需要放大缩小调整,所以这里可以巧妙的使用归一化单位

f1001cfb884d63709560b16c6708ad22.png

在options选项卡中,注意要把图标透明度选为“opaque with ports”,把“icon units”选择为“normalized”。前者可以使得mask后的端口名称依然正常显示出来;后者则可以方便设置text中的位置信息。根据之前那位群友的要求,右下角位置的归一化坐标就是(1,0),于是:

text(1, 0, 'Label Text', 'ver','bottom','horizontalAlignment', 'right')

注意这里要把字符串位置也设置为底部居右显示,进行水平方向上操作的'horizontalAlignment', 'right'很好理解,就是这里属性名太长了,其实可以只输入前3个字母也就是'hor'就可以了,比如上面的代码中垂直方向上便只用了'ver',依然能实现。

可以看到,如此设定后,即便模块被放大了一些,模块名称依然会被固定在右下角显示。

6bb046c468682f5c8af198c4c8a95bf6.png

延伸操作

e325dc96af73d6c46695a2269647b002.png

只是做好了甲方爸爸的要求就够了吗?那还怎么能体现自己的创新精神怎么升职加薪呢?比如很明显这里模块名称的字号太小了,想把它搞大一点更醒目一点,于是右键在字体中设置:

0013aa4f4eb22c208a8ceaad0946c4a0.png

很明显,这里的字体设置对模块上全局有效,输入输出端口的字体也跟着变化了,太丑了肯定会被骂。先说一下模块名称的设置:

b9b9b0206bc5f2a6123e636d6769ec9c.png

首先直接对text的fontsize属性作定义是可行的。这里使用一下高级点的骚操作,使用latex格式输入。把text的'texmode'模式打开,然后就可以像latex那样进行编辑,包括各种数学符号希腊字母等。需要注意的是,此时一般字符串中的转义操作便无效了,比如之前换行的'\n'命令就需要改用'\newline'来操作了。

需要提示的是,这里的设置优先级是高于在右键中的设置的,也就是说此时再通过右键来修改字体字号,仅会对未写入命令行的端口名称起效。

类似的,对于端口名称,一样有专门的函数port_label来编辑,同时也可以激活latex模式:

port_label('input',1,'\color{red}\fontsize{20}\alpha','texmode','on');port_label('output',1,'\color{blue}\fontsize{20}\beta','texmode','on');

需要提示的是,这里的texmode并不能完全覆盖latex语法,比如在matlab中我们可以通过把解释器(interpreter)定义为'latex',比如:

plot(1:10);leg1 = legend('$\bar{x}$','$\tilde{x}$','$\hat{x}$');set(leg1,'Interpreter','latex');set(leg1,'FontSize',17);

cc8778631d7a025b823b6318ffa57a86.png

但是在simulink中使用text和disp的texmode时,所支持的语法有限(我目前使用的是2019B),感兴趣的朋友可以自行help查看罗列的表格。

6bb046c468682f5c8af198c4c8a95bf6.png

小结

e325dc96af73d6c46695a2269647b002.png

罗列一下模块的变化,不得不说领导或者甲方爸爸的要求确实有独到的理解,模型的细节和可读性确实明显的优化了,而且中间部分可以空余出来放一些logo或者icon图标,标题放在右下角显得恰到好处。

672f966c9555c72eb0c81bf0ae08d934.png

领导和甲方爸爸们永远都对!!!

顺势替自己求一波Offer,能改方案,立即改加班改反复改的那种4e0d16431b51f79e2b49e8fa23bad048.png

cf9c84822b265c5c9075c2b17ed6ae60.gif

我是Eevee

欢迎关注

迈特实验室

43f66b502c6305a6a3ffdcc67a4bd336.png 3eddc709f827592ac68ec59b61e62dcd.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值