### 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索引，依次为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