python读取cad表格_使用Python读取AutoCAD DXF文档
作为《使用Python创建AutoCAD DXF文档》的姊妹篇,本文介绍用Python读取DXF
==================================================================================================================================================================================================================
1. 老规矩
pip install dxfgrabber
2.获取图层
首先用AutoCAD画一个图,然后导出为DXF格式。
这个图有两个图层,图层0和自定义的Mylayer。图层0有一些线段,图层Mylayer有一个圆和一个圆弧。
dxfgrabber可以读取多个版本的DXF,这里,把这个工程保存为R12 DXF,起名为『mydraw.dxf』
import dxfgrabber
dxf = dxfgrabber.readfile("mydraw.dxf")
for layer in dxf.layers:
print(layer.name,layer.color,layer.linetype)
得到输出为
(u'0', 7, u'CONTINUOUS')
(u'MYLAYER', 5, u'CONTINUOUS')3.获取图形
在DXF中,所有的图形(Entity)都『打散』在dxf文件中,而不是与图层间形成层级关系。图形所在的层是通过图形的layer属性得到的。
import dxfgrabber
dxf = dxfgrabber.readfile("mydraw.dxf")
for e in dxf.entities:
print(e.dxftype,e.layer)
if e.dxftype == 'LINE':
print (e.start,e.end)
if e.dxftype == 'CIRCLE':
print (e.center,e.radius)
if e.dxftype == 'ARC':
print (e.center,e.radius,e.start_angle,e.end_angle)
对于线的端点、圆心之类的属性,点坐标均为三维的(x,y,z)形式。上述程序的输出为:
(u'LINE', u'0')
((0.0, 500.0, 0.0), (700.0, 500.0, 0.0))
(u'LINE', u'0')
((700.0, 500.0, 0.0), (1000.0, 0.0, 0.0))
(u'LINE', u'0')
((1000.0, 0.0, 0.0), (0.0, 250.0, 0.0))
(u'LINE', u'0')
((0.0, 250.0, 0.0), (0.0, 500.0, 0.0))
(u'CIRCLE', u'MYLAYER')
((1500.0, 800.0, 0.0), 450.0)
(u'ARC', u'MYLAYER')
((3450.0, 700.0, 0.0), 750.0, 180.0, 42.0)4. 获取图块
下面在AutoCAD里创建一个图块,并插入2个图块。由于定义的图形也转换成了图块,所以现在应该有3个图块。
作为图块插入到绘图中的图形,其类型是INSERT。可以通过其name属性得到其图块的名称,通过其insert属性得到其位置。
import dxfgrabber
dxf = dxfgrabber.readfile("mydraw.dxf")
for e in dxf.entities:
print(e.dxftype,e.name,e.insert)
运行结果
(u'INSERT', u'MYBLOCK', (0.0, 0.0, 0.0))
(u'INSERT', u'MYBLOCK', (2000.0, 0.0, 0.0))
(u'INSERT', u'MYBLOCK', (3000.0, 0.0, 0.0))
用以下方法得到所有的block:
import dxfgrabber
dxf = dxfgrabber.readfile("mydraw.dxf")
for b in dxf.blocks:
print(b.name)对于每一个block对象,可以直接用枚举的方法得到其包含的图形:
import dxfgrabber
dxf = dxfgrabber.readfile("mydraw.dxf")
myblock = dxf.blocks['MYBLOCK']
for e in b:
print (e.dxftype)得到
CIRCLE
POLYLINE
5. 总结
dxfgrabber的功能很强大,但是由于1. DXF是纯文本格式 2. dxfgrabber是纯Python实现的,故在读取大型设计的时候,可能力不从心。在这种情况下,可以考虑使用Python的COM接口。
python读取cad表格_使用Python读取AutoCAD DXF文档相关推荐
- python用于cad_使用Python读取AutoCAD DXF文档
作为<使用Python创建AutoCAD DXF文档>的姊妹篇,本文介绍用Python读取DXF ============================================= ...
- python读取pdf表格_[转]Python 解析 PDF 文本和表格的四大方法介绍
Python 解析 PDF 文本和表格的四大方法介绍 == code for paper and NSFC Proj. parsing==: https://gitee.com/sonica/pdf_ ...
- python读取pdf表格_【Python 库】解析PDF文本及表格——pdfminer、tabula、pdfplumber 的用法及对比...
pdf 是个异常坑爹的东西,有很多处理 pdf 的库,但是没有完美的. 一.pdfminer3k pdfminer3k 是 pdfminer 的 python3 版本,主要用于读取 pdf 中的文本. ...
- python怎么读取石墨表格_用python和柳比歇夫工作法,自动做每周的周总结,导出周小节图表...
今天我写短一点,主要讲我是怎样参照柳比歇夫的工作方法,去记录自己每天每项工作所花费的时间,以及怎样用python去汇总. 关于柳比歇夫的时间统计法,之前的推送写过,这里不再赘述. <奇特的一生& ...
- python 提取pdf表格_用Python提取pdf文件中的表格数据
本文作者:杨慧琳 本文编辑:周聪聪 技术总编:张学人有问题,不要怕!访问 http://www.wuhanstring.com/uploads/5_aboutus/爬虫俱乐部-用户问题登记表.docx ...
- 读取excel表格内容,并写入到word文档中
import pandas as pd import docx from docx.shared import RGBColor ''' 该代码段适合,将excel题库转换成word格式的题库,写入的 ...
- python pdfminer读取pdf表格_使用Python中的PDFMiner从PDF文件提取文本?
富国沪深 DuckPuncher的出色回答,对于Python3,请确保您安装pdfminer2并执行以下操作:import iofrom pdfminer.pdfinterp import PDFRe ...
- python自动汇总表格_用Python自动生成Excel报表
作者 / 来源:林骥(ID:linjiwx) 01 安装和导入模块 以 Python 中的 openpyxl 模块为例,它能够读取和修改 Excel 文件,如果你还没有安装,可以通过以下命令进行安装: ...
- 用python处理excel表格_使用Python处理excel表格(openpyxl)及表格中的中文处理
现在有个小任务,需要处理excel中的数据.其实就是简单的筛选,excel玩的不熟练,而且需要处理的表有70多个,于是想着写个脚本处理一下吧. python中的openpyxl包可以轻松实现读写exc ...
最新文章
- 机器学习-贝叶斯分类器
- 【读薄Effective Java】创建和销毁对象
- 我们需要现在就进入LTE时代
- 齐聚上海,get多媒体开发新技能(内附讲师资料下载)
- 浙江文成“红领巾”向交警敬礼:上下学感谢有你
- Linux 脚本编写基础(二)
- BlogEngine(4)---Widget小部件
- linux编码 form表单,Linux curl 模拟form表单提交信息和文件
- linkButton与Button 的click事件与onclientClick事件
- 媒体应用大数据,先解决三大难题
- 开发者供不应求,垃圾项目在去年已造成2.1万亿美元损失
- 期望E==>加权均值(每个元素×它们各自的概率)
- 2022春节档新片预售总票房达1.08亿
- system verilog中的参数传递——ref,input,output
- Unity中实现VR摄像机
- 零基础Python学习(2) --- 《我想你猜》1.0版
- 大学生HTML期末作业网页:使用DIV+CSS技术制作一个简单的小说网站 (3个页面 登录+注册+首页 )
- python内置数值运算函数有哪几个_Python这68个内置函数,建议你吃透!
- WPS中文档横线的问题
- 2019年风险投资人 ( VCPE ) 汇总
热门文章
- 俄罗斯方块java机器人_H5版俄罗斯方块(4)---火拼对战的雏形
- python注销一段代码_请写出一段Python代码实现删除一个list里面的重复元素?
- 通俗易懂的主成分分析法(PCA)详解
- [maya学习笔记(22)] 插入关节 重定骨架根 移除关节 断开关节 镜像关节
- ni visa pci_希捷酷玩固态520系列1TB评测:PCI-E 4.0让游戏进一步加速
- 中山大学路由器如何通过h3c认证上网(极路由设置方法)
- html---学习之路(form表单的基本属性)
- 工作技巧篇--职场邮箱
- input使用maxlength报错
- 网页导航树的简单快速美观之实现