矩形中-事件-属性-几何,如何触发

在做一个矩形时,在其属性-几何中,对X/Y宽度、高度做了动态,用的C脚本,问如何触发这些动作。谢谢。
 

最佳答案

如何动态化图形对象的大小和位置?
 描述:
 图形对象的“动态填充”属性只允许从底部到顶部填充对象,即使该对象被旋转。本条目描述了如何动态化一个矩形,以达到棒图从右到左增长的效果。对象的大小和位置也可以通过同样的方法实现动态化。

 在WinCC实例中有以下对象被引用:
   描述 对象名称 属性 
 填充变量 "Level" 无符号8位数值, 下限: 0, 上限: 100 
 边界矩形 "Border" 几何: X=19, Y=39, 宽度=402, 高度=32 
 填充矩形 "LevelRect" 几何: X=20, Y=40, 宽度=400, 高度=30
 颜色: 线颜色 = 背景颜色 

 
 注意:
 对所有的动态都使用变量触发: 

 变量: "Level" 
 更新: "一旦改变"
 选择1:动态值的范围
 为下面的填充矩形设置动态效果。 

 
 图 01 

 位置X: 公式: 420 - (400/100 * 'Level') 
 宽度: 公式: 400/100 * 'Level'

 图 02: 动态位置X

 选择2:用C脚本作动态化
   编号 描述: 
 1 属性"位置 X"的C脚本 
 #include "apdefap.h"
 long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
 {
    int level;
    level = GetTagByte("Level");
    return 420 - ( orgWidth / 100 * level );
 }
  
 2 属性"宽度"的C脚本 
 #include "apdefap.h"
 long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
 {
    int level;
    level = GetTagByte("Level");
    return 400 / 100 * level;
 }
  

 
 选择3: 用VB脚本作动态化
   编 号 描述: 
 1 属性"位置 X"的VB脚本 
 Function Left_Trigger(Byval Item)
    Dim level
    Set level = HMIRuntime.Tags("Level")
    Item.Left = 420-(400/100 * level.Read)
 End Function
  
 2 属性"宽度"的VB脚本 
 Function Width_Trigger(Byval Item)
    Dim level
    Set level = HMIRuntime.Tags("Level")
    Item.Width = 400/100 * level.Read
 End Function
  

 
 结果: 

 
 图 03 

  
  
  条目号:12730269     日期:2008-05-15   
  
  http://support.automation.siemens.com/CN/llisapi.dll?func=cslib.csinfo&lang=zh&siteid=cseus&objid=12730269
 

提问者对于答案的评价:
很详细,谢谢了,对下楼的,也表示感谢!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc273309.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午9:51
下一篇 2019年6月11日 上午9:51

相关推荐