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

?

基于MATLAB GUI的轉(zhuǎn)向系統(tǒng)報(bào)告自動(dòng)化軟件開(kāi)發(fā)

2020-07-07 02:39賴禹能周平吳靜奇
汽車零部件 2020年6期
關(guān)鍵詞:文件夾按鍵表格

賴禹能,周平,吳靜奇

博世華域轉(zhuǎn)向系統(tǒng)有限公司,上海 201821)

0 引言

近幾年隨著汽車項(xiàng)目與產(chǎn)品的增加,轉(zhuǎn)向系統(tǒng)產(chǎn)品開(kāi)發(fā)過(guò)程中的試驗(yàn)報(bào)告也成倍增加。由于轉(zhuǎn)向系統(tǒng)各個(gè)項(xiàng)目規(guī)范要求差異較大,撰寫(xiě)報(bào)告時(shí)需要根據(jù)不同規(guī)范統(tǒng)計(jì)數(shù)據(jù)并出具不同的試驗(yàn)報(bào)告,人工方式整理數(shù)據(jù)以及撰寫(xiě)報(bào)告消耗了大量時(shí)間,數(shù)據(jù)處理與報(bào)告整理錯(cuò)誤率較高。轉(zhuǎn)向系統(tǒng)試驗(yàn)報(bào)告主要涉及EPSc管柱、機(jī)械管柱以及中間軸產(chǎn)品,所涉及的試驗(yàn)報(bào)告按照試驗(yàn)階段涉及轉(zhuǎn)向系統(tǒng)送樣、DV、PV試驗(yàn)以及型式試驗(yàn)。將工程師從眾多繁瑣的數(shù)據(jù)整理與報(bào)告撰寫(xiě)事物中解脫出來(lái),轉(zhuǎn)向系統(tǒng)試驗(yàn)報(bào)告自動(dòng)化具有重大實(shí)用價(jià)值。

轉(zhuǎn)向系統(tǒng)報(bào)告自動(dòng)化軟件能夠在主流配置的計(jì)算機(jī)上運(yùn)行,要求已安裝6.5版本以上MATLAB軟件,或者已安裝7.13版本的程序運(yùn)行環(huán)境MATLAB Compiler Runner。使用MATLAB Compiler Runner作為運(yùn)行環(huán)境時(shí),該軟件根據(jù)計(jì)算機(jī)操作系統(tǒng)不同分為32位與64位兩種,應(yīng)根據(jù)實(shí)際情況下載安裝并使用對(duì)應(yīng)版本的轉(zhuǎn)向系統(tǒng)報(bào)告自動(dòng)化軟件。采用MATLAB的調(diào)用Word Com組件能力[1-4],軟件自動(dòng)讀取處理數(shù)據(jù)后,輸出到Word文檔中,自動(dòng)完成文字鍵入、數(shù)據(jù)表格填充以及數(shù)據(jù)圖片粘貼。

1 功能需求

轉(zhuǎn)向系統(tǒng)報(bào)告自動(dòng)化軟件是Windows XP/Vista/Win7環(huán)境下的軟件程序,用以解碼、處理和評(píng)估實(shí)驗(yàn)室測(cè)試系統(tǒng)下載的測(cè)試數(shù)據(jù)文件(*.wwt),并自動(dòng)生成基于不同產(chǎn)品規(guī)范的試驗(yàn)報(bào)告。試驗(yàn)數(shù)據(jù)范圍覆蓋功能試驗(yàn)、強(qiáng)度試驗(yàn)、疲勞試驗(yàn)。用戶可以使用該軟件設(shè)計(jì)不同產(chǎn)品規(guī)范的軟件計(jì)算策略,用于自動(dòng)判斷測(cè)試數(shù)據(jù)是否滿足規(guī)范要求;加載測(cè)試數(shù)據(jù)路徑、測(cè)試規(guī)范、報(bào)告信息庫(kù)后,該軟件可以自動(dòng)加載處理數(shù)據(jù),一鍵生成用戶自定義格式的Word試驗(yàn)報(bào)告,判斷數(shù)據(jù)是否合格,批量顯示數(shù)據(jù)曲線??稍谌藱C(jī)交互界面中自由設(shè)置、保存以及加載不同產(chǎn)品規(guī)范,根據(jù)自定義的產(chǎn)品規(guī)范生成對(duì)應(yīng)的數(shù)據(jù)表格;報(bào)告形式可選擇數(shù)據(jù)匯總報(bào)告或者標(biāo)準(zhǔn)報(bào)告;不同樣件的數(shù)據(jù)曲線可選擇疊加顯示或者分開(kāi)顯示[5]。圖1為MATLAB GUI 自動(dòng)生成報(bào)告過(guò)程。

圖1 MATLAB GUI 自動(dòng)生成報(bào)告過(guò)程

2 數(shù)據(jù)處理

數(shù)據(jù)處理步驟包括:選擇1級(jí)文件夾,讀取該文件夾下包含的所有2級(jí)子文件夾,然后分別讀取各子文件夾下的所有數(shù)據(jù)。關(guān)鍵的幾個(gè)程序命令如下:

findpath = uigetdir(); %打開(kāi)文件夾選擇對(duì)話框

files = dir(findpath); %獲得指定文件夾下的所有子文件夾和文件

if files(i).isdir==1%判斷是否有文件夾

samplelen=samplelen+1;

end%統(tǒng)計(jì)文件夾數(shù)量

name100=strfind(files(i,1).name,′100%′);%統(tǒng)計(jì)包含100%的文件夾

rangeinfor{1}=get(handles.edit51,′String′); %獲取面板中最大助力設(shè)置值

filepath=[findpath,′′,Sample(1:(namecount0(i)-1))];%文件夾路徑

files = crawler(filepath, [′.*orsion.*tiffn.*.wwt′], 1); %讀取符合關(guān)鍵字要求的文件

FILE=fopen(filename,′r′,′l′,′latin1′);%打開(kāi)wwt格式文件

HEADER.COMMENT1 = (fread(FILE,length_comment,′*char′))′;%讀取wwt格式文件數(shù)據(jù)

數(shù)據(jù)讀取出來(lái)后,需要根據(jù)試驗(yàn)規(guī)范計(jì)算出統(tǒng)計(jì)值,并將所有數(shù)據(jù)點(diǎn)繪制成曲線圖。

cmpmax=Pfinder(Angle_M,P_end,0.01); % 讀取某個(gè)數(shù)據(jù)點(diǎn)的數(shù)據(jù)排列序號(hào)

p1 = figure(Pcn); %打開(kāi)顯示圖框

plot(Lenkwinkel, Dss,′color′,c{linenum},′LineWidth′,linesize)%顯示數(shù)據(jù)點(diǎn)曲線圖

3 Word報(bào)告自動(dòng)化

3.1 新建Word文檔

MATLAB首先需要判斷Word服務(wù)器是否已經(jīng)打開(kāi),如果打開(kāi)了服務(wù)器,再判斷是否有空文檔已經(jīng)打開(kāi)。通常服務(wù)器打開(kāi),一般有空文檔打開(kāi),若沒(méi)有打開(kāi),MATLAB將會(huì)新建一個(gè)空文檔用于輸出報(bào)告。參考以下命令:

Try

%若Word服務(wù)器打開(kāi),返回其句柄Word

Word = actxGetRunningServer(′Word.Application′);

Catch %否則,創(chuàng)建一個(gè)Microsoft Word服務(wù)器,返回句柄Word

Word =actxserver(′Word.Application′);

end;

Word.Visible = 1; %若測(cè)試文件存在,打開(kāi)該測(cè)試文件,否則,新建一個(gè)文件,并保存,文件名為測(cè)試.doc

if exist(filespec_user,′file′);

Document = Word.Documents.Open(filespec_user);

else

Document = Word.Documents.Add;

Document.SaveAs2(filespec_user);%用于word文檔的輸出

end

空文檔新建好后,需要設(shè)定頁(yè)面大小,以下命令用于設(shè)定頁(yè)面大小:

Document.PageSetup.TopMargin = -133; % 設(shè)置上邊緣位置

Document.PageSetup.BottomMargin = 40.7;

Document.PageSetup.LeftMargin = 63.4;

Document.PageSetup.RightMargin = 28.3;

3.2 生成報(bào)告首頁(yè)信息欄

標(biāo)準(zhǔn)報(bào)告需要生成首頁(yè)信息欄,如圖2所示,包括了試驗(yàn)名稱、項(xiàng)目名稱、零件號(hào)碼、產(chǎn)品狀態(tài)、客戶信息、工程師名、測(cè)試規(guī)范、接受標(biāo)準(zhǔn)、樣件號(hào)碼、簽名欄、試驗(yàn)時(shí)間與試驗(yàn)結(jié)果等信息,這些信息中一部分來(lái)自預(yù)先保存好的Project Information的Excel表格中,其他信息直接來(lái)自于試驗(yàn)數(shù)據(jù)的判斷,比如試驗(yàn)時(shí)間、樣件號(hào)碼與試驗(yàn)結(jié)果。設(shè)置表格以及填充基本信息如下:

Specpath=[findpath,′Project

information.xlsx′];%路徑名稱

[~, ~, Spec] = xlsread(Specpath,

′Specification′); %讀取預(yù)先保存好的Excel表格中的規(guī)范

DTI.Borders.OutsideLineStyle = ′wdLineStyleSingle′; %設(shè)置外邊框的線型

DTI.Borders.OutsideLineWidth = ′wdLineWidth075pt′; %設(shè)置線寬

DTI.Borders.InsideLineStyle = ′wdLineStyleSingle′; %設(shè)置內(nèi)邊框的線型

DTI.Rows.Alignment = ′wdAlignRowLeft′; % 設(shè)置行對(duì)齊方式

DTI.Columns.Item(1).Width = 140;

DTI.Columns.Item(2).Width = 350;

%設(shè)置單列寬度

DTI.Cell(2,2).Range.Text =cell2mat(Information(9,2)); %表格中填充基本信息

handle = Document.Shapes.AddPicture(which(′sign.tif′), [], [], 10, 0, 455, 92); %添加簽字欄圖片

Selection.Start = Content.end; %定義開(kāi)始的位置

標(biāo)準(zhǔn)報(bào)告的頁(yè)眉中中需要添加公司名稱、標(biāo)識(shí)與報(bào)告號(hào),設(shè)置如下:

Document.ActiveWindow.ActivePane.View.SeekView=′wdSeek

CurrentPageHeader′; % 光標(biāo)進(jìn)入頁(yè)眉區(qū)域準(zhǔn)備編輯

Selection.Range.Paragraphs.Alignment=′wdAlignParagraphLeft′; %光標(biāo)往左靠齊

try handle=Selection.InlineShapes.AddPicture(which(′BoschHUAYU.tif′)); %添加公司名稱圖片

handle=Selection.InlineShapes.AddPicture(which(′Bosch.tif′)); %添加公司標(biāo)識(shí)圖片

end

Selection.Text=′TRP-VR-S001-V1.1′; %添加文字描述

Selection.Font.Size=12; %設(shè)置文字大小

Document.ActiveWindow.ActivePane.View.SeekView=′wdSeek

CurrentPageFooter′; % 光標(biāo)進(jìn)入頁(yè)腳設(shè)置區(qū)域

Document.ActiveWindow.ActivePane.View.SeekView=′wdSeek

MainDocument′; % 光標(biāo)退出頁(yè)腳區(qū)域,進(jìn)入主文檔

圖2 Word標(biāo)準(zhǔn)報(bào)告首頁(yè)

3.3 生成數(shù)據(jù)表格

生成數(shù)據(jù)表格需要包括樣件號(hào)、接受標(biāo)準(zhǔn)、數(shù)據(jù)值,并且具有判斷數(shù)據(jù)超差提示功能。生成數(shù)據(jù)表格主要用到的命令如下:

Tables= Document.Tables.Add(Selection.Range,Sn1+2,NumC);%生成需要的表格

DTI.Cell(i,j).Range.Text=word_data{i,j,10};%填充數(shù)據(jù)值

DTI.Cell(i,j).Range.Font.ColorIndex =6; %設(shè)置數(shù)據(jù)字體顏色

DTI.Cell(i,j).Shading.BackgroundPatternColorindex=7;%設(shè)置表格背景顏色

示例見(jiàn)圖3,數(shù)據(jù)首列根據(jù)接受標(biāo)準(zhǔn)判斷,數(shù)據(jù)超差則采用黃色背景紅色字體提示。

圖3 報(bào)告數(shù)據(jù)表格

3.4 粘貼數(shù)據(jù)圖片

數(shù)據(jù)圖片批量生成后,將圖片粘貼至Word文檔中,命令如下:

hgexport(zfd(i,j), ′-clipboard′); %復(fù)制圖片句柄

Selection.Paste;%粘貼圖片

Selection.EndKey;%光標(biāo)移至尾部

close(figure(i));%粘貼完后關(guān)閉圖片

4 GUI操作案例

首先啟動(dòng)MATLAB GUI轉(zhuǎn)向系統(tǒng)報(bào)告自動(dòng)化軟件.exe,見(jiàn)圖4,生成正式報(bào)告需要在文本框中輸入報(bào)告基本信息,生成數(shù)據(jù)匯總報(bào)告可以直接選擇EPSc&i-shaft、機(jī)械管柱、疲勞、強(qiáng)度按鍵。保存報(bào)告基本信息點(diǎn)擊保存按鍵選擇數(shù)據(jù)文件保存路徑。如果之前已經(jīng)定義好了報(bào)告基本信息,可以點(diǎn)擊加載按鍵選擇數(shù)據(jù)文件加載路徑。

在程序主界面點(diǎn)擊EPSc&i-shaft按鍵,進(jìn)入EPSc&i-shaft報(bào)告自動(dòng)化界面,如圖5所示。黃色單選按鈕ON:sub;Off:QS,軟件默認(rèn)生成QS數(shù)據(jù)匯總報(bào)告,點(diǎn)擊則生成Sub標(biāo)準(zhǔn)報(bào)告。規(guī)范設(shè)置內(nèi)容包括了EPSc與I-shaft,分別涉及基本功能數(shù)據(jù)的接受標(biāo)準(zhǔn)與取值范圍。軟件默認(rèn)設(shè)置了一些基本規(guī)范,可以快速用于產(chǎn)品數(shù)據(jù)的判斷匯總。使用者可以根據(jù)項(xiàng)目規(guī)范自定義接受標(biāo)準(zhǔn),點(diǎn)擊規(guī)范保存按鍵保存;點(diǎn)擊規(guī)范加載按鍵加載已經(jīng)保存過(guò)的規(guī)范。規(guī)范設(shè)置空格可以識(shí)別數(shù)字,以及字母NA(不統(tǒng)計(jì)該項(xiàng))與FYI(該項(xiàng)僅供參考)。生成EPSc報(bào)告,點(diǎn)擊選擇EPSc單選按鍵(軟件默認(rèn));生成I-shaft報(bào)告,點(diǎn)擊選擇I-shaft單選按鍵。

圖4 轉(zhuǎn)向系統(tǒng)報(bào)告自動(dòng)化軟件界面

圖5 EPSc&i-shaft報(bào)告自動(dòng)化界面

I-shaft TTR下Range文本框中可以自定義扭矩讀取角度范圍;I-shaft 扭轉(zhuǎn)間隙下filter文本框中可以自定義扭轉(zhuǎn)間隙wwt數(shù)據(jù)的讀取關(guān)鍵詞,默認(rèn)讀取lash。以下以生成I-shaft QS數(shù)據(jù)匯總報(bào)告為例。點(diǎn)擊選擇I-shaft單選按鍵,生成I-shaft報(bào)告。點(diǎn)擊分開(kāi)顯示單選按鍵,可以設(shè)置數(shù)據(jù)曲線單獨(dú)顯示,默認(rèn)設(shè)置數(shù)據(jù)曲線疊加顯示。點(diǎn)擊數(shù)據(jù)加載按鍵選擇數(shù)據(jù)加載路徑,選擇文件夾i-shaft test,其中包括了6個(gè)子文件夾,子文件夾通過(guò)有無(wú)50%與100%關(guān)鍵詞命名可以識(shí)別不同疲勞階段復(fù)測(cè)的功能數(shù)據(jù),即0%、50%與100%三個(gè)階段。每個(gè)子文件夾下保存了wwt格式的中間軸功能數(shù)據(jù)。點(diǎn)擊開(kāi)始按鍵,開(kāi)始生成QS數(shù)據(jù)匯總報(bào)告,分別包括了0%與100%的功能數(shù)據(jù)表格。

點(diǎn)擊轉(zhuǎn)向系統(tǒng)報(bào)告自動(dòng)化軟件界面的機(jī)械管柱按鍵,打開(kāi)機(jī)械管柱報(bào)告自動(dòng)化界面,如圖6所示;點(diǎn)擊疲勞按鍵,打開(kāi)疲勞報(bào)告自動(dòng)化界面,如圖7所示;點(diǎn)擊強(qiáng)度按鍵,打開(kāi)強(qiáng)度報(bào)告自動(dòng)化界面,如圖8所示。

圖6 機(jī)械管柱報(bào)告自動(dòng)化界面

圖7 疲勞報(bào)告自動(dòng)化界面

5 結(jié)論

本文作者采用MATLAB GUI開(kāi)發(fā)的轉(zhuǎn)向系統(tǒng)報(bào)告自動(dòng)化軟件,解決了根據(jù)不同試驗(yàn)規(guī)范設(shè)置數(shù)據(jù)讀取要求、批量處理與判斷試驗(yàn)數(shù)據(jù)是否滿足產(chǎn)品規(guī)范以及自動(dòng)生成各種類型報(bào)告的問(wèn)題,大大提高了試驗(yàn)報(bào)告出具效率以及數(shù)據(jù)處理準(zhǔn)確性。

猜你喜歡
文件夾按鍵表格
基于有限狀態(tài)機(jī)的按鍵檢測(cè)程序設(shè)計(jì)
組成語(yǔ)
Fast Folders,讓你的文件夾四通八達(dá)
非觸勿動(dòng) 秒治鍵盤(pán)誤觸
履歷表格這樣填
摸清超標(biāo)源頭 大文件夾這樣處理
表格圖的妙用
借助“表格”解答稍復(fù)雜分?jǐn)?shù)問(wèn)題
調(diào)動(dòng)右鍵 解決文件夾管理三大難題
不容忽視的空文件夾
东辽县| 五指山市| 洮南市| 义乌市| 黄冈市| 绍兴县| 牟定县| 富锦市| 都江堰市| 陈巴尔虎旗| 盖州市| 湖南省| 滦平县| 上蔡县| 太白县| 高平市| 鄂州市| 施甸县| 临潭县| 扎赉特旗| 南宁市| 封开县| 鄂州市| 南通市| 健康| 福泉市| 堆龙德庆县| 峨眉山市| 漳浦县| 基隆市| 德钦县| 平原县| 木兰县| 景洪市| 南昌县| 凭祥市| 宁晋县| 建瓯市| 萍乡市| 桐柏县| 惠安县|