運動控制系統常用的圖形圖像文件格式簡述
以下我們簡介幾種常用于數控運動的文件格式,以幫助開發人員對此有個大概的理解,更好的把握項目的開發。
一、 CNC文件
CNC由國外流進,早期大量的應用于數控車銑床,故CNC包含的大量指令代碼都可以通過機械加工之類的雜志獲取,CNC以一種一統天下的海量囊括了所有運動控制動作。有很多指令,可以由用戶自行定義(這是威力所在),在國內有很多數控設備廠商,基本上都支持標準CNC代碼。如:成都廣泰。
CNC文件格式一般分為非壓縮格式及壓縮格式兩種,非壓縮格式其數制形式基本上直接以小數出現。
壓縮格式,數制有前省零,后省零兩種,實際數值還需要由整數位和小數位決定。
如非壓縮格式:
X123.456 即表示當前X數值為123.456
生成此格式的,常用工具有 MasterCAM、Pro/E等
壓縮格式:
X123456 (沒有小數點)
若以前零省,4位整數,3位小數,則X=0123.456 = 123.456
若以后零省,4位整數,3位小數,則X=1234.560 = 1234.56
生成此格式的,常見于PCB板繪圖工具,如:CAM350,V2000,V2001
Protel。
支持CNC標準的文件后綴名一般常見有:
.NC, .CNC, .TXT, .ROT, .GBR, .GBX, .ROU, .DRL等
以下列出CNC常用G代碼指令的含義:
G00 快速定位到有效位置
G01 直線插補
G02 順圓弧插補
G03 逆圓弧插補
G04 延時暫停
G05 鉆孔操作
G32 順銑整圓
G33 逆銑整圓
G40 取消讓刀(讓刀一般也稱作補償)
G41 開始左讓刀
G42 開始右讓刀
G84 鉆圓操作
G85 鉆槽操作
G90 絕對坐標系
G91 相對坐標系
G93 設定工作原點
以下列出CNC常用M代碼指令的含義:
M30 程序結束
M48 程序開始
M71 公制
M72 英制
M15 開始銑削
M16 結束銑削
模塊復制操作指令:
M25 塊頭
M01 塊尾
M02 塊操作開始
M08 塊操作結束
M70 XY交換
M80 X鏡像
M90 Y鏡像
R 重復排列指令
以上指令,有些有特定的格式,若有需要進一步深入分析,可來電話與我們聯系。
二、 DXF文件
DXF文件格式,常見的由AutoCAD, CorlDraw繪圖軟件生成。DXF具有不同的版本,開發人員在分析DXF文件時,需要注意這一點,DXF文件格式的詳細說明,可以到www.google.com網站上,輸入“ DXF文件格式”,即能找到相關的資料。
其操作碼的說明,非常之豐富,本人手頭的相關電子文檔有十幾頁之多,故在此簡單介紹幾種常元素。
1、 直線 LINE
2、 圓弧 ARC
3、 折線 LWPOLYLINE
4、 圓形 CIRCLE
5、 圓弧 ARC
6、 橢圓 ELLISPE
7、 BZ曲線 ELLIPSE
8、 文字(一般會自選SHX字體文件) MTEXT
DXF文件操作碼和數值在文件中各占一行,如:
10
100.000
20
100.000
30
0. 000
11
200.000
21
100.000
31
0.000
以上展示的是一條直線段,起點坐標為(100.000, 100.000, 0.000),終點坐標為(200.000,100.000,0.000)
三、 PLT文件
PLT文件源自于HP繪圖儀,在AutoCAD/R14版及CorlDraw軟件中可以見到(需要導出),其實基于此類設備的還有EPS的一種矢量格式,即EPS文件,在此不多描述。PLT的操作指令非常豐富,不過常用以下幾種指令就差不多夠了。
PA 到達指定的絕對位置
PU 抬筆動作
PD 下筆動作
SP 換筆動作
AA 圓弧動作
LB 文本路徑
PLT的操作碼格式有許多形式,如抬筆動作:
PU10023 23402; 達到指令位置后抬筆
或 PU10023,23402;
或 PA10023,23402; PU;
還有就是PA指令:
PA1234 4567;(注意,兩個數值之間有空格或者’,’分隔符)
PA8324 2345;
或
PA1234,4567,8324,2345;(多坐標放在一起)
一般而言,從CorlDraw或AutoCAD/R14版生成的PLT文件,其路徑大部分只包含PU,PA,PD,SP有效指令,且路徑已經為最優化的運動軌跡了(在此省去開發人員對最短路徑的優化處理,而DXF文件則需要根據工藝,需要再次優化,因為它的路徑與繪圖順序有關,這樣有時頻繁編輯或修改出來的圖形路徑會非常紋亂,不適合直接加工處理,所以還需要開發人員再次優化路徑,以達到最好的加工軌跡)。
四、 BMP文件
以上介紹的圖形都屬于矢量文件,BMP作為圖像文件,幾乎在Window的圖像編程當中,是路人皆知,其簡單的文件結構非常易理解,加上Microsoft的強大MSDN幫助,實在沒有贅述的必要。
在此,考慮到運動控制的計算必須與圖像尺寸進行匹配,故還需要提示一下如何設定這種對應關系的方法。實質上,在激光位圖掃描或位圖雕刻時,常需要這種關系設定,即多少像素對應多少毫米。取得這個當量關系很簡單。
以Win98系統為例,點擊“開始”菜單,選擇“程序”項,進入“附件”,選擇“畫圖”工具。
然后打開你所需要的目標文件,選擇菜單“圖像”的“屬性”項,可以看到“單位”信息框中的幾個單選項,我想,到此為止,稍微聰明一點的人,也許不用再指點什么東西了吧。
由于BMP文件實在是太普遍了,所以,幾乎所有的圖像處理軟件,看圖軟件都支持將其它圖像文件格式轉換成BMP文件格式,如大名鼎鼎的Photoshop及最好用的看圖軟件ACDSee。
故其它的PCX,JPG,GIF,TGA,PIC圖像就不是什么問題了。
五、 其它字體文件簡介
Windows系統的字體文件結構非常復雜,雖然只有兩種基本元素,即直線和BZ曲線,若想完成分析明白,還是要下一番苦功,好歹有一些偉大的作家將此事基本了解,可以參見一個華裔作家的《Window圖形圖像編程》,此書中對Window的字體作了全面的分析,且帶光盤,對拿來主義者將是最大的禮物了。
若沒辦法購到此書,也不是就絕人之路了,在CDC的對象內,有一套方法,可以取得所有繪圖的路徑,文字路徑就更不在話下了。
舉例:
1. 開始路徑捕捉
CDC *pDC = GetDC();//自定義
pDC->BeginPath();
pDC->TextOut(0,0,”Hello, path!?”);//輸出想要的文字
pDC->EndPath();
是不是很簡單呢
2. 還原路徑
在還原路徑之前,用戶還可以任意旋轉,鏡像,錯切路徑。
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] ){//識別控制字,
case ….
}
}
delete []pCtrl;
delete []pPoint;
對于AutoCAD的SHX字體,分析起來完全靠代碼處理,因此非常困難,若有這方面需求的用戶可直接與我們聯系。還有早期DOS系統下,TC2.0有BC3.1編譯環境還帶有一些CHR矢量字庫,用戶若有需求請聯系我們即可。
文章版權歸西部工控xbgk所有,未經許可不得轉載。