前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >厉害啦,土木工程师开始考虑用Python解决问题了

厉害啦,土木工程师开始考虑用Python解决问题了

作者头像
用户8949263
发布2022-04-08 13:26:06
1.4K0
发布2022-04-08 13:26:06
举报

0. 前言

钻芯综合柱状图作为一种能够全面、直观地体现钻芯法检测工作关键信息的工作成果,一直是钻芯法检测报告中的重要内容。

作者所在的单位目前使用某公司开发的绘制软件进行相关图件的绘制工作。该软件需要使用者将平时积累的钻芯检测数据(保存在EXCEL表格中)重新手动输入到软件中,这个过程涉及大量的重复劳动,费时费力。

为了提升工作效率,作者利用ezdxf开发一个小脚本,自动读取EXCEL表格中的相关内容并批量绘制钻芯综合柱状图,从而避免了相关信息的二次输入。

1. ezdxf简介

ezdxf模块用于创建新的dxf文件和读取/修改/写入现有的dxf文件。https://pypi.org/project/ezdxf/

2. 基础命令

2.1创建DXF

代码语言:javascript
复制
import ezdxf
doc = ezdxf.new('R2000') #创建一个新的DXF R2000文件

2.2.绘制线段和多边形

代码语言:javascript
复制
import ezdxf

doc = ezdxf.new('R2000') #创建一个新的DXF R2000文件

msp = doc.modelspace()

msp.add_line((10, 0), (100, 0)) #绘制一条从(10, 0)到(100, 0)的线段

msp.add_line((0, 10), (0, 100)) #绘制一条从(0,10)到(0, 100)的线段

pts = [(10,10),(10,100),(100,100),(100,10),(10,10)]#四边形的各个角点

msp.add_lwpolyline(pts) #绘制一个四边形

2.3.插入文本

代码语言:javascript
复制
import ezdxf

doc = ezdxf.new('R2000') #创建一个新的DXF R2000文件

msp = doc.modelspace()

msp.add_line((10, 0), (100, 0)) #绘制一条从(10, 0)到(100, 0)的线段

msp.add_line((0, 10), (0, 100)) #绘制一条从(0,10)到(0, 100)的线段

pts = [(10,10),(10,100),(100,100),(100,10),(10,10)] #四边形的各个角点

msp.add_lwpolyline(pts) #绘制一个四边形

mtext = msp.add_mtext('文本') #在图形中插入“文本”二字

mtext.set_location(insert=(55,55), attachment_point=5) #插入点的位置为(55,55),attachment_point表示插入点的位置与插入文本的相对位置关系。

mtext.dxf.char_height = 10 #设置字体大小

插入点相对于文本的位置

attachment_point的值

上左

1

上中

2

上右

3

中左

4

中中

5

中右

6

下左

7

下中

8

下右

9

2.4.填充

代码语言:javascript
复制
import ezdxf
doc = ezdxf.new('R2000') #创建一个新的DXF R2000文件
msp = doc.modelspace() 
msp.add_line((10, 0), (100, 0)) #绘制一条从(10, 0)到(100, 0)的线段
msp.add_line((0, 10), (0, 100)) #绘制一条从(0,10)到(0, 100)的线段
pts = [(10,10),(10,100),(100,100),(100,10),(10,10)]
msp.add_lwpolyline(pts) #绘制一个四边形

hatch = msp.add_hatch() 
hatch.paths.add_polyline_path(pts, is_closed=True)#设置填充边界              
hatch.set_pattern_fill('solid', scale=1)#设置填充图案

3. 效果展示

熟悉了以上几个基础的ezdxf操作命令,就可以进行钻芯综合柱状图批量绘制脚本的开发了。

假设某根桩的钻芯检测结果如下:

首先绘制必要的线段和多边形,得到柱状图的基本框架。然后利用pandas读取表格中的内容并插入对应位置,最后在相应区域填充对应的图案。

最终生成的柱状图效果如下。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-10-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python数据分析实例 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.1创建DXF
  • 2.2.绘制线段和多边形
  • 2.3.插入文本
  • 2.4.填充
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档