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

?

基于Qt的數(shù)控加工G代碼程序編輯器開(kāi)發(fā)

2019-10-09 05:48梁子財(cái)
電子技術(shù)與軟件工程 2019年17期
關(guān)鍵詞:編輯器譯碼字符

文/梁子財(cái)

1 引言

眾所周知,數(shù)控機(jī)床作為制造業(yè)領(lǐng)域的工作母機(jī),它在國(guó)民生產(chǎn)中占據(jù)著非常高的地位。一個(gè)國(guó)家的數(shù)控機(jī)床市場(chǎng)生產(chǎn)產(chǎn)量的大小、質(zhì)量水平的高低,是衡量其制造業(yè)水平、科技發(fā)展水平和經(jīng)濟(jì)發(fā)展水平的重要指標(biāo)。數(shù)控G代碼是機(jī)床加工零件的依據(jù),因此G代碼的編寫(xiě)質(zhì)量直接影響著機(jī)床加工質(zhì)量。

數(shù)控加工G代碼蘊(yùn)含著零件加工的幾何形狀、尺寸、工藝要求等繁雜信息,無(wú)論是手動(dòng)編程還是自動(dòng)編程,都容易出現(xiàn)意料之外的錯(cuò)誤。如果忽略這些錯(cuò)誤,輕者造成使加工失敗,造成材料浪費(fèi),重則損壞機(jī)床,造成人員傷亡。因此數(shù)控加工G代碼必須經(jīng)過(guò)驗(yàn)證才可進(jìn)行實(shí)際生產(chǎn)。

筆者利用Qt平臺(tái)開(kāi)發(fā)了一款針對(duì)數(shù)控加工G代碼程序的專(zhuān)用編輯器,該編輯器能夠讀取已有G代碼程序進(jìn)行編輯或者新建G代碼程序,同時(shí)編輯器內(nèi)嵌G代碼程序譯碼模塊可以檢測(cè)G代碼程序的錯(cuò)誤并標(biāo)記,方便用戶對(duì)數(shù)控加工G代碼進(jìn)行編輯,從而減少技術(shù)人員的工作量與提高G代碼程序的準(zhǔn)確性。

圖1:編輯器的系統(tǒng)結(jié)構(gòu)圖

圖2:編輯器的軟件界面

2 軟件的總體設(shè)計(jì)

數(shù)控加工G代碼程序?qū)S镁庉嬈髦饕刹僮髂K和譯碼模塊兩部分組成,如圖1所示。通過(guò)操作模塊和譯碼模塊的有機(jī)組合與協(xié)作,從而實(shí)現(xiàn)對(duì)數(shù)控加工G代碼的編輯與校驗(yàn)。

操作模塊:操作模塊主要有兩個(gè)功能:顯示功能和操作功能。顯示功能實(shí)現(xiàn)G代碼的顯示、行號(hào)顯示、命令符與數(shù)字的對(duì)比顯示;操作功能則是滿足用戶對(duì)G代碼的復(fù)制、粘貼、剪切等常用編輯操作。

譯碼模塊;譯碼模塊主要有兩個(gè)功能:解析程序數(shù)據(jù)和分析程序錯(cuò)誤。解析程序數(shù)據(jù)功能實(shí)現(xiàn)對(duì)加工G代碼的內(nèi)容解析,將命令符與數(shù)據(jù)分別提取出來(lái);分析程序功能則是對(duì)G代碼進(jìn)行詞法語(yǔ)法分析,并定位錯(cuò)誤,提示用戶進(jìn)行修正。

3 操作模塊設(shè)計(jì)

操作模塊主要是通過(guò)對(duì)Qt的QPlainTextEdit類(lèi)進(jìn)行繼承實(shí)現(xiàn)自定義功能的設(shè)計(jì)。編輯器的軟件界面如圖2所示。通過(guò)在窗體左定義一個(gè)QWidget類(lèi)負(fù)責(zé)行號(hào)的顯示,背景顏色為深藍(lán)色,并將行號(hào)區(qū)域固定在左側(cè);右側(cè)背景白色的區(qū)域?yàn)榫庉嬇c顯示區(qū)域,負(fù)責(zé)顯示G代碼的具體內(nèi)容。顯示區(qū)域采用兩種顏色來(lái)區(qū)分顯示命令符合與數(shù)字普通字符。

通過(guò)重載paintEvent(QPaintEvent *event)函數(shù)可以實(shí)現(xiàn)不同類(lèi)型字符的顯示樣式,包括字體大小粗細(xì)、顏色等。部分代碼如下:

4 譯碼模塊設(shè)計(jì)

數(shù)控加工G代碼的譯碼將數(shù)控加工G代碼文件進(jìn)行逐行掃描與校核。在這個(gè)過(guò)程中首先要對(duì)每行代碼中的注釋內(nèi)容進(jìn)行屏蔽,之后再對(duì)每行代碼的有效信息進(jìn)行解析。因此在譯碼工作中比較重要的有以下4部分:

去掉注釋內(nèi)容。數(shù)控加工G代碼中有部分文本是注釋內(nèi)容,這些注釋內(nèi)容并不蘊(yùn)含有效加工數(shù)據(jù),因此無(wú)需進(jìn)行后續(xù)處理,因此需要提前屏蔽掉。

詞法錯(cuò)誤檢查。根據(jù)數(shù)控加工G代碼的編程標(biāo)準(zhǔn),判別G代碼中的字符是否滿足標(biāo)準(zhǔn)要求。實(shí)現(xiàn)的思路為:首先建立代碼關(guān)鍵字符集,然后逐個(gè)讀入G代碼中的字符,判斷它是否屬于關(guān)鍵字符集。如果不在則說(shuō)明程序使用了系統(tǒng)不能識(shí)別的指令,給出錯(cuò)誤信息,指出錯(cuò)誤所在行;如果該字符屬于字符集則繼續(xù)讀入下一個(gè)字符。

語(yǔ)法錯(cuò)誤檢查。將數(shù)控G代碼的單詞按各類(lèi)語(yǔ)法規(guī)則進(jìn)行分析,并進(jìn)行語(yǔ)句的語(yǔ)法正確性和不同語(yǔ)句之間的相容性檢查。歸納起來(lái),數(shù)控代碼中要檢查的語(yǔ)法錯(cuò)誤主要有指令搭配錯(cuò)誤、指令順序錯(cuò)誤和指令格式錯(cuò)誤。

字符分類(lèi)。經(jīng)過(guò)詞法錯(cuò)誤檢查和語(yǔ)法錯(cuò)誤檢查之后,需要對(duì)G代碼進(jìn)行信息分揀與字符分類(lèi),將命令字符和其余字符分類(lèi)存儲(chǔ),后續(xù)顯示時(shí)加以區(qū)分設(shè)置顯示格式。

G代碼文件的譯碼工作流程如圖3所示。

圖3:譯碼工作流程

5 總結(jié)

本文基于Qt平臺(tái)開(kāi)發(fā)了一款專(zhuān)用于數(shù)控加工G代碼程序編輯器,該編輯器能夠讀取已有G代碼程序進(jìn)行編輯或者新建G代碼程序,同時(shí)編輯器內(nèi)嵌G代碼程序譯碼模塊可以檢測(cè)G代碼程序的錯(cuò)誤并標(biāo)記,方便用戶對(duì)數(shù)控加工G代碼進(jìn)行編輯,從而減少技術(shù)人員的工作量與提高G代碼程序的準(zhǔn)確性。

猜你喜歡
編輯器譯碼字符
基于校正搜索寬度的極化碼譯碼算法研究
字符代表幾
一種USB接口字符液晶控制器設(shè)計(jì)
消失的殖民村莊和神秘字符
車(chē)輛段收發(fā)車(chē)運(yùn)行圖編輯器的設(shè)計(jì)與實(shí)現(xiàn)
從霍爾的編碼譯碼理論看彈幕的譯碼
LDPC 碼改進(jìn)高速譯碼算法
基于VLIW目標(biāo)機(jī)的ELF二進(jìn)制編輯器設(shè)計(jì)與實(shí)現(xiàn)
基于概率裁剪的球形譯碼算法