国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

斜面矢量漢字CAD/CAM研究與應(yīng)用

2016-11-29 06:20:19劉紀(jì)凱趙慶志張林華張興武王宏甲
圖學(xué)學(xué)報 2016年3期
關(guān)鍵詞:斜面字符字體

劉紀(jì)凱, 趙慶志, 張林華, 張興武, 王宏甲

(山東理工大學(xué)機(jī)械工程學(xué)院,山東 淄博 255049)

斜面矢量漢字CAD/CAM研究與應(yīng)用

劉紀(jì)凱, 趙慶志, 張林華, 張興武, 王宏甲

(山東理工大學(xué)機(jī)械工程學(xué)院,山東 淄博 255049)

提出了一種斜面矢量漢字的雕刻方法。根據(jù)相關(guān)文獻(xiàn)總結(jié)出水平面上漢字雕刻流程,再結(jié)合空間坐標(biāo)旋轉(zhuǎn)矩陣與 C3連續(xù)的空間七次 Bezier擬合曲線得出斜面上漢字雕刻的流程。引入 OpenGL,實現(xiàn)圖形的任意旋轉(zhuǎn)、縮放、平移,增強人機(jī)交互。實驗結(jié)果表明,該方法編寫的軟件界面友好,具有很好的健壯性,生成的數(shù)控代碼在數(shù)控機(jī)床上運行穩(wěn)定,達(dá)到了預(yù)期的效果,提高了斜面漢字的加工效率,降低了加工誤差。

數(shù)控代碼;CAD/CAM;斜面漢字雕刻;truetype字體;開放式圖形庫

漢字的數(shù)控雕刻在工業(yè)中應(yīng)用廣泛,國內(nèi)學(xué)者對漢字?jǐn)?shù)控雕刻做了許多研究。由文獻(xiàn)[1-4]可知,學(xué)者們研究了漢字雕刻的許多方面,但大多在水平面域,個別涉及到曲面域,未涉及空間斜面域。在現(xiàn)實加工中,遇到在斜面上雕刻漢字時,需要將斜面旋轉(zhuǎn)使之平行于水平面,這極大降低了加工效率,增加了加工誤差,對于大型或異形工件甚至?xí)霈F(xiàn)裝夾不便的問題。鑒于此種情況,便對斜面上漢字雕刻的CAD/CAM做了研究。

1 水平面矢量漢字雕刻

綜合文獻(xiàn)[1-3]來看,水平面上的漢字雕刻流程(圖1)主要是:①獲取待加工字符,選取合適的矢量字庫,分析字體結(jié)構(gòu),獲取原始輪廓點。②用恰當(dāng)?shù)臄?shù)學(xué)算法擬合出光滑的輪廓曲線,再得到擬合曲線上的點,為數(shù)控代碼的生成做準(zhǔn)備。通過模擬圖形檢查所擬合的圖形是否達(dá)到預(yù)期的效果,若達(dá)到預(yù)期效果,則根據(jù)輪廓信息以及擬合的輪廓點來生成數(shù)控代碼。③將生成的數(shù)控代碼導(dǎo)入數(shù)控機(jī)床中加工。

圖1 水平面漢字雕刻

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

根據(jù)水平面矢量漢字雕刻流程,結(jié)合空間坐標(biāo)變換矩陣以及 Bezier曲線擬合,本文研究出了斜面矢量漢字雕刻的流程,如圖2所示。

圖2 斜面矢量漢字雕刻

2.1 分析矢量字體,提取原始輪廓點

由文獻(xiàn)[5]可知,點陣化的漢字是無法滿足連續(xù)雕刻要求的,故漢字必須是矢量化的。目前存在多種矢量字體,大體上可分為填充矢量字體(如type1、truetype font (TTF)、open type)和不填充矢量字體(如AutoCAD shape entity)。由于TTF字體豐富而美觀在數(shù)控雕刻領(lǐng)域有著廣泛的應(yīng)用需求,所以本文選擇TTF字體為研究對象,開發(fā)工具為VC6.0。

根據(jù)文獻(xiàn)[3,6-7],利用 Microsoft提供的

函數(shù),當(dāng)參數(shù)uFormat的取值為GGO_NATIVE時,結(jié) 合 結(jié) 構(gòu) 體 TTPOLYGONHEADER 與TTPOLYCURVE得到TTF字符的輪廓矢量數(shù)據(jù)。

2.2 將水平面輪廓點映射到空間斜面

規(guī)定在右手坐標(biāo)系中,物體旋轉(zhuǎn)的正方向是右手螺旋方向,即從該軸正半軸向原點看是逆時針方向。(x,y,z)繞 X軸旋轉(zhuǎn)θ角得到(x1,y1,z1),即,(x,y,z)繞Z軸旋 轉(zhuǎn) β 角 得 到 (x2,y2,z2), 即。如圖3所示,任意斜面上的點可由水平面上的點通過以下 3步變換而來:

步驟1. 使X、Y和Z軸繞Z軸旋轉(zhuǎn)Φ角(0≤Φ ≤2π),得到X′、Y′和Z軸。變換矩陣為D:

步驟2. 使X′、Y′和Z軸繞X′軸旋轉(zhuǎn)θ角(0≤θ ≤π),得到X′、Y″和Z′軸。變換矩陣為C:

步驟3. 使X′、Y″和Z′軸繞Z′軸旋轉(zhuǎn)ψ角(0≤ψ≤2π),得到X″、Y′′和Z′軸。變換矩陣為B:

設(shè)點(x,y,z)映射后的坐標(biāo)為(x1,y1,z1),則,(x1,y1,z1)=(x,y,z)A,A=BCD。因此xoy平面上的點(x,y,0)映射后的坐標(biāo)為(x1,y1,z1)=(x,y,0)A。

自定義函數(shù) FunObtainPoints()獲取映射后斜面上輪廓點(x1,y1,z1)。設(shè)置關(guān)鍵字T、M,當(dāng)提取點從一段連續(xù)曲線進(jìn)入下一連續(xù)曲線時,將T置為0,表示抬刀;當(dāng)點在連續(xù)曲線時,T置為1,表示加工。當(dāng)結(jié)束時將 T換為 M,并置為 1。數(shù)據(jù)以“T(M)_X_Y_Z_”的形式存放到Points.dat文件中。

圖3 坐標(biāo)旋轉(zhuǎn)

2.3 擬合輪廓曲線

一個TTF字符由折線和二次Bezier曲線描繪而成[3]。由文獻(xiàn)[8]可知,七次Bezier曲線段是C3連續(xù)的,為使輪廓曲線保持原有形狀且連續(xù)光滑,現(xiàn)將直線段和曲線段統(tǒng)一擬合成七次 Bezier曲線段,并且可以改善刀具的受力情況,使得刀具光滑地、“柔順地”從一點移到另一點,提高加工表面質(zhì)量和降低刀具磨損速度。

給定n + 1個空間向量Pi( i = 0,1,…, n),稱n次參數(shù)曲線段為 Bezier曲線。, 0≤t≤1,其中 Bi, n( t)是 Bernstein基函數(shù),即,當(dāng)t在區(qū)間[0,1]上變動時,就產(chǎn)生了Bezier曲線。在空間曲線的情況下,曲線P(t)=(x(t), y(t), z(t))和控制頂點iP=(Xi, Yi, Zi)的關(guān)系用分量寫出即為:X(t)=。

2.3.1 控制頂點的選取

七次Bezier曲線需要8個控制頂點,按如下規(guī)則選取。如圖4所示,,,計算完此段,引入下一輪廓點P3時,令P0=CP7,P1=P2,P2=P3,按照上述方法獲得新的控制點,以此類推,直至遍歷完所有輪廓點。

圖4 控制頂點的選取

2.3.2 獲取擬合后的Bezier曲線輪廓點

自定義Bezier曲線函數(shù)void BezierCurve(float *X,float *Y,float *Z,int n,float t,float &Xnew,float &Ynew,float &Znew),X、Y、Z為控制點CP0~CP7的坐標(biāo)值,n為Bezier曲線的次數(shù),此處置為7,X new、Y new、Z new接收 t從 0到 1變化時(Δt=0.02)Bezier曲線上點的坐標(biāo)值。

2.4 規(guī)劃多行字符走刀路線,編制數(shù)控代碼

在實際加工中,幾段文字或幾個文字一起加工,需要規(guī)劃多行字符走刀路線。充分利用 TTF字體結(jié)構(gòu)的特點,加入兩個for循環(huán)嵌套,首先遍歷所有行數(shù),然后遍歷每行所有字符,獲取每個字符輪廓數(shù)據(jù)。當(dāng)前一個字符加工結(jié)束時自動抬刀進(jìn)入后一個字符的加工起點,實現(xiàn)多行TTF字符輪廓的連續(xù)加工。

字符輪廓雕刻主要運用G代碼,當(dāng)抬刀時用快速移動G00代碼,當(dāng)切削時用G01代碼,校驗關(guān)鍵字T的取值來選用G00還是G01。輪廓雕刻需要較高的轉(zhuǎn)速,推薦主軸轉(zhuǎn)速 S置為9000 r/m in(PVC板上加工),進(jìn)給速度 F置為400 mm/m in。

設(shè)置寄存器m_X jc、m_Y jc、m_Zjc、m_deltaX、m_deltaY、m_deltaZ分別記錄X、Y、Z、ΔX、ΔY、ΔZ 的實時值,以便實現(xiàn)絕對坐標(biāo)和相對坐標(biāo)下的編程,以滿足不同的數(shù)控系統(tǒng)。

要注意的是,用 Bezier擬合曲線時,曲線只表達(dá)到圖4的CP7點,要得到完整的代碼還要表達(dá)出CP7-P2段。因為CP7-P2段為直線,所以用G01表達(dá)即可。

2.5 圖形模擬

為了增強人機(jī)交互,為了能更直觀的觀察到圖形模擬的情況,使微軟基礎(chǔ)類庫 MFC與OpenGL(開放式圖形庫)相結(jié)合,構(gòu)造一個可以實現(xiàn)圖像移動、縮放、旋轉(zhuǎn)的三維空間界面。首先,在VC6.0下搭建OpenGL環(huán)境。然后,封裝一個OpenGL類COpenGL。最后,將此類映射到MFC對話框的某個靜態(tài)控件上。配置完就可以在COpenGL類中畫圖了。

3 加工實例

步驟1. 打開編寫的軟件(圖5),在待加工字符輸入框中輸入字符“”,或者通過“打開文件”按鈕,加載含有字符“”的txt文檔,按照圖6設(shè)置參數(shù)。

步驟2. 點擊“數(shù)據(jù)準(zhǔn)備”按鈕,計算所需數(shù)據(jù),再點擊“圖形模擬”按鈕生成模擬圖7,若圖形無誤則點擊“獲取代碼”按鈕,否則點擊“重置”返回參數(shù)設(shè)置界面重新設(shè)置參數(shù)。

步驟 3. 將獲取的代碼(圖 8)載入數(shù)控機(jī)床中進(jìn)行加工。加工現(xiàn)場及加工完成的漢字如圖 9~11所示。

圖5 軟件界面

圖6 參數(shù)設(shè)置界面

圖7 模擬圖

圖8 數(shù)控代碼截圖

實驗證明,該方法編寫的軟件運行穩(wěn)定,加工字體輪廓曲線光滑沒有蠕動現(xiàn)象并且字體沒有失真,數(shù)控代碼是可靠的、穩(wěn)定的,達(dá)到了預(yù)期的效果。

圖9 加工現(xiàn)場

圖10 加工圖

圖11 局部放大圖

4 結(jié) 論

通過對TTF字體的分析以及引入歐式空間坐標(biāo)旋轉(zhuǎn)和七次 Bezier保形曲線解決了斜面上矢量漢字的CAD/CAM,解決了因裝夾產(chǎn)生的誤差和費時問題,提高了加工效率和加工質(zhì)量。又結(jié)合OpenGL增強了軟件的人機(jī)交互性,使界面更加友好,不再死板。

[1] 沈媛媛. 矢量漢字?jǐn)?shù)控切削加工的刀具路徑規(guī)劃原理與方法[D]. 大連: 大連理工大學(xué), 2007.

[2] 陳俊濤. 平面域矢量漢字高速加工刀具路徑規(guī)劃[D].大連: 大連理工大學(xué), 2009.

[3] 姚輝學(xué), 付永忠, 殷蘇民, 等. TrueType字體數(shù)控雕刻[J]. 工程圖學(xué)學(xué)報, 2007, 28(5): 148-152.

[4] 李小軍, 方江龍, 蔣知峰. TrueType字體中心骨架線提取算法研究[J]. 機(jī)械制造, 2010, 48(1): 19-21.

[5] 梅仕偉. 漢字雕刻數(shù)控代碼自動生成系統(tǒng)研究[D]. 武漢: 武漢理工大學(xué), 2011.

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

[7] 劉 蓉, 劉 明. 激光打標(biāo)中 TrueType字體的輪廓提取與打標(biāo)實現(xiàn)[J]. 計算機(jī)應(yīng)用與軟件, 2005, 22(7): 72-76.

[8] 王成偉. Ck連續(xù)的保形插值2k+1次樣條函數(shù)[J]. 數(shù)值計算與計算機(jī)應(yīng)用, 1997, 18(1): 1-7.

[9] 徐 甜, 劉凌霞. Bezier曲線的算法描述及其程序?qū)崿F(xiàn)[J]. 安陽師范學(xué)院學(xué)報, 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

劉紀(jì)凱(1988?),男,山東濱州人,碩士研究生。主要研究方向為數(shù)控技術(shù)與裝備。E-mail:1966248579@qq.com

趙慶志(1962?),男,山東日照人,教授,博士。主要研究方向為數(shù)控技術(shù)與裝備、特種加工CAD/CAM。E-mail:zhaoqzme@163.com

猜你喜歡
斜面字符字體
尋找更強的字符映射管理器
斜面之上探動能
巧用“相對”求解光滑斜面體問題
巧用“相對”求解光滑斜面體問題
字體的產(chǎn)生
字符代表幾
一種USB接口字符液晶控制器設(shè)計
電子制作(2019年19期)2019-11-23 08:41:50
消失的殖民村莊和神秘字符
一題多變 搞定斜面上的運動
組合字體
灵石县| 绍兴县| 德阳市| 镇康县| 桐柏县| 逊克县| 介休市| 泾阳县| 武夷山市| 昌江| 瑞金市| 双江| 丽水市| 湛江市| 财经| 霍林郭勒市| 北海市| 石河子市| 大港区| 花莲市| 左云县| 高阳县| 喀喇| 岐山县| 岳阳县| 南雄市| 阿城市| 正定县| 攀枝花市| 邵东县| 昭苏县| 招远市| 屯留县| 贺州市| 朝阳县| 永胜县| 新竹市| 伊宁县| 沧州市| 容城县| 东乌|