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用于文本分析的一个demo—统计文档中只出现一次的字符
学习Python也有一周的时间,将学到的内容通过一个文本处理的小程序进行总结,需求如下: 分析文件长度,按单词计数 追踪文件中只出现一次的不同单词 文本采用1863年林肯先生的<葛底斯堡演说&g ...
- Python使用标准库zipfile+re提取docx文档中超链接文本和链接地址
推荐教材: <Python程序设计实用教程>,ISBN:978-7-5635-6065-3,董付国,北京邮电大学出版社 教材封面: 全国各地新华书店有售 京东购买链接: 配套资源:教学大纲 ...
- python word 合并单元格_在word文档选项卡中检测合并单元格
一点背景 我有一个软件规范,我需要以表格的形式解析需求.它们的格式也不总是相同的.我继承了一个python脚本,它使用win32com解析word文档,然后openpyxl将需求导出到excel文件, ...
- C#培训2019-9-30第十课 Dxf转档 读取DXF文档 读取圆信息 生成 NC加工档
DXF格式资料 DXF文档原来是AutoCAD的专用格式,后来开发了.因此格式内容可以直接查看AutoCAD给出的帮助文档:http://docs.autodesk.com/ACD/2011/CHS/ ...
- Python数据分析大作业 4000+字 图文分析文档 销售分析
资源地址:Python数据分析大作业 4000+字 图文分析文档 销售分析 +完整python代码 数据来自某商场,具体商业数据保密 资源地址:Python数据分析大作业 4000+字 图文分析文档 ...
- AutoCAD帮助文档下载
AutoCAD帮助文档下载 AutoCAD2016: https://knowledge.autodesk.com/support/autocad/downloads/caas/downloads/c ...
- python使用xlrd读取xlsx文件_$ 用python处理Excel文档(1)——用xlrd模块读取xls/xlsx文档...
本文主要介绍xlrd模块读取Excel文档的基本用法,并以一个GDP数据的文档为例来进行操作. 1. 准备工作: 1. 安装xlrd:pip install xlrd 2. 准备数据集:从网上找到的1 ...
- python读取html_从零开始的Python爬虫教程(一):获取HTML文档
前言:在上一节从零开始的Python爬虫教程(零):粗识HTML结构中,粗略给大家介绍了一下HTML文档,是为了在接下来的教程中让大家更容易理解和掌握.在接下来的教程中,需要大家提前安装python3 ...
最新文章
- php查找顶级分类,php 无限级分类 获取顶级分类ID,php顶级_PHP教程
- (转)C#开发微信门户及应用(1)--开始使用微信接口
- [转]在EntityFramework6中执行SQL语句
- Python Tricks(六)—— 删除一个可迭代序列中等于某值的全部元素
- SpringMVC+MyBatis整合——事务管理
- paip.SOCKET抓包工具总结
- 关闭计算机主机还亮着,Win10系统电脑关机后主机电源灯依然亮着的解决方法
- 使用php监控系统运行状态、网站运行状态监控系统
- win7右键没有新建文本文档怎么办
- 【转载】国医大师熊继柏:用中医思维彻底把新冠病毒中医治疗方案说清楚!值得中医人收藏
- CF1290F Making Shapes——数位背包DP
- 固态硬盘是什么接口_经常买错各种SATA和NVMe固态硬盘,有没有办法快速分辨呢?看接口...
- 当我们谈深度学习时,我们用它落地了什么?
- 威步百科 | Blurry Box
- java设置打印机默认纸张_java 打印设置打印A4 A5纸
- jsp案例:计算矩形、圆形面积
- 共享单车蓝牙锁方案phy6222系列蓝牙芯片
- 每天一个IDA小技巧(二):基本代码转换
- 机动车驾驶科一/科四
- android x86小白安装教程,电脑上安装Android 10小白教程,大屏Android用起来
热门文章
- jacob操作excel、word、AutoCAD分享
- 交流结果 2020年4月25日
- 瑞成科技加入openKylin,推动社区生态繁荣发展!
- {“error“:“incorrect region, please use up-z1.qiniup.com“}
- 卡尔曼滤波器之经典卡尔曼滤波
- 文件系统可视化与文件管理
- 一文带你搞定svg-icon的使用
- Jenkins简介与应用
- 公众号bmob_newgd.js
- canvas内的字体实现阴影效果