鄧光晉(深圳市盈瑞恒科技有限公司)
HPGL矢量圖形語言應(yīng)用于富怡服裝CAD軟件設(shè)計(jì)輸出的PLT文件中,而噴墨繪圖儀是富怡服裝CAD必須配置的硬件設(shè)備,主要用于CAD樣片紙樣輸出,排料圖輸出。
HPGL矢量圖形語言應(yīng)用于噴墨繪圖儀,具有打印速度不受圖形復(fù)雜程度的影響,只與儀器繪圖寬度有關(guān)的特點(diǎn),所以特別適合打印那些形狀比較復(fù)雜、線條較多的圖形。而且它是真正的連續(xù)打印,沒有段接口的問題,打印精度較高,不會(huì)產(chǎn)生錯(cuò)位的問題。
圖1為一個(gè)簡(jiǎn)單的圖形,使用富怡服裝設(shè)計(jì)放碼軟件生成HPGL語言的plt文件。
通過這個(gè)圖形,我們可以清楚地看到這個(gè)正方形的描述,生成plt文件:
見圖1。
IN;//初始化
SP1;//選擇筆號(hào)1
LT;//線型
PU40,57956;//抬筆移動(dòng)到(X:4,Y:57956),乘以0.025得到真實(shí)坐標(biāo)(X:0.1,Y:1448.9)
PD4,4;//落筆從上一坐標(biāo)點(diǎn)移至當(dāng)前坐標(biāo)點(diǎn)
PD180844,4;
PD180844,57956;
PD4,57956;
…………
將PLT格式的文件讀出,將線條保存進(jìn)鏈表,再在圖形顯示對(duì)話框上按相應(yīng)的比例畫出來。主要步驟流程如下所示:
將PLT文件中的線段保存在鏈表中,不用排序。
按圖形大小和顯示對(duì)話框大小算出畫圖比例。
按比例畫出鏈表中的線條。
見圖2。
生成位圖,取點(diǎn)陣
圖1
圖2
第一步:將PLT文件中的線段按X方向從小到大排列好。因?yàn)槲覀兩晌粓D時(shí)是按X方向一小段一小段生成的,因此在VC++中位圖是按X方向取點(diǎn)的。
以上圖為例,所取點(diǎn)陣為:
0xc0,0x00,0x00,0x03,0x60,0x00,0x00,0x06,0x30,0x00,0x00,0x0c……
第二步:將點(diǎn)陣數(shù)據(jù)高位和低位對(duì)調(diào),即第7位跟第0位對(duì)調(diào),第6位跟第1位對(duì)調(diào),以此類推。
以上圖為例,對(duì)調(diào)后的點(diǎn)陣為:
0x03,0x00,0x00,0xc0,0x06,0x00,0x00,0x60,0x0c,0x00,0x00,0x30……
第三步:將點(diǎn)陣數(shù)據(jù)按Y方向2字節(jié)一排排好。以上圖為例,排好后的數(shù)據(jù)為:
第一排:
0x03,0x00,0x06,0x00,0x0c,0x00,0x18,0x00,0x30,0x00,0x60,0x00,
0xc0,0x00,0x80,0x01,0x00,0x03,0x00,0x06,0x00,0x0c,0x00,0x18,
0x00,0x30,0x00,0x60,0x00,0xc0,0x00,0x80.
第二排:
0x00,0xc0,0x00,0x60,0x00,0x30,0x00,0x18,0x00,0x0c,0x00,0x06,
0x00,0x03,0x80,0x01,0xc0,0x00,0x60,x000,0x30,0x00,0x18,0x00,
0x0c,0x00,0x06,0x00,0x03,0x00,0x01,0x00.
未經(jīng)壓縮的數(shù)據(jù)流量非常大,而且圖形中大部分是空白,因此壓縮后的數(shù)據(jù)流量會(huì)大大減小。
壓縮方式采用自定義的簡(jiǎn)單壓縮方式壓縮數(shù)據(jù),如果壓縮方式復(fù)雜的話,雖然減小了數(shù)據(jù)流量,卻會(huì)增加繪圖儀解壓數(shù)據(jù)的時(shí)間。
壓縮后的數(shù)據(jù)格式為:數(shù)據(jù)個(gè)數(shù)+數(shù)據(jù)+數(shù)據(jù)個(gè)數(shù)+數(shù)據(jù)……
數(shù)據(jù)個(gè)數(shù)為相同數(shù)據(jù)的個(gè)數(shù)。需要注意的是,最大數(shù)據(jù)個(gè)數(shù)為255,超過255個(gè)相同數(shù)據(jù)就要分為兩次壓縮。即如果連續(xù)600個(gè)0x00的話,壓縮后的數(shù)據(jù)為:0xff,0x00,0xff,0x00,0x5a,0x00。
壓縮后,600字節(jié)的0x00就只有6個(gè)字節(jié)了。
通過網(wǎng)絡(luò)或者USB將壓縮后的數(shù)據(jù)傳輸?shù)絿娔L圖儀。
對(duì)于噴墨繪圖儀,只有簡(jiǎn)單的單軸運(yùn)動(dòng),沒有兩軸聯(lián)動(dòng)。
單向打?。簢婎^Y正方向打印一行——噴頭回原點(diǎn)——X軸走紙
雙向打印:噴頭Y正方向打印一行——X軸走紙——噴頭負(fù)方向打印一行——X軸走紙