您现在的位置: 光速在线 >> 机械工程 >> 正文
最新热点
最新推荐
线切割机实现切割汉字的自动编程技术

线切割机实现切割汉字的自动编程技术


作者:光速在线    文章来源:中国科学院电工研究所    点击数:    更新时间:2007-9-17    

 
线切割机实现切割汉字的自动编程技术
1 引言 随着现代计算机和控制技术的发展,人们为线切割机装备了基于PC机且功能愈来愈强大的编程和控制系统,使线切割机的应用技术不断有新的发展。编程控制系统的发展是线切割加工技术发展的一个重要方面。对编程系统来讲,先是通过专用语言对待加工零件进行描述,然后转化为切割指令实现自动编程,后又把CAD技术引入编程中,从而实现了图形式输入方式,大大提高了编程效率和质量;在控制技术上,则从早期的开环控制过渡到了检测多个加工状态参数的自适应控制系统乃至模糊控制系统。 但直到现在,线切割机的应用范围还主要限制在机械零部件及模具的加工上,在线切割机上实现切割汉字可以说是一个空白。针对我国的国情,实现对汉字的切割既有现实的市场需求,又有广阔的应用前景。 在线切割机上进行加工,首先要通过编程系统将待加工零件转化为切割指令。为此要实现切割汉字的功能,也必须将要切割的汉字字形轮廓转化为切割指令。本文将从几个方面具体讲述在Windows操作系统的PC平台上,从TrueType字库中提取汉字字形轮廓,并将其转化为切割指令的自动编程技术。 2 字形轮廓的提取 要实现切割汉字首先要获得汉字字形轮廓,这涉及到如何从字库中提取汉字字形轮廓的问题。汉字的字体根据其实现形式的不同可分为点阵字体、矢量字体及TrueType字体等几种。其中使用最广泛的为TrueType字体,与其他字体相比,TrueType字体具有明显的优点: (1)它使用直线和曲线对字符进行描述,具有放大和缩小不变形的特点; (2)具有处理速度快及与设备无关的特点; (3)它是Windows系统所使用的最广泛的字体,因而Windows提供了大量的API函数来支持和处理这种字体,利用这些函数可方便地对TrueType字符进行各种处理,如旋转、变形等。 在TrueType字体中,字形轮廓是由一些直线和曲线的集合及一些对字体的描述信息所组成,这些直线和曲线定义了TrueType字体及符号的外形轮廓,而那些字体的描述信息则用来控制和调整直线的长度和曲线的形状,主要用来调整字形轮廓尺寸,使用这些描述信息可对TrueType字体或符号在保持其原始形状的情况下进行放大、缩小等处理。 Windows提供了许多函数来处理TrueType字体,其中与提取字形轮廓有关的最主要的函数为GetGlyphOutline,它可用来提取被选择到指令设备环境(如内存、显示设备等)的字符的轮廓或位图。在Windows API中,GetGlyphOutline函数声明如下: DWORD GetGlyphOutiline( HDC hdc,∥设备环境的句柄 UINT uChar,∥所要查询的字符 UINT uFormat,∥所要返回的数据类型 LPGLYPHMETRICS lpgm,∥指向字符规格结构的地址 DWORD cbBuffer,∥数据缓冲区的大小 LPVOLD lpvBuffer,∥数据缓冲区的地址 CONST MAT2*lpmat2,∥变换矩阵结构的地址); 其中的主要参数说明如下: uChar:指定所要查询的字符,对汉字来说是指汉字的编码,如:GB-2312和Unicode等编码。 uFormat:指定函数所要提取的数据的格式,可取下面一些值:GGO_ITMAP、GGO_NATIVE、GGO_METRICS、GGO_GRAY2_BITMAP、GGO_GRAY4_BITMAP、GGO_GRAY8_BITMAP。 对于提取字符的字形轮廓来说,由于只需得到字形轮廓的二值图象,不用得到灰度图象,因此uFormat参数可取两个值:GGO_BITMAP、GGO_NATIVE。如取GGO_BITMAP,函数将返回字符的字形轮廓位图;取GGO_NATIVE,函数将返回用来描述字符外形轮廓的曲线的点的数据,使用的单位是字体设计的单位,如uFormat参数取值为GGO_NATIVE,则任何lpmat2参数指定的变换矩阵将被忽略。由于可能需对提取出的字形轮廓作一定的变换处理(如:放大、缩小、旋转及改变纵、横比等),将参数uFormat的值设置为GGO_NATIVE。 调用GetGlyphOutline,函数将返回一系列的折线和样条曲线,返回的折线和曲线的信息存储在一个 TTPOLYGONHEADER结构及紧随其后的多个TTPOLYCURVE结构中,这些信息主要为描述折线和曲线所需的点的坐标,要描述字形轮廓须使用这些信息。上述两个结构中所有的点都以POINTFX结构形式返回,这些点描述的是绝对位置而不是相对位置。要描绘一个TrueType字符的字形轮廓,须同时使用折线和曲线。TTPOLYGONHEADER结构中的pfxStart成员返回字形的封闭轮廓的起始点,也是封闭轮廓的终

[1] [2] [3] [4] 下一页

 
 
  • 上一个文章:
  •  
  • 下一个文章:
  • 版权所有:光速在线 2007-2008 未经授权禁止盗用本站信息
    copyright © 2007-2008 www.Light163.com online services. all rights reserved.