本发明涉及电力工程土建专业电缆部分工程量计算领域,具体地说是设计人员用于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”,保存模板文件。如有同名文件,则事先删除。

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

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

  1. python计算坡度_基于python实现利用DEM数据计算坡度、坡向

    1.Python的地形三维可视化--简介Matplotlib和gdal https://blog.csdn.net/allenlu2008/article/details/51880333 2.Pyc ...

  2. c语言的tlv协议编解码函数,基于C语言的TLV格式协议快速解析方法与流程

    技术特征: 1.基于C语言的TLV格式协议快速解析方法,其特征在于,在客户机上设有编译器和解析器,在服务器上也设有编译器和解析器,从而使客户机和服务器都同时具备编码能力和解码能力:客户机和服务器通过网 ...

  3. python实现案例_基于Python实现相关分析案例

    节选自<Python预测之美:数据分析与算法实战>. 相关关系是一种非确定的关系,就好像身高与体重的关系一样,它们之间不能用一个固定的函数关系来表示.而相关分析就是研究这种随机变量间相关关 ...

  4. 大学计算机基础python学多久_基于Python 的“大学计算机基础”课程教学设计

    基于Python 的"大学计算机基础"课程教学设计 日期:2018-04-11 04:32 摘要 培养非计算机专业大学生的计算思维能力,在"大学计算机基础"课程 ...

  5. python 英语分词_基于Python NLTK库进行英文文本预处理

    文本预处理是要文本处理成计算机能识别的格式,是文本分类.文本可视化.文本分析等研究的重要步骤.具体流程包括文本分词.去除停用词.词干抽取(词形还原).文本向量表征.特征选择等步骤,以消除脏数据对挖掘分 ...

  6. 浙江农林大学python期末考试_基于Python的地图匹配最短路径法实现

    117 科学论坛 在智能交通领域,众所周知,智能 交通系统在当今世界道路交通网络的管 理中发挥着重要的作用,而车辆导航系 统又是智能交通系统的重要组成部分. 在车辆导航系统中,定位的精确性和实 时性是 ...

  7. 基于python爬虫数据处理_基于Python爬虫的校园数据获取

    苏艺航 徐海蛟 何佳蕾 杨振宇 王佳鹏 摘要:随着移动时代的到来,只适配了电脑网页.性能羸弱的校园教务系统,已经不能满足学生们的移动查询需求.为此,设计了一种基于网络爬虫的高实用性查询系統.它首先通过 ...

  8. python 量化交易_基于Python的量化交易工具清单(上)

    -- Python量化工具清单 -- 以下内容来源于Wilson Freitas的Github项目"Awesome Quant".原文中包含了丰富的语言类别,但是后续介绍主要针对P ...

  9. python自动化测试开发_基于python的selenium2自动化测试从基础到实战(Python3、selenium2、自动化测试、web测试)...

    Selenium2是目前比较流行的一款针对web页面测试的自动化测试工具,他的前身是Selenium .Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozi ...

  10. python计算信息增益_利用Python提取ABAQUS的计算结果(ODB)信息、体积、应变等变化(一)...

    00 实例模型 一个金属长方体,我们需要对其做拉伸的加载约束示意图如图1,并在完成后采用Python命令流读取参考点的位移.体积.应变随加载时间的变化情况. 图1 金属长方体约束加载示意图 01 Py ...

最新文章

  1. java游戏_java开发的七个金典游戏你小时候肯定玩过
  2. uniformRowHeights属性
  3. qt自定义窗口添加父窗口后,显示不出来
  4. 禁用UITabBarController双击事件
  5. webpack2 项目
  6. XMLHelper 辅助类
  7. SQL Server打开数据表中的XML内容时报错的解决办法
  8. ASP.NET MVC5+EF6+EasyUI 后台管理系统(28)-系统小结
  9. Prefuse及相关数据结构可视化工具
  10. 使用html框架制作一个网站布局
  11. 几道经典逻辑推理题,提高你的逻辑思考能力
  12. 黑客如何入侵你的汽车?
  13. AS01 创建固定资产卡片 BAPI_FIXEDASSET_CREATE1
  14. Python最好的就业方向
  15. 基于可穿戴传感器和深度卷积神经网络运动状态进行下半身监控算法
  16. 风控系统案例:中国移动
  17. 探索使用 Unity 开发 Gear VR App 遇到的坑
  18. Excel 随机生成数据
  19. CA6140手柄轴的加工工艺及夹具设计(说明书+CAD图纸+三维图+工序卡……)
  20. 钉钉markdown格式换行

热门文章

  1. 精通JavaScript?关于JavaScript的内存与性能问题,你又了解多少呢?
  2. 精通javascript 代码总结
  3. 【githubboy】比较实用的 Python 翻译工具库,集成了谷歌、必应、有道、百度等多个翻译平台 API
  4. iOS之线程(二)GCD
  5. ping测试告警软件,SmartPing:一个服务器Ping值监测工具,带报警功能
  6. 基于51单片机简易计算器LCD1602显示
  7. Java视频在线观看网址
  8. Debian sequeeze编译coreavc 2.0+mplayer
  9. Hanlp-地名识别调试方法详解
  10. 用花生壳搭建个人简易静态网站