intouch改變物件透明度

如圖,做一個紅色物件,在加熱器輸出越大時,就越紅:

新建一個物件

畫一個紅色方框,下邊元素名字改為red

可以看到red元素的Transparency的屬性是0=不透明,100=全透明。

接下來在空白處右鍵自建一個屬性,讓這個元件可以對外作互動

新建一個gettaq屬性,默認值---,注意是---不是其他數字,因為要考慮到這個物件還會在其他地方用到,使用---就是告知系統,我這個塊在別的地方這個屬性是可以變的,可以自定的。


數據類型透明度是0-100,所以使用integer即可

物件屬性接口做好了,接著就是腳本了,如果沒有腳本

紅框red的透明度並不會改變

gettaq那個變量就算給了,他也只是這個物件裡的一個物件變量而以,於是我們就要用到腳本功能,將屬性應用到red的透明度裡

腳本很簡單只需一行

red.Transparency=gettag; //把gettaq的值給到red元素的透明度

但要怎麼觸發腳本要注意:

on show:

物件所在表單被加載時觸發一次(本例不可選用這個,因為加熱器的輸出值是實時在變化的,紅框也必須實時變化)

while showing:

只要表單在運作,本物件就一直觸發腳本按設定的時間循環值行(本例選用這個,但更新時間會不會影響效能不知道,會就設長一點)

on hide:

與on how相反,下沿觸發,用處未知。

到此ok了,把物件拉出來用,雙擊指定gettaq屬性指向加熱器的輸出點數值的tag地址就可以了。

這個自定義物件的用法跟AUTOCAD的自建塊用法很像,把N個圖型集中成一個塊,建立屬性後,就可以一次性建塊,以後直接調用並控制即可。