亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Python 的管道力學(xué)分析報(bào)告生成程序?qū)崿F(xiàn)

        2024-05-28 10:10:30王鶴螢蘭天寶王驥驍
        大科技 2024年21期
        關(guān)鍵詞:程序報(bào)告分析

        周 航,王鶴螢,龍 波,蘭天寶,王驥驍

        (中國(guó)核電工程有限公司,北京 100840)

        0 引言

        力學(xué)分析工作是核電工程中管道布置設(shè)計(jì)工作的重要環(huán)節(jié)。目前較為通用的力學(xué)管道商業(yè)計(jì)算軟件為國(guó)外引進(jìn)的PIPESTRESS 軟件,該軟件在核級(jí)管道力學(xué)計(jì)算中已被廣泛采用。但該軟件沒有針對(duì)中文報(bào)告文檔的生成模塊,目前對(duì)PIPESTRESS 計(jì)算結(jié)果的提取和處理缺乏高效、自動(dòng)化的方式。在力學(xué)分析工作過程中需要產(chǎn)出大量的docx 格式的電子報(bào)告文檔。報(bào)告文檔通常具有相似的結(jié)構(gòu),如幾何模型說明,設(shè)計(jì)條件,計(jì)算原則,計(jì)算結(jié)果等,并且經(jīng)常包含各種各樣相同的要素信息,如項(xiàng)目名稱,工種名稱等。同事,報(bào)告文檔中還涉及大量技術(shù)指標(biāo)的確定和分析,對(duì)不同的報(bào)告,這些技術(shù)指標(biāo)均需要根據(jù)對(duì)應(yīng)的計(jì)算結(jié)果給出,其中的引用關(guān)系及部分指標(biāo)之間的關(guān)聯(lián)錯(cuò)綜復(fù)雜,難以保證技術(shù)狀態(tài)的一致性。分析者需要從PIPESTRESS 的大量計(jì)算結(jié)果文件中人工查找數(shù)據(jù),手動(dòng)填寫并編制報(bào)告。人工查找數(shù)據(jù)效率較低,錯(cuò)誤率較高;此外,當(dāng)計(jì)算條件及分析要求發(fā)生變化,或模型需要修改及重新計(jì)算時(shí),分析者均需要對(duì)文檔進(jìn)行重復(fù)編輯及排版,報(bào)告中特定項(xiàng)目的統(tǒng)一聲明和規(guī)范也需要手動(dòng)更新,占用了大量的人力和時(shí)間資源。

        針對(duì)此種情況,本文提供了一種可與PIPESTRESS軟件結(jié)合應(yīng)用的管道力學(xué)分析報(bào)告生成程序,可使用PIPESTRESS 計(jì)算結(jié)果文件直接生成管道力學(xué)分析報(bào)告文檔并進(jìn)行排版,提高管道力學(xué)分析的效率及保證成品文件的準(zhǔn)確性。該程序使用Python 程序設(shè)計(jì)語言編寫程序,對(duì)PIPESTRESS 結(jié)果數(shù)據(jù)進(jìn)行提取及分析,將報(bào)告所需數(shù)據(jù)自動(dòng)添加到word 模板文檔中對(duì)應(yīng)位置并進(jìn)行排版,生成word 格式的力學(xué)報(bào)告文件正文部分。利用程序自動(dòng)化實(shí)現(xiàn)了部分力學(xué)報(bào)告質(zhì)量保證要求的強(qiáng)制執(zhí)行,并減輕了管道分析工作人員的工作負(fù)擔(dān)。實(shí)現(xiàn)了對(duì)報(bào)告的模板化、標(biāo)準(zhǔn)化、規(guī)范化管理,建立報(bào)告文檔與力學(xué)計(jì)算結(jié)果關(guān)鍵指標(biāo)的關(guān)聯(lián),最終有效地規(guī)范報(bào)告編制流程,縮短編制周期,提高文檔質(zhì)量,降低編制成本[1]。

        1 Python 技術(shù)概述

        本文所述管道力學(xué)分析報(bào)告高效編制程序的開發(fā)基于Python 程序設(shè)計(jì)語言。Python 語言自從20 世紀(jì)90 年代初誕生至今,已經(jīng)成為最受喜愛的編程語言之一,其主要原因是該語言語法的簡(jiǎn)潔性、易讀性以及強(qiáng)大的可擴(kuò)展性,不僅免費(fèi)開源,對(duì)操作系統(tǒng)要求低,沒有商業(yè)許可限制,還有極其強(qiáng)大的第三方庫和龐大穩(wěn)定的社區(qū),真正做到面向?qū)ο?,靈活強(qiáng)大??傮w來說,Python 語言是可以快速工作并且集成系統(tǒng)更高效的編程語言,可以滿足工作流程自動(dòng)化需求。

        Python 語言對(duì)Word 文檔的操作有兩大類方法:①通過Word 官方提供的COM 接口來實(shí)現(xiàn)。②通過直接讀寫Word 文檔來實(shí)現(xiàn)。前者利用Word 程序提供的接口功能。后者通過第三方庫基于對(duì)Word 文檔的存儲(chǔ)格式的解析,提供對(duì)文檔的操作。本文采用第三方庫的方法對(duì)文檔進(jìn)行底層操作。

        Python-docx 作為Python 的一種第三方庫,可用于創(chuàng)建及修改微軟Office 辦公程序中的Word 文檔內(nèi)容及格式,提供完善的Word 程序操作。Jinja2 基于是Python 生態(tài)系統(tǒng)的模板語言。模板語言允許創(chuàng)建基于文本的文檔,文檔中的部分內(nèi)容可以動(dòng)態(tài)生成。生成的文件可以是HTML、JSON、XML 或任何使用純文本作為編碼的文件。Python-docx-tpl 是結(jié)合Python-docx 和Jinja2 的Python 第三方庫,用于將Word 模板文件和Jinja 標(biāo)記結(jié)合使用,基于模板生成更多文檔。

        2 管道力學(xué)分析報(bào)告的編制

        管道力學(xué)分析報(bào)告需要給出計(jì)算所依據(jù)的條件,該管道的幾何特征(管道的溫度,壓力,壁厚,線重;支架及閥門的編號(hào),功能,模型中的節(jié)點(diǎn)號(hào),約束方向等),計(jì)算所依據(jù)的規(guī)范,計(jì)算結(jié)果數(shù)據(jù)(規(guī)范中不同方程下最大應(yīng)力所在的節(jié)點(diǎn)編號(hào),計(jì)算應(yīng)力值,許用應(yīng)力值,應(yīng)力計(jì)算值與許用值之比等)。因此,一份管道力學(xué)分析報(bào)告通??梢杂山y(tǒng)一標(biāo)準(zhǔn)化的模板和個(gè)性化的數(shù)據(jù)組成。

        同一項(xiàng)目的管道力學(xué)分析報(bào)告,其大部分內(nèi)容如報(bào)告結(jié)構(gòu)、排版格式通常是相同的,如封面、計(jì)算程序及計(jì)算標(biāo)準(zhǔn)、符號(hào)說明、規(guī)范說明、參考文獻(xiàn)等內(nèi)容通常完全相同。因此,可以將這些內(nèi)容提前編制好作為報(bào)告模板,在此基礎(chǔ)上利用程序提取出個(gè)性化的計(jì)算結(jié)果數(shù)據(jù)并填充至模板的相應(yīng)位置,便可實(shí)現(xiàn)管道力學(xué)分析報(bào)告的高效準(zhǔn)確編制[2]。

        3 管道力學(xué)計(jì)算報(bào)告生成程序

        程序?qū)?bào)告的處理過程本質(zhì)上是將文檔模板化。對(duì)文檔進(jìn)行固定化部分和參數(shù)化部分,針對(duì)參數(shù)化部分的數(shù)據(jù)進(jìn)行修改。利用程序?qū)?shù)據(jù)和模板兩個(gè)原成分以規(guī)定的形式“粘合”,生成最終文檔。

        3.1 數(shù)據(jù)提取

        從PIPESTRESS 程序中提取所需數(shù)據(jù),可以利用Python 中的正則表達(dá)式(re Regular Expression)模塊。該模塊具有強(qiáng)大的文本解析、復(fù)雜字符串分析和信息提取功能。利用re.sub(pattern,repl,string)指令獲取結(jié)果文件中的特定參數(shù)。并通過查找關(guān)鍵字篩選,將數(shù)據(jù)屬性及相關(guān)聯(lián)的數(shù)據(jù)值作為字典的鍵值對(duì)進(jìn)行儲(chǔ)存。字典是Python 對(duì)象中的一種數(shù)據(jù)類型,通過鍵值對(duì)來存儲(chǔ)對(duì)象。每個(gè)項(xiàng)目之間的次序是任意的,只是創(chuàng)建一種鍵-值對(duì)的映射關(guān)系。字典作為一種可變?nèi)萜髂P?,是表示無順序集合的一個(gè)非常靈活的工具。在力學(xué)報(bào)告中,每個(gè)節(jié)點(diǎn)在各個(gè)工況下都具有很多屬性參數(shù),可以將屬性的名稱作為字典的鍵,將屬性的值作為字典的值。例如,將“管道編號(hào)”“管道外徑”“管道壁厚”作為字典的鍵,對(duì)應(yīng)地將“001”“33.4”“2.77”作為字典的值。用字典對(duì)象調(diào)用相關(guān)的管道信息時(shí),數(shù)據(jù)存儲(chǔ)量小,存儲(chǔ)結(jié)構(gòu)簡(jiǎn)潔明了[3]。

        利用re 模塊定義查找模型集中質(zhì)量的函數(shù),并從結(jié)果文件中獲取集中質(zhì)量的語句示例如下。

        示例中定義的find_MA 函數(shù)可將結(jié)果文件中形如“MA=1.580”中的集中質(zhì)量參數(shù)“1.58”提取為函數(shù)結(jié)果。

        3.2 報(bào)告生成的實(shí)現(xiàn)

        模板中需要統(tǒng)一標(biāo)準(zhǔn)化的部分可以根據(jù)項(xiàng)目需要預(yù)先編制。模板在邏輯上與代碼是分開的,允許對(duì)模板不變的部分進(jìn)行獨(dú)立修改而無須修改程序的源代碼。

        高效編制管道力學(xué)分析報(bào)告程序需要用到的核心功能是將程序提取出的數(shù)據(jù)填充進(jìn)Word 模板文檔中,為其指定位置并編輯格式[4]。

        調(diào)用Python-docx-tpl 庫并指定文檔模板文件為reporter.docx 的語句如下。

        3.2.1 文本生成

        以計(jì)算結(jié)論為例,力學(xué)分析報(bào)告要求以文本形式給出管道的最大應(yīng)力比值和所在的節(jié)點(diǎn)號(hào)。

        首先將程序中提取出的最大應(yīng)力比值及其節(jié)點(diǎn)號(hào)儲(chǔ)存于字符串變量maxstressnode 與maxstressratio 中。

        在模板文件reporter.docx 中相應(yīng)位置插入含有占位符的語句描述,案例如下。

        計(jì)算表明所有節(jié)點(diǎn)的應(yīng)力比都低于節(jié)點(diǎn){{maxnode}},此點(diǎn)的最大應(yīng)力比值為{{maxratio}}。

        占位符名稱以模板語言的格式書寫在雙大括號(hào)內(nèi)。以下列語句在程序中給出變量和占位符間的對(duì)應(yīng)關(guān)系,從而使變量填充至模板文檔的正確位置。

        渲染文檔的語句為:tpl.render(context)

        渲染后,在文檔中便可得到用結(jié)果文件中對(duì)應(yīng)數(shù)據(jù)填充語句如下。

        計(jì)算表明所有節(jié)點(diǎn)的應(yīng)力比都低于節(jié)點(diǎn)786,此點(diǎn)的最大應(yīng)力比值為0.964。

        3.2.2 表格生成

        進(jìn)一步地,以應(yīng)力清單為例,力學(xué)分析報(bào)告要求以表格形式給出管道的應(yīng)力評(píng)定結(jié)果。

        首先將程序中提取出的數(shù)據(jù)整理成適合填充至Word 文檔表格中的數(shù)據(jù)結(jié)構(gòu),其語句如下。

        例中變量maxstress 為使用程序預(yù)先提取出的管線最大應(yīng)力計(jì)算結(jié)果,數(shù)據(jù)結(jié)構(gòu)形式為字典,字典的鍵為管道的各種屬性名稱,字典的值為這些屬性的具體數(shù)值。變量head 為表格表頭。上述語句將表頭與數(shù)據(jù)賦值給列表maxtables。

        下列語句可以選擇出需要填充至模板文檔的內(nèi)容。

        語句中maxtables 為需要填充至模板文件中的數(shù)據(jù)。tbl,contents 為模板文件中占位符的名稱。在模板文件reporter.docx 中相應(yīng)位置插入含有占位符的表格,占位符名稱tbl_contents、col 與前文中整理出的數(shù)據(jù)結(jié)構(gòu)相對(duì)應(yīng),含占位符的表格模板示例如表1 所示。

        表1 含占位符的表格模板示例

        渲染文檔,填充內(nèi)容并將其另存為output 文件夾下名為L(zhǎng)XSJ.docx 文檔的語句如下。

        渲染后,文件LXSJ.docx 中便可得到用特定數(shù)據(jù)填充的表格。程序生成的管道應(yīng)力評(píng)定結(jié)果表格示例如表2 所示。

        表2 程序生成的管道應(yīng)力評(píng)定結(jié)果表格示例

        其他幾何特征,計(jì)算結(jié)果數(shù)據(jù)等可以用同樣的方法在模板中定義位置,提取數(shù)據(jù),并填充結(jié)果。最后新生成的文件LXSJ.docx 即為本題目的管道力學(xué)分析報(bào)告正文部分,計(jì)算者僅需補(bǔ)充報(bào)告附錄,對(duì)計(jì)算說明、修改說明進(jìn)行敘述,并對(duì)報(bào)告進(jìn)行核對(duì)。至此,用戶利用該程序高效、準(zhǔn)確地從PIPESTRESS 結(jié)果文件中提取出管道應(yīng)力分析報(bào)告所需的數(shù)據(jù),并在項(xiàng)目模板的基礎(chǔ)上自動(dòng)生成了不同管道的應(yīng)力分析報(bào)告[5]。

        4 結(jié)語

        管道力學(xué)分析工作中的報(bào)告編制過程。以及校審環(huán)節(jié)改正錯(cuò)誤的重復(fù)編制過程大約耗時(shí)16h 左右。使用該軟件自動(dòng)生成報(bào)告后,分析者僅需對(duì)結(jié)果進(jìn)行核對(duì),降低了由于人為因素造成的報(bào)告出錯(cuò)概率,并將報(bào)告編制過程時(shí)間大幅縮短,平均一份報(bào)告的編制過程可縮短至1~2h。本文所述基于Python 程序設(shè)計(jì)語言自主研發(fā)的管道力學(xué)分析報(bào)告自動(dòng)生成程序,需求明確,可直接解決管道力學(xué)分析工作編制報(bào)告過程中的部分重復(fù)性工作,實(shí)現(xiàn)業(yè)務(wù)自動(dòng)化;使用方便,報(bào)告模板可根據(jù)不同項(xiàng)目要求進(jìn)行更新迭代;并具有良好的可擴(kuò)展性。此外,本文所述技術(shù)可以推廣應(yīng)用于其他領(lǐng)域的文檔動(dòng)態(tài)編制工作中,具有較好的參考意義。

        猜你喜歡
        程序報(bào)告分析
        隱蔽失效適航要求符合性驗(yàn)證分析
        試論我國(guó)未決羈押程序的立法完善
        電力系統(tǒng)不平衡分析
        電子制作(2018年18期)2018-11-14 01:48:24
        “程序猿”的生活什么樣
        一圖看懂十九大報(bào)告
        英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
        報(bào)告
        電力系統(tǒng)及其自動(dòng)化發(fā)展趨勢(shì)分析
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        報(bào)告
        性欧美大战久久久久久久久| 丰满老熟妇好大bbbbb| 人妻少妇久久中中文字幕| 色老汉亚洲av影院天天精品| 欧美成人看片黄a免费看| 超碰97人人射妻| av一区二区在线网站| 亚洲精品第一国产麻豆| 狠狠躁日日躁夜夜躁2020| 一区二区在线观看日本视频| 国产经典免费视频在线观看| 馬与人黃色毛片一部| 人人爽久久涩噜噜噜丁香| 欲女在线一区二区三区| 国产一区二三区中文字幕| 精品无吗国产一区二区三区av | 国产 一二三四五六| 日韩三级一区二区三区四区| 久久久久综合一本久道| 亚洲av乱码中文一区二区三区| 中国女人内谢69xxxx免费视频 | 亚洲女同一区二区久久| 国产成人美女AV| 乱码精品一区二区三区| 国产欧美日韩一区二区三区| 国产精品黑丝高跟在线粉嫩| 97人妻中文字幕总站| 日本一区不卡高清在线观看| 亚洲欧洲久久久精品| 亚洲精品久久久久高潮| 日本丰满熟妇hd| 国产精品妇女一二三区| 亚洲一区二区二区视频| 人妻中文久久人妻蜜桃| 日日噜噜夜夜久久密挑| 国产精品久久久久免费看 | 放荡的少妇2欧美版| 国产三级精品视频2021| 少妇被爽到高潮喷水免费福利| 久久综合加勒比东京热| 国产日韩亚洲中文字幕|