APP下载

斜面矢量汉字CAD/CAM研究与应用

2016-11-29刘纪凯赵庆志张林华张兴武王宏甲

图学学报 2016年3期
关键词:斜面字符字体

刘纪凯, 赵庆志, 张林华, 张兴武, 王宏甲

(山东理工大学机械工程学院,山东 淄博 255049)

斜面矢量汉字CAD/CAM研究与应用

刘纪凯, 赵庆志, 张林华, 张兴武, 王宏甲

(山东理工大学机械工程学院,山东 淄博 255049)

提出了一种斜面矢量汉字的雕刻方法。根据相关文献总结出水平面上汉字雕刻流程,再结合空间坐标旋转矩阵与 C3连续的空间七次 Bezier拟合曲线得出斜面上汉字雕刻的流程。引入 OpenGL,实现图形的任意旋转、缩放、平移,增强人机交互。实验结果表明,该方法编写的软件界面友好,具有很好的健壮性,生成的数控代码在数控机床上运行稳定,达到了预期的效果,提高了斜面汉字的加工效率,降低了加工误差。

数控代码;CAD/CAM;斜面汉字雕刻;truetype字体;开放式图形库

汉字的数控雕刻在工业中应用广泛,国内学者对汉字数控雕刻做了许多研究。由文献[1-4]可知,学者们研究了汉字雕刻的许多方面,但大多在水平面域,个别涉及到曲面域,未涉及空间斜面域。在现实加工中,遇到在斜面上雕刻汉字时,需要将斜面旋转使之平行于水平面,这极大降低了加工效率,增加了加工误差,对于大型或异形工件甚至会出现装夹不便的问题。鉴于此种情况,便对斜面上汉字雕刻的CAD/CAM做了研究。

1 水平面矢量汉字雕刻

综合文献[1-3]来看,水平面上的汉字雕刻流程(图1)主要是:①获取待加工字符,选取合适的矢量字库,分析字体结构,获取原始轮廓点。②用恰当的数学算法拟合出光滑的轮廓曲线,再得到拟合曲线上的点,为数控代码的生成做准备。通过模拟图形检查所拟合的图形是否达到预期的效果,若达到预期效果,则根据轮廓信息以及拟合的轮廓点来生成数控代码。③将生成的数控代码导入数控机床中加工。

图1 水平面汉字雕刻

2 斜面矢量汉字雕刻CAD/CAM研究

根据水平面矢量汉字雕刻流程,结合空间坐标变换矩阵以及 Bezier曲线拟合,本文研究出了斜面矢量汉字雕刻的流程,如图2所示。

图2 斜面矢量汉字雕刻

2.1 分析矢量字体,提取原始轮廓点

由文献[5]可知,点阵化的汉字是无法满足连续雕刻要求的,故汉字必须是矢量化的。目前存在多种矢量字体,大体上可分为填充矢量字体(如type1、truetype font (TTF)、open type)和不填充矢量字体(如AutoCAD shape entity)。由于TTF字体丰富而美观在数控雕刻领域有着广泛的应用需求,所以本文选择TTF字体为研究对象,开发工具为VC6.0。

根据文献[3,6-7],利用 Microsoft提供的

函数,当参数uFormat的取值为GGO_NATIVE时,结 合 结 构 体 TTPOLYGONHEADER 与TTPOLYCURVE得到TTF字符的轮廓矢量数据。

2.2 将水平面轮廓点映射到空间斜面

规定在右手坐标系中,物体旋转的正方向是右手螺旋方向,即从该轴正半轴向原点看是逆时针方向。(x,y,z)绕 X轴旋转θ角得到(x1,y1,z1),即,(x,y,z)绕Z轴旋 转 β 角 得 到 (x2,y2,z2), 即。如图3所示,任意斜面上的点可由水平面上的点通过以下 3步变换而来:

步骤1. 使X、Y和Z轴绕Z轴旋转Φ角(0≤Φ ≤2π),得到X′、Y′和Z轴。变换矩阵为D:

步骤2. 使X′、Y′和Z轴绕X′轴旋转θ角(0≤θ ≤π),得到X′、Y″和Z′轴。变换矩阵为C:

步骤3. 使X′、Y″和Z′轴绕Z′轴旋转ψ角(0≤ψ≤2π),得到X″、Y′′和Z′轴。变换矩阵为B:

设点(x,y,z)映射后的坐标为(x1,y1,z1),则,(x1,y1,z1)=(x,y,z)A,A=BCD。因此xoy平面上的点(x,y,0)映射后的坐标为(x1,y1,z1)=(x,y,0)A。

自定义函数 FunObtainPoints()获取映射后斜面上轮廓点(x1,y1,z1)。设置关键字T、M,当提取点从一段连续曲线进入下一连续曲线时,将T置为0,表示抬刀;当点在连续曲线时,T置为1,表示加工。当结束时将 T换为 M,并置为 1。数据以“T(M)_X_Y_Z_”的形式存放到Points.dat文件中。

图3 坐标旋转

2.3 拟合轮廓曲线

一个TTF字符由折线和二次Bezier曲线描绘而成[3]。由文献[8]可知,七次Bezier曲线段是C3连续的,为使轮廓曲线保持原有形状且连续光滑,现将直线段和曲线段统一拟合成七次 Bezier曲线段,并且可以改善刀具的受力情况,使得刀具光滑地、“柔顺地”从一点移到另一点,提高加工表面质量和降低刀具磨损速度。

给定n + 1个空间向量Pi( i = 0,1,…, n),称n次参数曲线段为 Bezier曲线。, 0≤t≤1,其中 Bi, n( t)是 Bernstein基函数,即,当t在区间[0,1]上变动时,就产生了Bezier曲线。在空间曲线的情况下,曲线P(t)=(x(t), y(t), z(t))和控制顶点iP=(Xi, Yi, Zi)的关系用分量写出即为:X(t)=。

2.3.1 控制顶点的选取

七次Bezier曲线需要8个控制顶点,按如下规则选取。如图4所示,,,计算完此段,引入下一轮廓点P3时,令P0=CP7,P1=P2,P2=P3,按照上述方法获得新的控制点,以此类推,直至遍历完所有轮廓点。

图4 控制顶点的选取

2.3.2 获取拟合后的Bezier曲线轮廓点

自定义Bezier曲线函数void BezierCurve(float *X,float *Y,float *Z,int n,float t,float &Xnew,float &Ynew,float &Znew),X、Y、Z为控制点CP0~CP7的坐标值,n为Bezier曲线的次数,此处置为7,X new、Y new、Z new接收 t从 0到 1变化时(Δt=0.02)Bezier曲线上点的坐标值。

2.4 规划多行字符走刀路线,编制数控代码

在实际加工中,几段文字或几个文字一起加工,需要规划多行字符走刀路线。充分利用 TTF字体结构的特点,加入两个for循环嵌套,首先遍历所有行数,然后遍历每行所有字符,获取每个字符轮廓数据。当前一个字符加工结束时自动抬刀进入后一个字符的加工起点,实现多行TTF字符轮廓的连续加工。

字符轮廓雕刻主要运用G代码,当抬刀时用快速移动G00代码,当切削时用G01代码,校验关键字T的取值来选用G00还是G01。轮廓雕刻需要较高的转速,推荐主轴转速 S置为9000 r/m in(PVC板上加工),进给速度 F置为400 mm/m in。

设置寄存器m_X jc、m_Y jc、m_Zjc、m_deltaX、m_deltaY、m_deltaZ分别记录X、Y、Z、ΔX、ΔY、ΔZ 的实时值,以便实现绝对坐标和相对坐标下的编程,以满足不同的数控系统。

要注意的是,用 Bezier拟合曲线时,曲线只表达到图4的CP7点,要得到完整的代码还要表达出CP7-P2段。因为CP7-P2段为直线,所以用G01表达即可。

2.5 图形模拟

为了增强人机交互,为了能更直观的观察到图形模拟的情况,使微软基础类库 MFC与OpenGL(开放式图形库)相结合,构造一个可以实现图像移动、缩放、旋转的三维空间界面。首先,在VC6.0下搭建OpenGL环境。然后,封装一个OpenGL类COpenGL。最后,将此类映射到MFC对话框的某个静态控件上。配置完就可以在COpenGL类中画图了。

3 加工实例

步骤1. 打开编写的软件(图5),在待加工字符输入框中输入字符“”,或者通过“打开文件”按钮,加载含有字符“”的txt文档,按照图6设置参数。

步骤2. 点击“数据准备”按钮,计算所需数据,再点击“图形模拟”按钮生成模拟图7,若图形无误则点击“获取代码”按钮,否则点击“重置”返回参数设置界面重新设置参数。

步骤 3. 将获取的代码(图 8)载入数控机床中进行加工。加工现场及加工完成的汉字如图 9~11所示。

图5 软件界面

图6 参数设置界面

图7 模拟图

图8 数控代码截图

实验证明,该方法编写的软件运行稳定,加工字体轮廓曲线光滑没有蠕动现象并且字体没有失真,数控代码是可靠的、稳定的,达到了预期的效果。

图9 加工现场

图10 加工图

图11 局部放大图

4 结 论

通过对TTF字体的分析以及引入欧式空间坐标旋转和七次 Bezier保形曲线解决了斜面上矢量汉字的CAD/CAM,解决了因装夹产生的误差和费时问题,提高了加工效率和加工质量。又结合OpenGL增强了软件的人机交互性,使界面更加友好,不再死板。

[1] 沈媛媛. 矢量汉字数控切削加工的刀具路径规划原理与方法[D]. 大连: 大连理工大学, 2007.

[2] 陈俊涛. 平面域矢量汉字高速加工刀具路径规划[D].大连: 大连理工大学, 2009.

[3] 姚辉学, 付永忠, 殷苏民, 等. TrueType字体数控雕刻[J]. 工程图学学报, 2007, 28(5): 148-152.

[4] 李小军, 方江龙, 蒋知峰. TrueType字体中心骨架线提取算法研究[J]. 机械制造, 2010, 48(1): 19-21.

[5] 梅仕伟. 汉字雕刻数控代码自动生成系统研究[D]. 武汉: 武汉理工大学, 2011.

[6] Microsoft Corp. TrueType 1.0 front files technical specification V 1. 66 [S]. Washington: Microsoft Corporation press, 1995.

[7] 刘 蓉, 刘 明. 激光打标中 TrueType字体的轮廓提取与打标实现[J]. 计算机应用与软件, 2005, 22(7): 72-76.

[8] 王成伟. Ck连续的保形插值2k+1次样条函数[J]. 数值计算与计算机应用, 1997, 18(1): 1-7.

[9] 徐 甜, 刘凌霞. Bezier曲线的算法描述及其程序实现[J]. 安阳师范学院学报, 2006, (5): 49-52.

The Research and App lication on CAD/CAM of the Chinese Character on Inclined Plane

Liu Jikai, Zhao Qingzhi, Zhang Linhua, Zhang Xingwu, Wang Hongjia

(School of Mechanical Engineering, Shandong University of Technology, Zibo Shandong 255049, China)

A method that vector characters are carved in the inclined plane is proposed in the paper. The processes of characters carved in the inclined plane include the process of characters carved in the horizontal plane according to the relevant papers, rotation matrix in the spatial coordinate and the 7thBezier curve fitting on the basis of C3continuous space. OpenGL can realize the arbitrary rotation, zoom and pan of graphics, enhancing the human-computer interaction. According to the experiments, we can find out the software interface is friendly and has good robustness in this method. NC code can be run stably on CNC machine to achieved the desired effect. That w ill improve the processing efficiency of characters carved in the inclined plane and reduce the processing errors.

NC code; CAD/CAM; character carving on inclined plane; truetype font; OpenGL

TP 391.7

10.11996/JG.j.2095-302X.2016030400

A

2095-302X(2016)03-0400-05

2015-10-28;定稿日期:2015-11-07

刘纪凯(1988−),男,山东滨州人,硕士研究生。主要研究方向为数控技术与装备。E-mail:1966248579@qq.com

赵庆志(1962−),男,山东日照人,教授,博士。主要研究方向为数控技术与装备、特种加工CAD/CAM。E-mail:zhaoqzme@163.com

猜你喜欢

斜面字符字体
斜面之上探动能
巧用“相对”求解光滑斜面体问题
对一个平抛与斜面结合问题的探析
论高级用字阶段汉字系统选择字符的几个原则
字体的产生
字符代表几
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画
组合字体
《机械能及其守恒定律》错题典析