线切割机实现切割汉字的自动编程技术
| 、FirstPointY记录第一点横、纵坐标的值; (2)初始化记录直线的指针,建立记录直线的链表;将起始点的k,1值作为直线起点和终点的横、纵坐标,将该直线加入到直线纪录的链表中去; (3)以第一点为基准点沿逆时针方向寻找下一点,如果搜索到值为1的点则记搜索方向为i,该点的横、纵坐标记为(k,1),将记录直线的终点横、纵坐标设置为k,1; (4)置是否搜索完毕标志SearchCompleted为False; (5)如果SearchCompleted不为True则重复作6-13步; (6)置SearchCompleted为True; (7)置是否同一条线标志SameLine为True; (8)如果SameLine为True则重复作9-12步; (9)置SameLine为False; (10)沿i方向进行搜索,即k:=k+SearchDirection [i][0];1:=1+SearchDirection [i][1]; (11)如果点(k,1)为1,则置SameLine为True;将直线的终点坐标设置为(k,1);将点(k,1)的值设置为0; (12)如果点(k,1)为0,则置SameLine为False; (13)以点(k,1)为基准点沿逆时针方向寻找下一点,如果搜索到值为1的点,则记搜索方向为i;在直线记录列表中增加一条新的直线,k,1值作为直线起点的横、纵坐标;将搜索到的点的横、纵坐标记为(k,1),将直线终点的横、纵坐标设置为(k,1);置Searhcompleted为False,置SameLine为True;将点(k,1)的值设置为0; (14)进行图形封闭化处理,在直线记录列表中增加一条直线,将k,1值作为直线起点的横、纵坐标,FirstPointX、FirstPointY作为直线终点的横、纵坐标值。 这样当遍历完成后,遍历的轨迹就保存在直线记录列表中了,也就是说已实现将汉字的字形轮廓用直线段进行描述了。需指出的是,由于汉字字形本身或者编辑处理的原因,在进行图象遍历的过程中,可能存在一些不和谐的点,使遍历不能完成(如存在断点、尖点及多余点的情况),需在遍历之前运用图象处理的技术将这些点补足或者剔除掉,以使遍历能顺利完成,有关这方面的算法不再赘述。 至此要实现切割汉字就只剩下如何生成切割指令的问题了。由于已将汉字的字形轮廓用直线进行描述,且这些直线还首尾相接组成一个封闭轮廓,要生成线切割机的切割指令,只需按切割指令的要求将这些直线进行转换即可。 5 结束语 本文介绍了从汉字字库中提取字形轮廓,在进行编辑处理后将其转化为切割指令,从而在线切割机上实现切割汉字的自动编程技术。它可使线切割机简单方便地实现汉字的切割,还可对要切割的汉字进行各种处理。实践证明,采用这种方法能很好地满足需要,并且取得较好的效果。 |
