三、 PLT文件
PLT文件源自于HP繪圖儀,在AutoCAD/R14版及CorlDraw軟件中可以見(jiàn)到(需要導(dǎo)出),其實(shí)基于此類設(shè)備的還有EPS的一種矢量格式,即EPS文件,在此不多描述。PLT的操作指令非常豐富,不過(guò)常用以下幾種指令就差不多夠了。
PA 到達(dá)指定的絕對(duì)位置
PU 抬筆動(dòng)作
PD 下筆動(dòng)作
SP 換筆動(dòng)作
AA 圓弧動(dòng)作
LB 文本路徑
PLT的操作碼格式有許多形式,如抬筆動(dòng)作:
PU10023 23402; 達(dá)到指令位置后抬筆
或 PU10023,23402;
或 PA10023,23402; PU;
還有就是PA指令:
PA1234 4567;(注意,兩個(gè)數(shù)值之間有空格或者’,’分隔符)
PA8324 2345;
或
PA1234,4567,8324,2345;(多坐標(biāo)放在一起)
一般而言,從CorlDraw或AutoCAD/R14版生成的PLT文件,其路徑大部分只包含PU,PA,PD,SP有效指令,且路徑已經(jīng)為最優(yōu)化的運(yùn)動(dòng)軌跡了(在此省去開(kāi)發(fā)人員對(duì)最短路徑的優(yōu)化處理,而DXF文件則需要根據(jù)工藝,需要再次優(yōu)化,因?yàn)樗穆窂脚c繪圖順序有關(guān),這樣有時(shí)頻繁編輯或修改出來(lái)的圖形路徑會(huì)非常紋亂,不適合直接加工處理,所以還需要開(kāi)發(fā)人員再次優(yōu)化路徑,以達(dá)到最好的加工軌跡)。
四、 BMP文件
以上介紹的圖形都屬于矢量文件,BMP作為圖像文件,幾乎在Window的圖像編程當(dāng)中,是路人皆知,其簡(jiǎn)單的文件結(jié)構(gòu)非常易理解,加上Microsoft的強(qiáng)大MSDN幫助,實(shí)在沒(méi)有贅述的必要。
在此,考慮到運(yùn)動(dòng)控制的計(jì)算必須與圖像尺寸進(jìn)行匹配,故還需要提示一下如何設(shè)定這種對(duì)應(yīng)關(guān)系的方法。實(shí)質(zhì)上,在激光位圖掃描或位圖雕刻時(shí),常需要這種關(guān)系設(shè)定,即多少像素對(duì)應(yīng)多少毫米。取得這個(gè)當(dāng)量關(guān)系很簡(jiǎn)單。
以Win98系統(tǒng)為例,點(diǎn)擊“開(kāi)始”菜單,選擇“程序”項(xiàng),進(jìn)入“附件”,選擇“畫(huà)圖”工具。
然后打開(kāi)你所需要的目標(biāo)文件,選擇菜單“圖像”的“屬性”項(xiàng),可以看到“單位”信息框中的幾個(gè)單選項(xiàng),我想,到此為止,稍微聰明一點(diǎn)的人,也許不用再指點(diǎn)什么東西了吧。
由于BMP文件實(shí)在是太普遍了,所以,幾乎所有的圖像處理軟件,看圖軟件都支持將其它圖像文件格式轉(zhuǎn)換成BMP文件格式,如大名鼎鼎的Photoshop及最好用的看圖軟件ACDSee。
#p#分頁(yè)標(biāo)題#e# 故其它的PCX,JPG,GIF,TGA,PIC圖像就不是什么問(wèn)題了。
五、 其它字體文件簡(jiǎn)介
Windows系統(tǒng)的字體文件結(jié)構(gòu)非常復(fù)雜,雖然只有兩種基本元素,即直線和BZ曲線,若想完成分析明白,還是要下一番苦功,好歹有一些偉大的作家將此事基本了解,可以參見(jiàn)一個(gè)華裔作家的《Window圖形圖像編程》,此書(shū)中對(duì)Window的字體作了全面的分析,且?guī)Ч獗P(pán),對(duì)拿來(lái)主義者將是最大的禮物了。
若沒(méi)辦法購(gòu)到此書(shū),也不是就絕人之路了,在CDC的對(duì)象內(nèi),有一套方法,可以取得所有繪圖的路徑,文字路徑就更不在話下了。
舉例:
1. 開(kāi)始路徑捕捉
CDC *pDC = GetDC();//自定義
pDC->BeginPath();
pDC->TextOut(0,0,”Hello, path!?”);//輸出想要的文字
pDC->EndPath();
是不是很簡(jiǎn)單呢
2. 還原路徑
在還原路徑之前,用戶還可以任意旋轉(zhuǎn),鏡像,錯(cuò)切路徑。
Int nCount = pDC->GetPath( NULL, NULL, 0 );
CPoint *pPoint = new CPoint[nCount];
char *pCtrl = new char[nCount];
for( int i (0); i
{
switch( pCtrl[i] ){//識(shí)別控制字,
case ….
}
}
delete []pCtrl;
delete []pPoint;
轉(zhuǎn)載請(qǐng)注明出處。