劉紀凱, 趙慶志, 張林華, 張興武, 王宏甲
(山東理工大學機械工程學院,山東 淄博 255049)
斜面矢量漢字CAD/CAM研究與應用
劉紀凱, 趙慶志, 張林華, 張興武, 王宏甲
(山東理工大學機械工程學院,山東 淄博 255049)
提出了一種斜面矢量漢字的雕刻方法。根據相關文獻總結出水平面上漢字雕刻流程,再結合空間坐標旋轉矩陣與 C3連續的空間七次 Bezier擬合曲線得出斜面上漢字雕刻的流程。引入 OpenGL,實現圖形的任意旋轉、縮放、平移,增強人機交互。實驗結果表明,該方法編寫的軟件界面友好,具有很好的健壯性,生成的數控代碼在數控機床上運行穩定,達到了預期的效果,提高了斜面漢字的加工效率,降低了加工誤差。
數控代碼;CAD/CAM;斜面漢字雕刻;truetype字體;開放式圖形庫
漢字的數控雕刻在工業中應用廣泛,國內學者對漢字數控雕刻做了許多研究。由文獻[1-4]可知,學者們研究了漢字雕刻的許多方面,但大多在水平面域,個別涉及到曲面域,未涉及空間斜面域。在現實加工中,遇到在斜面上雕刻漢字時,需要將斜面旋轉使之平行于水平面,這極大降低了加工效率,增加了加工誤差,對于大型或異形工件甚至會出現裝夾不便的問題。鑒于此種情況,便對斜面上漢字雕刻的CAD/CAM做了研究。
綜合文獻[1-3]來看,水平面上的漢字雕刻流程(圖1)主要是:①獲取待加工字符,選取合適的矢量字庫,分析字體結構,獲取原始輪廓點。②用恰當的數學算法擬合出光滑的輪廓曲線,再得到擬合曲線上的點,為數控代碼的生成做準備。通過模擬圖形檢查所擬合的圖形是否達到預期的效果,若達到預期效果,則根據輪廓信息以及擬合的輪廓點來生成數控代碼。③將生成的數控代碼導入數控機床中加工。

圖1 水平面漢字雕刻
根據水平面矢量漢字雕刻流程,結合空間坐標變換矩陣以及 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類中畫圖了。
步驟1. 打開編寫的軟件(圖5),在待加工字符輸入框中輸入字符“”,或者通過“打開文件”按鈕,加載含有字符“”的txt文檔,按照圖6設置參數。
步驟2. 點擊“數據準備”按鈕,計算所需數據,再點擊“圖形模擬”按鈕生成模擬圖7,若圖形無誤則點擊“獲取代碼”按鈕,否則點擊“重置”返回參數設置界面重新設置參數。
步驟 3. 將獲取的代碼(圖 8)載入數控機床中進行加工。加工現場及加工完成的漢字如圖 9~11所示。

圖5 軟件界面

圖6 參數設置界面

圖7 模擬圖

圖8 數控代碼截圖
實驗證明,該方法編寫的軟件運行穩定,加工字體輪廓曲線光滑沒有蠕動現象并且字體沒有失真,數控代碼是可靠的、穩定的,達到了預期的效果。

圖9 加工現場

圖10 加工圖

圖11 局部放大圖
通過對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