999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

數控加工G代碼程序圖形點位信息提取算法

2019-09-25 06:08:11梁子財
科技視界 2019年21期

梁子財

【摘 要】由于零件結構、加工工藝日益復雜,數控加工G代碼程序的質量成為影響加工質量和效率的重要因素。如今數控技術與計算機仿真技術相結合,技術人員可以利用相關的G代碼仿真加工軟件對G代碼的加工效果和正確性進行驗證,而無需進行機床試加工,省時省材。針對G代碼仿真加工軟件的開發,關鍵在于正確提取G代碼程序中的點位信息。因此本文基于Qt平臺提出一種數控加工G代碼程序圖形點位信息提取算法。

【關鍵詞】Qt;圖形點位信息;G代碼;G代碼程序加工仿真;算法

中圖分類號: TP311.5 文獻標識碼: A 文章編號: 2095-2457(2019)21-0049-003

DOI:10.19694/j.cnki.issn2095-2457.2019.21.022

Graphic Point Information Extraction Algorithm for NC Machining G Code Program

LIANG Zi-cai

(China-EU Institute for Clean And Renewable Energy , Wuhan ?Hubei 430074,China)

【Abstract】Due to the increasingly complex structure and processing technology, the quality of CNC machining G code programs has become an important factor affecting the quality and efficiency of machining. Nowadays, the combination of numerical control technology and computer simulation technology, technicians can use the relevant G code simulation processing software to verify the processing effect and correctness of G code, without the need for machine tool trial processing, saving time and materials. For the development of G code simulation processing software, the key is to correctly extract the point information in the G code program. Therefore, based on Qt platform, this paper proposes a graphics point information extraction algorithm for NC machining G code program.

【Key words】Qt; Graphic point information; G code; G code program processing simulation; Algorithm

0 引言

由于零件結構、加工工藝日益復雜,數控加工G代碼程序的質量成為影響加工質量和效率的重要因素。數控加工G代碼程序包含加工所需的所有信息,指導數控機床加工工作[1]。以往多采用試切法檢測數控加工G代碼的正確性[2],但是這種方法往往因為數控程序錯誤引起的刀具碰撞損壞[3],工件浪費等。因此,人們通過運用計算機仿真技術提前驗證G代碼的準確性[4],既可縮短開發周期,又可減少材料浪費。

針對G代碼仿真加工軟件的開發,關鍵在于正確提取G代碼程序中的點位信息。筆者基于Qt平臺提出一種數控加工G代碼程序圖形點位信息提取算法。

1 G代碼程序的譯碼

在提取數控加工G代碼程序中的加工點位信息之前,需要對G代碼程序進行譯碼,對G代碼進行詞法語法錯誤檢測,再將加工命令和坐標分類保存到相應的數據存儲容器,數據存儲容器定義如下所示:

typedef struct

{QStringList drawtype;//繪圖類型:直線,圓弧

QStringList codetype;//編程類型:增量式,絕對式

QStringList xcoor;//X值

QStringList ycoor;//Y值

QStringList zcoor;//Z值

QStringList icoor;//I值

QStringList jcoor;//J值

QStringList kcoor;//K值

QStringList rcoor;//R值

QStringList current_line;//軌跡當前加工行號

}scan_data;

在對G代碼程序進行譯碼之前,需要對每行代碼中的注釋內容進行屏蔽,之后再對每行代碼的有效信息進行解析。具體流程如圖1所示。譯碼過程比較重要的幾個步驟是去掉注釋內容、詞法錯誤檢查、語法錯誤檢查和字符分類。

去掉注釋內容。數控加工G代碼中有部分文本是注釋內容,這些注釋內容并不蘊含有效加工數據,因此無需進行后續處理,因此需要提前屏蔽掉。

詞法錯誤檢查。根據數控加工G代碼的編程標準,判別G代碼中的字符是否符合編程要求。實現的思路為:首先建立代碼關鍵字符集,然后逐個讀入G代碼中的字符,判斷它是否屬于關鍵字符集。如果不在則說明程序使用了系統不能識別的指令,給出錯誤信息,指出錯誤所在行;如果該字符屬于字符集則繼續讀入下一個字符。

語法錯誤檢查。將數控G代碼的單詞按各類語法規則進行分析,并進行語句的語法正確性和不同語句之間的相容性檢查。歸納起來,數控代碼中要檢查的語法錯誤主要有指令搭配錯誤、指令順序錯誤和指令格式錯誤。

字符分類。經過詞法錯誤檢查和語法錯誤檢查之后,需要對G代碼進行加工命令和坐標分類保存到相應的數據存儲容器,后續將進行坐標點細分工作。

2 G代碼程序點位信息的提取

在完成數控加工G代碼程序的譯碼工作之后,G代碼的加工命令和坐標分類保存到數據存儲容器,但是不能直接使用這些數據繪制出加工圖像。因此需要根據不同類型的命令和坐標點進行進一步的點位信息提取,其具體流程如圖2所示。

2.1 直線類型

快速定位G00和直線插補G01這兩種類型比較簡單,不需要什么判斷,直接細分即可。細分方法是:先求起點(old_x, old_y, old_z)和終點(new_x, new_y, new_z)之間的距離,然后細分count(自定義細分段數量)段,然后取點 ,代碼如下:

for (int i = 0;i < count+1;i++) {

//計算點坐標

x_pos = old_x + ((i) * (new_x - old_x)) / count;

y_pos = old_y + ((i) * (new_y - old_y)) / count;

z_pos = old_z + ((i) * (new_z - old_z)) / count;

//存儲點坐標

draw_Data.tool_pos_x.append(QString::number(x_pos));

draw_Data.tool_pos_y.append(QString::number(y_pos));

draw_Data.tool_pos_z.append(QString::number(z_pos));

}

2.2 圓弧類型

相比之下,繪制圓弧則比較復雜。G代碼編程繪制圓弧有兩種類型,一種是IJK模式,另一種是R模式。IJK模式給出了圓點和半徑,R模式給出了半徑和圓弧的圓心角,兩種模式都需要判斷圓弧所在平面(XY,YZ,ZX三個之一)。以下分別細講這兩種圓弧類型的實現過程。

2.2.1 IJK類型圓弧

IJK類型下,已知圓弧起點、圓弧終點、半徑和圓心,如果要實現圓弧的繪制則需將圓弧細分成最夠小的直線段,只要細分段數足夠大,繪制出來的圖形就接近圓弧。大致流程如圖3所示。

確定起點和終點相對于圓心的象限示意如下:

左邊為逆時針繪圖,右邊為順時針繪圖。之后根據起點和終點所在的象限求其相對于圓心的角度,如圖5所示。

求完angle和angle1之后,就可以進行細分了,順時針細分如下:

for (int i=0;i

p4.x=center_point.x+Ra*cos(angle1-(angle*i)/count);

p4.y=center_point.y+Ra*sin(angle1-(angle*i)/count);

draw_Data.tool_pos_x.append(QString::number(p4.x));

draw_Data.tool_pos_y.append(QString::number(p4.y));

}

逆時針細分如下:

for (int i=0;i

p4.x=center_point.x+Ra*cos(angle1+(angle*i)/count);

p4.y=center_point.y+Ra*sin(angle1+(angle*i)/count);

draw_Data.tool_pos_x.append(QString::number(p4.x));

draw_Data.tool_pos_y.append(QString::number(p4.y));}

2.2.2 R型圓弧

R型圓弧下,已知起點和終點,半徑和圓心角,但是不知圓心是哪個,有兩種可能的情況,如圖6所示。因此需要先判斷出哪個是圓心。

因此R型圓弧需要先判斷圓心然后再細分求位置點,流程如圖7所示。

R型圓弧的情況下,也需要計算起點相對于圓心的起始角度angle1與圓弧圓心角angle然后再細分(與IJK類型細分一致)。

3 總結

筆者利用Qt平臺與OpenGL庫開發了一款針對數控加工G代碼程序的三維加工仿真軟件,該軟件能夠根據加載的G代碼程序提取加工圖像點位信息并繪制加工圖像并且可以模擬刀具的加工,同時可以檢測G代碼程序的錯誤并給出錯誤信息,方便用戶提前驗證G代碼的可行性。通過使用該軟件,技術人員無需試加工就可以驗證G代碼的加工效果,減少資源浪費與縮短開發周期。

【參考文獻】

[1]潘海鴻,葉文海,陳琳,et al.特種復合加工中心數控系統G代碼編譯器設計[J].組合機床與自動化加工技術,2015(6):71-73.

[2]婁志超,趙先鋒,史紅艷,et al.基于OpenGL車削仿真系統的開發與研究[J].現代機械,2018,No.204(02):19-23.

[3]劉思勝,李松生,陳萍.數控G代碼解釋器和仿真模塊的設計與實現[J].機械設計與制造,2012(1):172-174.

[4]李春雷.虛擬數控車削加工誤差建模技術研究[J].機械工程與自動化,2011(4):35-36.

主站蜘蛛池模板: 亚洲欧美一区二区三区图片| 国产又爽又黄无遮挡免费观看 | 国产a网站| 直接黄91麻豆网站| 亚洲AV无码久久精品色欲| 狠狠久久综合伊人不卡| 午夜精品一区二区蜜桃| 韩日免费小视频| 国产精品亚洲а∨天堂免下载| 91福利免费| 2020久久国产综合精品swag| 91年精品国产福利线观看久久| 国产二级毛片| 亚洲无码电影| 亚洲成人www| 国产网友愉拍精品| 亚洲专区一区二区在线观看| 亚洲天堂视频在线免费观看| 无码又爽又刺激的高潮视频| 真实国产乱子伦视频| 国产91小视频在线观看| 国产美女主播一级成人毛片| 国产系列在线| 露脸一二三区国语对白| 91视频区| 国产靠逼视频| 亚洲欧美另类久久久精品播放的| 四虎影视库国产精品一区| 综合人妻久久一区二区精品| 青青青国产视频手机| 久热中文字幕在线| 免费高清a毛片| 在线观看国产精品一区| 国产福利一区在线| 亚洲三级a| 日韩美女福利视频| 中文字幕在线视频免费| 国产欧美日韩视频一区二区三区| 精品无码一区二区在线观看| 国产一区二区三区免费观看| 亚洲国产精品VA在线看黑人| 真实国产乱子伦高清| 色有码无码视频| 欧美国产日韩在线| 日韩一级二级三级| 在线日韩日本国产亚洲| 欧美在线视频a| 久久亚洲美女精品国产精品| 熟妇人妻无乱码中文字幕真矢织江| 欧美在线免费| 色天堂无毒不卡| 又猛又黄又爽无遮挡的视频网站| 国产成人精品在线1区| 在线精品亚洲国产| 在线看AV天堂| 午夜精品影院| 国产一区在线观看无码| 国产精品成人免费综合| 成人福利视频网| 亚洲欧美成人在线视频| 精品视频在线观看你懂的一区| 人人艹人人爽| 国产老女人精品免费视频| 无码国产偷倩在线播放老年人| 伊人成人在线视频| 午夜毛片免费观看视频 | 亚洲综合久久成人AV| 91香蕉视频下载网站| 99久久成人国产精品免费| 欧美午夜网站| 丝袜久久剧情精品国产| 国产超碰一区二区三区| 一级毛片在线播放免费| 欧美高清国产| 国产原创第一页在线观看| 成人va亚洲va欧美天堂| 性视频一区| 亚洲欧美日韩中文字幕一区二区三区 | 中文字幕有乳无码| 日韩精品亚洲人旧成在线| 国产精品区视频中文字幕| 亚洲精品视频在线观看视频|