用python计算工程量_基于Python脚本程序的电缆工程量快速统计方法与流程

本发明涉及电力工程土建专业电缆部分工程量计算领域,具体地说是设计人员用于AutoCAD中标注、统计图纸中的电缆排管和电缆手井工程量的方法。

背景技术:

随着社会经济的迅速发展和城市规划的整体需要,电力通道日益紧张,电缆排管敷设因造价适中、有效减少电缆遭受外力破坏和机械损伤,被广泛应用于居配项目和市政项目。设计人员在绘制完电缆走向图后,需明确标出电缆手井型号、电缆排管孔数和长度,准确统计出电缆手井和电缆排管工程量(即材料表)。

电缆手井和电缆排管材料表具有重要作用,既是技经人员编制设计预算的直接依据,又是招标文件中工程量清单的重要组成部分。目前,业内设计人员传统的标注和统计方法,主要依靠逐个手工标记和人工统计,存在耗时耗力、结果易错缺点,最终导致材料表正确性存疑。因而,需要一种新的方式来快速准确统计电缆手井、电缆排管工程量。

技术实现要素:

本发明要解决的技术问题是:提供一种基于Python脚本程序的电缆工程量快速统计方法,提供工作效率。

本发明解决其技术问题所采用的技术方案是:一种基于Python脚本程序的电缆工程量快速统计方法,具有如下步骤:

(1)设计人员利用AutoCAD绘制电缆走向图,AutoCAD电缆走向图中含有多个电缆手井及多个电缆排管;设计人员将不同类型的电缆手井做成不同名称的块;

该方法还包括如下步骤:

(2)标注电缆手井信息:输入需要标注的电缆手井的名称和尺寸,读取上述电缆手井的名称和尺寸,遍历AutoCAD图块,获取图块名称,若图块名称是与给定的电缆手井名称相同则对相应的图块标注相应的电缆手井标注信息。

步骤(2)中,识别出图块为电缆手井时,读取电缆手井在图中的坐标,作为电缆手井标注信息插入点。

步骤(1)还包括:设计人员用“多段线”命令绘制电缆排管,将电缆排管的多段线的“起始线段高度、终止线段高度和全局高度”属性设为相等。

该方法还包括如下步骤:

(3)标注电缆排管信息:设定电缆排管的多段线高度和长度裕度,遍历AutoCAD多段线,获取多段线高度,若多段线高度是与给定的电缆排管的多段线高度相同则表示该多段线为电缆排管,获取该多段线长度即为电缆排管长度,对该多段线标注电缆排管标注信息。

识别出多段线为电缆排管时,读取电缆排管的起点、终点坐标,计算得到电缆排管中点坐标,作为电缆排管标注信息插入点。

电缆排管标注信息以“D=孔径;K=孔数;L=长度”的形式给出;“孔径”为电缆排管内所采用保护管的外径、“孔数”为电缆排管内所用保护管数量、“长度”为电缆排管长度;该方法还包括如下步骤:(4)由设计人员标注电缆排管的孔数和孔径。

步骤(2)中,电缆手井标注信息以“字母+尺寸”的形式给出;

该方法还包括如下步骤:(5)统计电缆手井信息:

5.1):遍历AutoCAD电缆走向图上的所有“多行文本”,包括所有电缆手井标注信息在内,形成原始字符串;

5.2):根据电缆手井标注信息“字母+尺寸”的文本特点,编写正则表达式:“[A-Z]\d+\W\d+”;

5.3):在步骤5.1)中的原始字符串中,利用Python自带的正则库re的re.findall()函数找出所有电缆手井标注信息,得到电缆手井列表;

5.4):对步骤5.3)得到的电缆手井列表去重,统计获得电缆手井工程量。

该方法还包括如下步骤:(6)统计电缆排管信息:

6.1):遍历AutoCAD电缆走向图上的所有“多行文本”,包括所有电缆排管标注信息在内,形成原始字符串;

6.2):根据电缆排管标注信息“D=孔径;K=孔数;L=长度”的文本特点,编写正则表达式:“([A-Z]\W\d+)([A-Z]\W\d+)([A-Z]\W\d+)”;

6.3):在步骤6.1)中的原始字符串中,利用Python自带的正则库re的re.findall()函数找出所有电缆排管标注信息。得到电缆排管列表;

6.4):以电缆排管的组合参数(孔径,孔数)为研究对象,对步骤6.3)电缆排管列表中的电缆排管进行分组、统计,获得不同(孔径,孔数)组合的电缆排管工程量。

本发明的有益效果是:本发明提供了一种基于Python脚本程序的电缆工程量快速统计方法,标注工作耗时可由传统的2小时降低到0.5小时,工作效率提升75%。自动统计图纸中的电缆手井、电缆排管工程量,统计工作耗时由传统的3小时降低至1分钟,工作效率提升99%。本发明提高了统计结果的正确率。本发明有效改变设计人员依靠人工统计工程量的做法,有效避免了工程量统计的错项、漏项。

附图说明

下面结合附图对本发明进一步说明。

图1是本发明的整体流程图;

图2是本发明中标注电缆手井的流程图;

图3是本发明中标注电缆排管的流程图;

图4是本发明中统计电缆手井的流程图;

图5是本发明中统计电缆排管的流程图;

图6是本发明的初始绘制的电缆走向图;

图7是标注了电缆手井标注信息的电缆走向图;

图8是标注了电缆排管标注信息的电缆走向图;

图9是完善了电缆排管标注信息的电缆走向图。

具体实施方式

现在结合附图对本发明作进一步的说明。这些附图均为简化的示意图仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。

如图1所示,一种基于Python脚本程序的电缆工程量快速统计方法,具有如下步骤:

(1)设计人员利用AutoCAD绘制电缆走向图,AutoCAD电缆走向图中含有多个电缆手井及多个电缆排管;设计人员将不同类型的电缆手井做成不同名称的块。块的“名称”属性具有唯一性,据此可以识别图元文件是否为何种电缆手井。比如:直通井图块名称可定义为SJI;转角井图块名称可定义为SJL;三通井图块名称可定义为SJT;四通井图块名称可定义为SJX。

在步骤(1)中,设计人员完成电缆基本绘图,举例如图6。图6中包括:3个I15×9直通井、1个L17×9转角井、3个T30×9三通井。

如图2所示,该方法还包括如下步骤:

(2)标注电缆手井信息:输入需要标注的电缆手井的名称和尺寸,读取上述电缆手井的名称和尺寸,遍历AutoCAD图块,获取图块名称,若图块名称是与给定的电缆手井名称相同则对相应的图块标注相应的电缆手井标注信息。

步骤(2)中,识别出图块为电缆手井时,读取电缆手井在图中的坐标,作为电缆手井标注信息插入点。

具体地,在步骤(2)中,电缆手井标注信息说明如下:

①标注位置:读取电缆手井在图中的坐标,作为电缆手井标注信息插入点。

②标注方法:操纵AutoCAD软件的“多行文本(MText)”命令。

③标注内容:电缆手井标注信息,以“字母+尺寸”的形式给出。某个电缆手井标注信息举例:I15×9,表示直通井150cm×90cm。标注完电缆手井信息如图7所示。

步骤(1)还包括:设计人员用“多段线”命令绘制电缆排管,将电缆排管的多段线的“起始线段高度、终止线段高度和全局高度”属性设为相等,记为H,同时,为区别于图面其他内容,该H值具有唯一性。根据多段线全局高度属性,可识别图元文件是否为电缆排管。传统的电缆排管标注方法,设计人员往往只标注孔数和长度,且分开标注。本发明提出形如“D=孔径;K=孔数;L=长度”的多行文本的标注方式,实现了孔径、孔数、长度三者的关联,可以完整描述一段电缆排管信息。

如图3所示,该方法还包括如下步骤:

(3)标注电缆排管信息:设定电缆排管的多段线高度和长度裕度,遍历AutoCAD多段线,获取多段线高度,若多段线高度是与给定的电缆排管的多段线高度相同则表示该多段线为电缆排管,获取该多段线长度即为电缆排管长度,对该多段线标注电缆排管标注信息。

识别出多段线为电缆排管时,读取电缆排管的起点、终点坐标,计算得到电缆排管中点坐标,作为电缆排管标注信息插入点。

电缆排管标注信息以“D=孔径;K=孔数;L=长度”的形式给出;“孔径”为电缆排管内所采用保护管的外径、“孔数”为电缆排管内所用保护管数量、“长度”为电缆排管长度;该方法还包括如下步骤:(4)由设计人员标注电缆排管的孔数和孔径。

电缆排管标注信息说明如下:

①标注位置:读取电缆排管的起点、终点坐标,计算得到电缆排管中点坐标,作为电缆排管标注信息插入点。

②标注方法:操纵AutoCAD软件的“多行文本(MText)”命令。

③标注内容:电缆排管标注信息,形如:“D=孔径;K=孔数;L=长度”,“孔数”和“孔径”两个参数由设计人员给予完善,“长度”自动获取。某段电缆排管自动标注信息举例:D=;K=;L=4m,设计人员完善后:D=150;K=4;L=4m,表示该段排管为4根、150mm直径、4m长。自动标注电缆排管信息后,如图8所示。经人工完善电缆手井、电缆排管信息后,主要是设计人员完善标注了电缆排管的孔数和孔径后,如图9所示。

标注电缆手井完毕后,设计人员可根据实际需要,修改预定尺寸。标注电缆排管完毕后,设计人员根据电缆实际情况完善“孔径”和“孔数”。

如图4所示,该方法还包括如下步骤:(5)统计电缆手井信息:

5.1):遍历AutoCAD电缆走向图上的所有“多行文本”,包括所有电缆手井标注信息在内,形成原始字符串。举例:

5.2):根据电缆手井标注信息“字母+尺寸”的文本特点,编写正则表达式:“[A-Z]\d+\W\d+”;

5.3):在步骤5.1)中的原始字符串中,利用Python自带的正则库re的re.findall()函数找出所有电缆手井标注信息,得到电缆手井列表;举例:

5.4):对步骤5.3)得到的电缆手井列表去重,统计获得电缆手井工程量。举例:

如图5所示,该方法还包括如下步骤:(6)统计电缆排管信息:

6.1):遍历AutoCAD电缆走向图上的所有“多行文本”,包括所有电缆排管标注信息在内,形成原始字符串;

6.2):根据电缆排管标注信息“D=孔径;K=孔数;L=长度”的文本特点,编写正则表达式:“([A-Z]\W\d+)([A-Z]\W\d+)([A-Z]\W\d+)”;

6.3):在步骤6.1)中的原始字符串中,利用Python自带的正则库re的re.findall()函数找出所有电缆排管标注信息。得到电缆排管列表;举例如下:

6.4):以电缆排管的组合参数(孔径,孔数)为研究对象,对步骤6.3)电缆排管列表中的电缆排管进行分组、统计,获得不同(孔径,孔数)组合的电缆排管工程量。举例如下:

该方法还包括如下步骤:

(7)统计结果输出到Excel文件,步骤如下:

步骤7.1:打开模版文件。

步骤7.2:将步骤5.4)、步骤6.4)中的数据,逐行写入模版文件。

步骤7.3:将写有统计结果的模板文件另存为“yyyymmdd工程量统计.xlsx”,保存模板文件。如有同名文件,则事先删除。

以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值