|
类型 |
HMI |
|
描述 |
将圆环roi分解为HMI支持的绘图图元并添加控制参数,便于HMI绘图显示 |
|
语法 |
ZV_HMIARC(tab_arc,tab_elems) ZV_HMIARC(tab_arc,tab_elems,max_elems) 参数: tab_arc:保存圆环参数的TABLE索引,依次为cx、cy、radius、annR、angle_start、angle_extent、sub_num、sub_width,即圆环的中心坐标cx、cy、圆环中心半径、圆环半宽、起始角度、角度范围、子区域数量、子区域宽度,这些值均为hmi控件坐标系下的值;子区域数量可以为0,超过100个则超出部分不再绘制。通常绘制一般的圆环时如Blob分析所用的生成Region时的roi圆环,sub_num = 0和sub_width = 0则可;而绘制测量圆的roi圆环时,sub_num和sub_width则分别是圆测量相对应的参数值,参数详情请参考ZV_MRGENCIRCLE指令 tab_elems:图元参数的TABLE索引,依次为圆环中心、内外半径、起止角度、圆环边线数量、边线起止坐标、子区域分割线数量、分割线起止坐标。其中圆环边线指圆环起止角度对应的边界线,如果为整圆则为1条,非整圆为两条,不需要则为0条,边线为0时分割线也一定为0。转换后的角度单位为弧度,内部有最大和最小输出数量限制,最大80个子区域,超出部分不输出,最小需要保证圆环和边线的参数输出,没有max_elems参数的情况下,需要保证足够的空间接收图元参数8*(subnum-1)+20(subnum大于1) max_elems:tab_elems的可用大小,输出参数占用空间小于等于max_elems,且输出图元是完整的,超出部分不输出
tab_elems输出坐标示意图如下:
|
|
适用控制器 |
支持ZV功能或者5系列以上的控制器 |
|
例子 |
'构造一个中心在(100,100、半径为60、半宽为20、起始角度为0、角度范围为270的圆环,子区域数量有8个,子区域宽度为5,并将图形数据存于起始索引为0的TABLE中 TABLE(0,100,100,60,20,0,270,8,5)
'设置绘制圆弧的颜色为蓝色 SET_COLOR(RGB(0,0,255))
'将圆环分解成hmi支持的绘图图元,并将相应的图元坐标数据存于起始索引为300的TABLE中 ZV_HMIARC(0,300)
'绘制内圆弧 DRAWARC(TABLE(300),TABLE(301),TABLE(302),TABLE(304),TABLE(305))
'绘制外圆弧 DRAWARC(TABLE(300),TABLE(301),TABLE(303),TABLE(304),TABLE(305))
'在圆心处绘制十字架 DRAWLINE(TABLE(300),TABLE(301)-5,TABLE(300),TABLE(301)+5) DRAWLINE(TABLE(300)-5,TABLE(301),TABLE(300)+5,TABLE(301))
'若边线数量大于0则绘制边线 IF TABLE(306) > 0 THEN DIM idx FOR idx = 0 to TABLE(306)-1 DRAWLINE(TABLE(307+idx*4),TABLE(308+idx*4), TABLE(309+idx*4), TABLE(310+idx*4)) NEXT
'设置绘制子区域线的颜色为绿色 SET_COLOR(RGB(0,255,0))
DIM startid '子区域分割线 startid = 307+TABLE(306)*4 FOR idx = 0 TO TABLE(startid)-1 DRAWLINE(TABLE(startid+1+idx*4),TABLE(startid+2+idx*4), TABLE(startid+3+idx*4),TABLE(startid+4+idx*4)) NEXT ENDIF |