python读取dxf文件_GitHub - XUIgit/dxfReader: dxf文件解析 用来提取CAD中的dxf文件格式所保存的图像信息...

dxfReader是一个Python库,用于解析和提取CAD中的DXF文件格式图像信息。支持提取圆弧、直线、圆和椭圆等数据,并能获取所有图层名。通过DxfReader类,可以方便地解析文件中的HeaderSection、EntitiesSection和TablesSection,获取CAD变量、实体和表段详细信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dxfReader

介绍

用来解析,提取CAD中的dxf文件格式所保存的图像信息

环境

python36(在python35中会失效, 其他环境未测试)

软件架构

主要采用简单工厂模式:

SectionFactory

TableFactory

EntityFactory

方便扩展还未解析的类型

安装教程

python3.X

使用说明

最简单的用法:

#提取圆弧 返回一个包含字典的数组

DxfReader.GetShapeData("DxfReader/test/test.dxf", Entity.ARC)

#提取直线

DxfReader.GetShapeData("DxfReader/test/test.dxf", Entity.LINE)

#提取圆

DxfReader.GetShapeData("DxfReader/test/test.dxf", Entity.CIRCLE)

#提取椭圆

DxfReader.GetShapeData("DxfReader/test/test.dxf", Entity.ELLIPSE)

#提取所有的图层名

DxfReader.GetLayers("DxfReader/test/坡口图-2004版.dxf")

基本用法:

dxfReader = DxfReader("DxfReader/test/坡口图-2004版.dxf")

sections = dxfReader.ParseSections()

for section in sections:

if isinstance(section, HeaderSection):

vars = section.ParseVars()#解析出一个 cad 变量的 字典

if isinstance(section,EntitiesSection):

entities = section.ParseEntities()#解析出各种类型的实体,圆形,直线,弧形,椭圆

for entity in entities:#每种实体都可调用parse解析出一个带有实际数据的字典

print(entity.parse())#如直线的{'type': 'line', 'layer': '0', 'x0': -111.6999999999999, 'y0': -6.0, 'z0': 0.0, 'x1': -101.7, 'y1': -6.0, 'z1': 0.0, 'tensile_x': '0', 'tensile_y': '0', 'tensile_z': '1'}

if isinstance(section, TablesSection):

tables = section.ParseTables()

for table in tables:

entries = table.ParseEntries()

for entry in entries:

print(entry.parse())#可以解析出dxf中的表段,现在只实现了提取图层的

#如{'type': 'layer', 'name': '轮廓'}

参与贡献

Fork 本仓库

新建 Feat_xxx 分支

提交代码

新建 Pull Request

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值