用python计算工程量_基于Python脚本程序的电缆工程量快速统计方法与流程
本發(fā)明涉及電力工程土建專業(yè)電纜部分工程量計算領(lǐng)域,具體地說是設(shè)計人員用于AutoCAD中標注、統(tǒng)計圖紙中的電纜排管和電纜手井工程量的方法。
背景技術(shù):
隨著社會經(jīng)濟的迅速發(fā)展和城市規(guī)劃的整體需要,電力通道日益緊張,電纜排管敷設(shè)因造價適中、有效減少電纜遭受外力破壞和機械損傷,被廣泛應(yīng)用于居配項目和市政項目。設(shè)計人員在繪制完電纜走向圖后,需明確標出電纜手井型號、電纜排管孔數(shù)和長度,準確統(tǒng)計出電纜手井和電纜排管工程量(即材料表)。
電纜手井和電纜排管材料表具有重要作用,既是技經(jīng)人員編制設(shè)計預(yù)算的直接依據(jù),又是招標文件中工程量清單的重要組成部分。目前,業(yè)內(nèi)設(shè)計人員傳統(tǒng)的標注和統(tǒng)計方法,主要依靠逐個手工標記和人工統(tǒng)計,存在耗時耗力、結(jié)果易錯缺點,最終導(dǎo)致材料表正確性存疑。因而,需要一種新的方式來快速準確統(tǒng)計電纜手井、電纜排管工程量。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是:提供一種基于Python腳本程序的電纜工程量快速統(tǒng)計方法,提供工作效率。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種基于Python腳本程序的電纜工程量快速統(tǒng)計方法,具有如下步驟:
(1)設(shè)計人員利用AutoCAD繪制電纜走向圖,AutoCAD電纜走向圖中含有多個電纜手井及多個電纜排管;設(shè)計人員將不同類型的電纜手井做成不同名稱的塊;
該方法還包括如下步驟:
(2)標注電纜手井信息:輸入需要標注的電纜手井的名稱和尺寸,讀取上述電纜手井的名稱和尺寸,遍歷AutoCAD圖塊,獲取圖塊名稱,若圖塊名稱是與給定的電纜手井名稱相同則對相應(yīng)的圖塊標注相應(yīng)的電纜手井標注信息。
步驟(2)中,識別出圖塊為電纜手井時,讀取電纜手井在圖中的坐標,作為電纜手井標注信息插入點。
步驟(1)還包括:設(shè)計人員用“多段線”命令繪制電纜排管,將電纜排管的多段線的“起始線段高度、終止線段高度和全局高度”屬性設(shè)為相等。
該方法還包括如下步驟:
(3)標注電纜排管信息:設(shè)定電纜排管的多段線高度和長度裕度,遍歷AutoCAD多段線,獲取多段線高度,若多段線高度是與給定的電纜排管的多段線高度相同則表示該多段線為電纜排管,獲取該多段線長度即為電纜排管長度,對該多段線標注電纜排管標注信息。
識別出多段線為電纜排管時,讀取電纜排管的起點、終點坐標,計算得到電纜排管中點坐標,作為電纜排管標注信息插入點。
電纜排管標注信息以“D=孔徑;K=孔數(shù);L=長度”的形式給出;“孔徑”為電纜排管內(nèi)所采用保護管的外徑、“孔數(shù)”為電纜排管內(nèi)所用保護管數(shù)量、“長度”為電纜排管長度;該方法還包括如下步驟:(4)由設(shè)計人員標注電纜排管的孔數(shù)和孔徑。
步驟(2)中,電纜手井標注信息以“字母+尺寸”的形式給出;
該方法還包括如下步驟:(5)統(tǒng)計電纜手井信息:
5.1):遍歷AutoCAD電纜走向圖上的所有“多行文本”,包括所有電纜手井標注信息在內(nèi),形成原始字符串;
5.2):根據(jù)電纜手井標注信息“字母+尺寸”的文本特點,編寫正則表達式:“[A-Z]\d+\W\d+”;
5.3):在步驟5.1)中的原始字符串中,利用Python自帶的正則庫re的re.findall()函數(shù)找出所有電纜手井標注信息,得到電纜手井列表;
5.4):對步驟5.3)得到的電纜手井列表去重,統(tǒng)計獲得電纜手井工程量。
該方法還包括如下步驟:(6)統(tǒng)計電纜排管信息:
6.1):遍歷AutoCAD電纜走向圖上的所有“多行文本”,包括所有電纜排管標注信息在內(nèi),形成原始字符串;
6.2):根據(jù)電纜排管標注信息“D=孔徑;K=孔數(shù);L=長度”的文本特點,編寫正則表達式:“([A-Z]\W\d+)([A-Z]\W\d+)([A-Z]\W\d+)”;
6.3):在步驟6.1)中的原始字符串中,利用Python自帶的正則庫re的re.findall()函數(shù)找出所有電纜排管標注信息。得到電纜排管列表;
6.4):以電纜排管的組合參數(shù)(孔徑,孔數(shù))為研究對象,對步驟6.3)電纜排管列表中的電纜排管進行分組、統(tǒng)計,獲得不同(孔徑,孔數(shù))組合的電纜排管工程量。
本發(fā)明的有益效果是:本發(fā)明提供了一種基于Python腳本程序的電纜工程量快速統(tǒng)計方法,標注工作耗時可由傳統(tǒng)的2小時降低到0.5小時,工作效率提升75%。自動統(tǒng)計圖紙中的電纜手井、電纜排管工程量,統(tǒng)計工作耗時由傳統(tǒng)的3小時降低至1分鐘,工作效率提升99%。本發(fā)明提高了統(tǒng)計結(jié)果的正確率。本發(fā)明有效改變設(shè)計人員依靠人工統(tǒng)計工程量的做法,有效避免了工程量統(tǒng)計的錯項、漏項。
附圖說明
下面結(jié)合附圖對本發(fā)明進一步說明。
圖1是本發(fā)明的整體流程圖;
圖2是本發(fā)明中標注電纜手井的流程圖;
圖3是本發(fā)明中標注電纜排管的流程圖;
圖4是本發(fā)明中統(tǒng)計電纜手井的流程圖;
圖5是本發(fā)明中統(tǒng)計電纜排管的流程圖;
圖6是本發(fā)明的初始繪制的電纜走向圖;
圖7是標注了電纜手井標注信息的電纜走向圖;
圖8是標注了電纜排管標注信息的電纜走向圖;
圖9是完善了電纜排管標注信息的電纜走向圖。
具體實施方式
現(xiàn)在結(jié)合附圖對本發(fā)明作進一步的說明。這些附圖均為簡化的示意圖僅以示意方式說明本發(fā)明的基本結(jié)構(gòu),因此其僅顯示與本發(fā)明有關(guān)的構(gòu)成。
如圖1所示,一種基于Python腳本程序的電纜工程量快速統(tǒng)計方法,具有如下步驟:
(1)設(shè)計人員利用AutoCAD繪制電纜走向圖,AutoCAD電纜走向圖中含有多個電纜手井及多個電纜排管;設(shè)計人員將不同類型的電纜手井做成不同名稱的塊。塊的“名稱”屬性具有唯一性,據(jù)此可以識別圖元文件是否為何種電纜手井。比如:直通井圖塊名稱可定義為SJI;轉(zhuǎn)角井圖塊名稱可定義為SJL;三通井圖塊名稱可定義為SJT;四通井圖塊名稱可定義為SJX。
在步驟(1)中,設(shè)計人員完成電纜基本繪圖,舉例如圖6。圖6中包括:3個I15×9直通井、1個L17×9轉(zhuǎn)角井、3個T30×9三通井。
如圖2所示,該方法還包括如下步驟:
(2)標注電纜手井信息:輸入需要標注的電纜手井的名稱和尺寸,讀取上述電纜手井的名稱和尺寸,遍歷AutoCAD圖塊,獲取圖塊名稱,若圖塊名稱是與給定的電纜手井名稱相同則對相應(yīng)的圖塊標注相應(yīng)的電纜手井標注信息。
步驟(2)中,識別出圖塊為電纜手井時,讀取電纜手井在圖中的坐標,作為電纜手井標注信息插入點。
具體地,在步驟(2)中,電纜手井標注信息說明如下:
①標注位置:讀取電纜手井在圖中的坐標,作為電纜手井標注信息插入點。
②標注方法:操縱AutoCAD軟件的“多行文本(MText)”命令。
③標注內(nèi)容:電纜手井標注信息,以“字母+尺寸”的形式給出。某個電纜手井標注信息舉例:I15×9,表示直通井150cm×90cm。標注完電纜手井信息如圖7所示。
步驟(1)還包括:設(shè)計人員用“多段線”命令繪制電纜排管,將電纜排管的多段線的“起始線段高度、終止線段高度和全局高度”屬性設(shè)為相等,記為H,同時,為區(qū)別于圖面其他內(nèi)容,該H值具有唯一性。根據(jù)多段線全局高度屬性,可識別圖元文件是否為電纜排管。傳統(tǒng)的電纜排管標注方法,設(shè)計人員往往只標注孔數(shù)和長度,且分開標注。本發(fā)明提出形如“D=孔徑;K=孔數(shù);L=長度”的多行文本的標注方式,實現(xiàn)了孔徑、孔數(shù)、長度三者的關(guān)聯(lián),可以完整描述一段電纜排管信息。
如圖3所示,該方法還包括如下步驟:
(3)標注電纜排管信息:設(shè)定電纜排管的多段線高度和長度裕度,遍歷AutoCAD多段線,獲取多段線高度,若多段線高度是與給定的電纜排管的多段線高度相同則表示該多段線為電纜排管,獲取該多段線長度即為電纜排管長度,對該多段線標注電纜排管標注信息。
識別出多段線為電纜排管時,讀取電纜排管的起點、終點坐標,計算得到電纜排管中點坐標,作為電纜排管標注信息插入點。
電纜排管標注信息以“D=孔徑;K=孔數(shù);L=長度”的形式給出;“孔徑”為電纜排管內(nèi)所采用保護管的外徑、“孔數(shù)”為電纜排管內(nèi)所用保護管數(shù)量、“長度”為電纜排管長度;該方法還包括如下步驟:(4)由設(shè)計人員標注電纜排管的孔數(shù)和孔徑。
電纜排管標注信息說明如下:
①標注位置:讀取電纜排管的起點、終點坐標,計算得到電纜排管中點坐標,作為電纜排管標注信息插入點。
②標注方法:操縱AutoCAD軟件的“多行文本(MText)”命令。
③標注內(nèi)容:電纜排管標注信息,形如:“D=孔徑;K=孔數(shù);L=長度”,“孔數(shù)”和“孔徑”兩個參數(shù)由設(shè)計人員給予完善,“長度”自動獲取。某段電纜排管自動標注信息舉例:D=;K=;L=4m,設(shè)計人員完善后:D=150;K=4;L=4m,表示該段排管為4根、150mm直徑、4m長。自動標注電纜排管信息后,如圖8所示。經(jīng)人工完善電纜手井、電纜排管信息后,主要是設(shè)計人員完善標注了電纜排管的孔數(shù)和孔徑后,如圖9所示。
標注電纜手井完畢后,設(shè)計人員可根據(jù)實際需要,修改預(yù)定尺寸。標注電纜排管完畢后,設(shè)計人員根據(jù)電纜實際情況完善“孔徑”和“孔數(shù)”。
如圖4所示,該方法還包括如下步驟:(5)統(tǒng)計電纜手井信息:
5.1):遍歷AutoCAD電纜走向圖上的所有“多行文本”,包括所有電纜手井標注信息在內(nèi),形成原始字符串。舉例:
5.2):根據(jù)電纜手井標注信息“字母+尺寸”的文本特點,編寫正則表達式:“[A-Z]\d+\W\d+”;
5.3):在步驟5.1)中的原始字符串中,利用Python自帶的正則庫re的re.findall()函數(shù)找出所有電纜手井標注信息,得到電纜手井列表;舉例:
5.4):對步驟5.3)得到的電纜手井列表去重,統(tǒng)計獲得電纜手井工程量。舉例:
如圖5所示,該方法還包括如下步驟:(6)統(tǒng)計電纜排管信息:
6.1):遍歷AutoCAD電纜走向圖上的所有“多行文本”,包括所有電纜排管標注信息在內(nèi),形成原始字符串;
6.2):根據(jù)電纜排管標注信息“D=孔徑;K=孔數(shù);L=長度”的文本特點,編寫正則表達式:“([A-Z]\W\d+)([A-Z]\W\d+)([A-Z]\W\d+)”;
6.3):在步驟6.1)中的原始字符串中,利用Python自帶的正則庫re的re.findall()函數(shù)找出所有電纜排管標注信息。得到電纜排管列表;舉例如下:
6.4):以電纜排管的組合參數(shù)(孔徑,孔數(shù))為研究對象,對步驟6.3)電纜排管列表中的電纜排管進行分組、統(tǒng)計,獲得不同(孔徑,孔數(shù))組合的電纜排管工程量。舉例如下:
該方法還包括如下步驟:
(7)統(tǒng)計結(jié)果輸出到Excel文件,步驟如下:
步驟7.1:打開模版文件。
步驟7.2:將步驟5.4)、步驟6.4)中的數(shù)據(jù),逐行寫入模版文件。
步驟7.3:將寫有統(tǒng)計結(jié)果的模板文件另存為“yyyymmdd工程量統(tǒng)計.xlsx”,保存模板文件。如有同名文件,則事先刪除。
以上述依據(jù)本發(fā)明的理想實施例為啟示,通過上述的說明內(nèi)容,相關(guān)工作人員完全可以在不偏離本項發(fā)明技術(shù)思想的范圍內(nèi),進行多樣的變更以及修改。本項發(fā)明的技術(shù)性范圍并不局限于說明書上的內(nèi)容,必須要根據(jù)權(quán)利要求范圍來確定其技術(shù)性范圍。
總結(jié)
以上是生活随笔為你收集整理的用python计算工程量_基于Python脚本程序的电缆工程量快速统计方法与流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习——SVM之交叉验证对参数(C,
- 下一篇: 《算法笔记》的codeup打不开怎么办