• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    鐵路連續(xù)梁計(jì)算書模板程序解決方案

    2018-07-10 12:58:22
    四川建筑 2018年3期
    關(guān)鍵詞:控件命令文檔

    邢 雨

    (中國(guó)鐵路設(shè)計(jì)集團(tuán)有限公司橋梁院,天津 300142)

    橋梁設(shè)計(jì)計(jì)算書,又稱橋梁設(shè)計(jì)算單,是橋梁設(shè)計(jì)過程的書面體現(xiàn),算單內(nèi)容應(yīng)完整、清楚,格式標(biāo)準(zhǔn),條理分明,引用數(shù)據(jù)有可靠依據(jù),計(jì)算結(jié)果應(yīng)與圖紙一致。目前鐵路橋梁算單的制作多采用手工填寫編輯的方法,存在格式不統(tǒng)一、編輯效率低、重復(fù)性勞動(dòng)多、易出錯(cuò)等缺點(diǎn),因此有必要編制一款軟件,便于工程設(shè)計(jì)人員快速制作格式標(biāo)準(zhǔn)、內(nèi)容完備的算單。

    MATLAB是作為一種計(jì)算和處理數(shù)據(jù)的軟件,具備強(qiáng)大的數(shù)學(xué)計(jì)算功能、作圖功能,以及豐富的實(shí)用工具箱等優(yōu)點(diǎn)[1]。MATLAB GUI作為一種新型的圖形用戶界面(Graphical User Interface,圖形用戶接口,簡(jiǎn)稱GUI)開發(fā)設(shè)計(jì)平臺(tái),面向?qū)ο箝_發(fā),可實(shí)現(xiàn)對(duì)控件的靜態(tài)設(shè)計(jì)和程序編寫,極大地簡(jiǎn)化了程序設(shè)計(jì)的過程[2]。

    MATLAB支持COM(Component Object Model)技術(shù),可以利用ActiveX控件調(diào)用Word、Excel等Microsoft Office應(yīng)用程序自動(dòng)生成符合要求的標(biāo)準(zhǔn)算單。本文以使用MATALAB開發(fā)的“鐵路連續(xù)梁計(jì)算書模板程序”為基礎(chǔ),總結(jié)了一些軟件設(shè)計(jì)過程中的思路和經(jīng)驗(yàn)[3]。

    1 設(shè)計(jì)目標(biāo)

    為便于程序開發(fā)并保證程序功能的實(shí)用性,首先要明確程序的設(shè)計(jì)目標(biāo)。本程序在設(shè)計(jì)和開發(fā)過程中力求達(dá)到以下目標(biāo):模塊化,內(nèi)容齊全,功能豐富,易于操作(圖1)。

    圖1 設(shè)計(jì)目標(biāo)

    1.1 模塊化

    模塊化編程,是用主程序、子程序、子過程等框架把軟件的主要結(jié)構(gòu)和流程描述出來,并定義和調(diào)試好各個(gè)框架之間的輸入、輸出鏈接關(guān)系。模塊化編程具有相互獨(dú)立性、互換性、通用性等特點(diǎn),各模塊間功能獨(dú)立,結(jié)構(gòu)清晰。采用模塊化編程有利于降低程序復(fù)雜度,使程序設(shè)計(jì)、調(diào)試、維護(hù)升級(jí)等操作簡(jiǎn)單化。

    本程序在設(shè)計(jì)過程中從兩方面執(zhí)行模塊化編程的原則:(1)頂層設(shè)計(jì),預(yù)先構(gòu)思主程序中應(yīng)包含的子程序,并逐步編程實(shí)現(xiàn);(2)歸納整理,對(duì)零散的程序語句進(jìn)行封裝。

    1.2 內(nèi)容齊全

    為保證程序的適用范圍更加廣泛,以用于不同形式、不同施工方法、不同計(jì)算方法的多種連續(xù)梁算單生成,開發(fā)人員在編制程序前應(yīng)事先通過大量資料搜集和調(diào)研工作,盡可能地豐富各參數(shù)的選項(xiàng),以保證程序的內(nèi)容齊全。

    1.3 功能豐富

    程序除了能夠?qū)⑦B續(xù)梁算單不同章節(jié)快速、準(zhǔn)確地生成并組合外,還應(yīng)能夠多文檔進(jìn)行多種形式的編輯,如對(duì)字體、段落、標(biāo)題、圖片、表格等進(jìn)行處理,并能自動(dòng)生成目錄、頁眉頁腳等。

    1.4 易于操作

    程序應(yīng)符合用戶使用習(xí)慣,減少不必要的操作,增加實(shí)用功能。軟件初始界面應(yīng)提供默認(rèn)輸入內(nèi)容、選項(xiàng)或路徑;在前后內(nèi)容相關(guān)聯(lián)的地方,應(yīng)保證對(duì)應(yīng)(附圖)等。

    2 編程方法

    使用本程序最終生成的算單是Word文檔,而連續(xù)梁計(jì)算的結(jié)果許多是以Excel文檔的形式進(jìn)行記錄的,因此需要利用MATLAB對(duì)Word、Excel進(jìn)行編輯,實(shí)現(xiàn)創(chuàng)建或打開Word/Excel服務(wù)器、新建空白文檔、頁面設(shè)置、寫入文字內(nèi)容、插入圖片、圖片編輯等功能。

    2.1 利用MATLAB生成并編輯Word文檔

    2.1.1創(chuàng)建或打開Word服務(wù)器

    MATLAB中提供了actxserver函數(shù)用來創(chuàng)建COM自動(dòng)化服務(wù)器,可通過該函數(shù)創(chuàng)建或打開Microsoft Word服務(wù)器[4]。相關(guān)命令如下:

    try

    Word = actxGetRunningServer('Word.Application');

    catch

    Word = actxserver('Word.Application');

    end。

    2.1.2新建空白文檔

    可通過Word服務(wù)器的Documents接口建立空白文檔。相關(guān)命令如下:

    Document = Word.Documents.Add;

    Document.SaveAs(filespec_user)。

    2.1.3頁面設(shè)置

    Document接口下有一個(gè)PageSetup接口,通過對(duì)其屬性修改,可進(jìn)行頁面設(shè)置。相關(guān)命令如下:

    Document.PageSetup.TopMargin = 60;%上邊距60磅

    Document.PageSetup.BottomMargin = 45;%下邊距45磅

    Document.PageSetup.LeftMargin = 45;%左邊距45磅

    Document.PageSetup.RightMargin = 45;%右邊距45磅

    2.1.4寫入文字內(nèi)容

    可通過Word服務(wù)器的Selection接口,Document接口的Content、Paragarphs接口寫入文字內(nèi)容。

    Content接口的Start屬性用來獲取設(shè)定文字內(nèi)容的起始位置,End屬性用來獲取或設(shè)定文字內(nèi)容的終止位置,Text屬性用來寫入文字內(nèi)容,F(xiàn)ont屬性用于字體設(shè)置,Paragraphs屬性用于段落設(shè)置。

    利用Word服務(wù)器的Selection接口可以在文檔中選定一個(gè)區(qū)域,并對(duì)所選區(qū)域進(jìn)行相關(guān)操作。其Start屬性用來設(shè)定光標(biāo)的位置,TypeParagraph是Selection接口的一個(gè)方法,相當(dāng)于回車鍵,Text屬性用來寫入文字內(nèi)容,F(xiàn)ont屬性用于字體設(shè)置,Paragraphs屬性用于段落設(shè)置。

    相關(guān)命令如下:

    Content.Start = 0;%設(shè)置文檔內(nèi)容的起始位置

    title = '第一章';

    Content.Text = title; % 輸入文字內(nèi)容

    Content.Font.Size = 16 ; % 設(shè)置字號(hào)為16

    Content.Font.Bold = 4 ;%字體加粗

    Content.Paragraphs.Alignment = 'wdAlignParagraphCenter'; %居中對(duì)齊

    Selection.Start = Content.end;%設(shè)定下面內(nèi)容的起始位置

    Selection.TypeParagraph;%回車,另起一段

    yiju= '設(shè)計(jì)依據(jù)';

    Selection.Text = yiju; %在當(dāng)前位置輸入文字內(nèi)容

    Selection.Font.Size = 12; %設(shè)置字號(hào)為12

    Selection.Font.Bold = 0;%字體不加粗

    Selection.MoveDown; %光標(biāo)下移(取消選中)

    paragraphformat.Alignment = 'wdAlignParagraphCenter';

    %居中對(duì)齊

    2.1.5插入圖片

    利用InlineShapes接口或Shapes接口的AddPicture方法,可以在Word文檔中插入外部圖片。調(diào)用格式如下:

    handles=Document.InlineShapes.AddPicture('外部圖片所在路徑')

    handles=Document.Shapes.AddPicture('外部圖片所在路徑')

    2.1.6設(shè)置圖片格式

    對(duì)于Shapes接口插入的圖片可以設(shè)置其文字環(huán)繞方向等版式,調(diào)用格式如下:

    Document.Shapes.Item(i).WrapFormat.Type = 3;

    而對(duì)于InlineShapes接口插入的圖片則不能直接利用MATLAB進(jìn)行版式設(shè)置[5]。

    2.2 利用MATLAB生成并編輯Execl文檔

    2.2.1創(chuàng)建或打開Excel服務(wù)器

    利用actxserver函數(shù)用來創(chuàng)建COM自動(dòng)化服務(wù)器,通過該函數(shù)創(chuàng)建或打開Microsoft Excel服務(wù)器。相關(guān)命令如下:

    try

    % 若Excel服務(wù)器已經(jīng)打開,返回其句柄Excel

    Excel = actxGetRunningServer('Excel.Application');

    catch

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

    Excel = actxserver('Excel.Application');

    end。

    2.2.2新建工作簿

    可通過Excel服務(wù)器的Wordbooks接口建立空白文檔。相關(guān)命令如下:

    Workbook = Excel.Workbooks.Add;

    Workbook.SaveAs(filespec_user)。

    2.2.3獲取工作表對(duì)象句柄

    一般情況下,一個(gè)工作簿下包含三個(gè)工作表(WordSheets),編輯Excel文檔都是在工作表中完成的??梢酝ㄟ^ActiveSheet接口獲取正在工作的工作表對(duì)象句柄。相關(guān)命令如下:

    ActivateSheet=Workbook.ActivateSheet。

    2.2.4選取工作表區(qū)域

    通常用戶需要在一個(gè)工作表中選取一些區(qū)域,然后在這些區(qū)域里進(jìn)行操作。工作表對(duì)象下的Range方法用于選取工作表區(qū)域,生成Range對(duì)象。相關(guān)命令如下:

    h1=Sheet1.Range('A1:H1')。

    3 界面展示

    程序設(shè)計(jì)了封面、第一章 設(shè)計(jì)依據(jù)及適用范圍、第二章 結(jié)構(gòu)形式、第三章 荷載、材料及施工方案、第四章 縱向計(jì)算、第五章橫向計(jì)算共六大模塊,對(duì)應(yīng)連續(xù)梁算單的六個(gè)章節(jié)(圖2)。

    圖2 軟件模塊

    3.1 封面

    包括工程名稱、適用工點(diǎn)、梁跨信息等需要填寫或修改的內(nèi)容;編寫時(shí)間自動(dòng)生成,并可編輯(圖3)。

    圖3 封面界面

    3.2 第一章

    包括設(shè)計(jì)依據(jù)和適用范圍兩大部分,采用了面板、編輯框、命令按鈕等控件(圖4)。

    圖4 第一章界面

    3.3 第二章

    包括結(jié)構(gòu)信息、長(zhǎng)度(縱向)信息、寬度(橫向)信息、高度/厚度(豎向)信息、曲梁布置、插入結(jié)構(gòu)圖/橫斷面六個(gè)部分,采用了面板、下拉列表、編輯框、選擇按鈕、命令按鈕等控件(圖5)。

    圖5 第二章界面

    3.4 第三章

    為節(jié)省界面空間,分兩頁設(shè)置。包括主力、附加力、特殊荷載、材料、施工方案五個(gè)部分,采用了面板、列表框、下拉列表、編輯框、選擇按鈕、單選按鈕、命令按鈕等控件(圖6)。

    圖6 第三章界面(第一頁)

    3.5 第四章

    包括計(jì)算模型、荷載組合及控制工況、計(jì)算結(jié)果三個(gè)部分,采用了面板、列表框、下拉列表、編輯框、選擇按鈕、命令按鈕等控件(圖7)。

    3.6 第五章

    為節(jié)省界面空間,分三頁設(shè)置。包括計(jì)算說明、計(jì)算荷載及荷載工況、計(jì)算結(jié)果三個(gè)部分,采用了面板、列表框、下拉列表、編輯框、命令按鈕等控件(圖8)。

    4 程序的優(yōu)勢(shì)及展望

    4.1 優(yōu)勢(shì)

    (1)提供標(biāo)準(zhǔn)算單。本程序生成的算單具備統(tǒng)一的格式,可根據(jù)標(biāo)準(zhǔn)模板制作標(biāo)準(zhǔn)算單。標(biāo)準(zhǔn)化是先進(jìn)和高效的象征,可以使資源合理利用,簡(jiǎn)化生產(chǎn)技術(shù),是自動(dòng)化、電算化的前提。

    圖7 第四章界面

    圖8 第五章界面(第一頁)

    (2)降低算單的出錯(cuò)率。使用程序生成的算單出錯(cuò)率很低,這體現(xiàn)在三方面:①由于主要數(shù)據(jù)是單獨(dú)填寫的,因此注意力集中,不易出錯(cuò);②由于一般性的語言是程序設(shè)定的,不存在錯(cuò)別字的情況;③易于復(fù)查,對(duì)于自查,可以通過檢查輸入數(shù)據(jù)來確定,注意要及時(shí)檢查,對(duì)于復(fù)核,只需要復(fù)核重點(diǎn)數(shù)據(jù)即可,不用把精力太放在錯(cuò)別字、格式等低級(jí)錯(cuò)誤上。

    (3)提高算單的制作效率。使用程序生成算單效率很高,這體現(xiàn)在三方面:①可以節(jié)省手動(dòng)打字、粘貼文字和圖片、表格等制作算單內(nèi)容的時(shí)間;②程序自動(dòng)調(diào)整字體、段落、標(biāo)題、圖片、表格等格式,可以節(jié)省編輯算單格式所用的時(shí)間;③出錯(cuò)率低,可以減少自查、復(fù)查的時(shí)間。

    4.2 展望

    (1)增加簡(jiǎn)支梁模塊。由于采用模塊式編程,可對(duì)相關(guān)模塊進(jìn)行修改和調(diào)整,以適應(yīng)簡(jiǎn)支梁算單程序的要求。

    (2)輸出英文版算單功能。隨著“一帶一路”國(guó)家戰(zhàn)略的加快推進(jìn),我國(guó)承擔(dān)了越來越多的國(guó)際項(xiàng)目,許多項(xiàng)目需要提供英文版的資料,算單就是其中之一。通過對(duì)相關(guān)程序進(jìn)行修改,可以生成拼寫正確、語法標(biāo)準(zhǔn)的英文版連續(xù)梁算單,減少文字、語法方面的錯(cuò)誤,大大降低算單的編輯時(shí)間。

    (3)計(jì)算與繪圖功能。MATLAB本身具有非常強(qiáng)大的計(jì)算和科學(xué)繪圖功能,可將橋梁計(jì)算的部分內(nèi)容融入到程序之中,實(shí)現(xiàn)計(jì)算、輸出一體化。

    猜你喜歡
    控件命令文檔
    只聽主人的命令
    有人一聲不吭向你扔了個(gè)文檔
    關(guān)于.net控件數(shù)組的探討
    軟件(2018年7期)2018-08-13 09:44:42
    移防命令下達(dá)后
    基于RI碼計(jì)算的Word復(fù)制文檔鑒別
    這是人民的命令
    Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
    藍(lán)色命令
    不讓他人隨意下載Google文檔
    電腦迷(2012年4期)2012-04-29 06:12:13
    就這樣玩會(huì)VBA中常見的自定義控件
    電腦迷(2012年24期)2012-04-29 00:44:03
    广南县| 昭通市| 崇州市| 惠州市| 台中县| 上犹县| 普陀区| 蒙阴县| 张家川| 东乡县| 安阳市| 彭阳县| 舞钢市| 昂仁县| 上林县| 南京市| 崇明县| 施甸县| 通道| 泽普县| 麻栗坡县| 绩溪县| 莱芜市| 隆尧县| 长宁县| 双鸭山市| 宜宾县| 杭锦后旗| 洱源县| 扬中市| 临汾市| 涟源市| 五华县| 威海市| 东乡| 平谷区| 芜湖市| 荃湾区| 安新县| 绵阳市| 栖霞市|