ZV_HMIARC -- 圆环ROI转换到HMI绘图图元

类型

HMI

描述

将圆环roi分解为HMI支持的绘图图元并添加控制参数,便于HMI绘图显示

语法

ZV_HMIARC(tab_arc,tab_elems)

ZV_HMIARC(tab_arc,tab_elems,max_elems)

参数:

tab_arc:保存圆环参数的TABLE索引,依次为cxcyradiusannRangle_startangle_extentsub_numsub_width,即圆环的中心坐标cxcy、圆环中心半径、圆环半宽、起始角度、角度范围、子区域数量、子区域宽度,这些值均为hmi控件坐标系下的值;子区域数量可以为0,超过100个则超出部分不再绘制。通常绘制一般的圆环时如Blob分析所用的生成Region时的roi圆环,sub_num = 0sub_width = 0则可;而绘制测量圆的roi圆环时,sub_numsub_width则分别是圆测量相对应的参数值,参数详情请参考ZV_MRGENCIRCLE指令

tab_elems:图元参数的TABLE索引,依次为圆环中心、内外半径、起止角度、圆环边线数量、边线起止坐标、子区域分割线数量、分割线起止坐标。其中圆环边线指圆环起止角度对应的边界线,如果为整圆则为1条,非整圆为两条,不需要则为0条,边线为0时分割线也一定为0。转换后的角度单位为弧度,内部有最大和最小输出数量限制,最大80个子区域,超出部分不输出,最小需要保证圆环和边线的参数输出,没有max_elems参数的情况下,需要保证足够的空间接收图元参数8*(subnum-1)+20subnum大于1

max_elemstab_elems的可用大小,输出参数占用空间小于等于max_elems,且输出图元是完整的,超出部分不输出

 

tab_elems输出坐标示意图如下:

arc

适用控制器

支持ZV功能或者5系列以上的控制器

例子

'构造一个中心在(100,100、半径为60、半宽为20、起始角度为0、角度范围为270的圆环,子区域数量有8个,子区域宽度为5,并将图形数据存于起始索引为0TABLE

TABLE(0,100,100,60,20,0,270,8,5)

 

'设置绘制圆弧的颜色为蓝色

SET_COLOR(RGB(0,0,255))

 

'将圆环分解成hmi支持的绘图图元,并将相应的图元坐标数据存于起始索引为300TABLE

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