1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python读取dxf文件_GitHub - XUIgit/dxfReader: dxf文件解析 用来提取CAD中的dxf

python读取dxf文件_GitHub - XUIgit/dxfReader: dxf文件解析 用来提取CAD中的dxf

时间:2020-09-12 12:09:12

相关推荐

python读取dxf文件_GitHub - XUIgit/dxfReader: dxf文件解析 用来提取CAD中的dxf

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/坡口图-版.dxf")

基本用法:

dxfReader = DxfReader("DxfReader/test/坡口图-版.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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。