dxf解析python_Python 读取DXF文件
至于dxf文件的格式在之前的博文中已经有详细的叙述,在此将不做赘述。
from Point import Point
class DXFReaderImpl:
def __init__(self,file):
self.file = file
self.points = [] ## 用于记录点实体的坐标值
self.points_line = [] ## 用于记录线段的各端点坐标值,包括直线和折线两种线型
self.points_polygon = [] ## 用于纪录多边形的顶点坐标值
def readDXF(self):
firstLine =""
secondLine = ""
secondLine = self.file.readline().strip()
while secondLine != "EOF":
if firstLine.strip() == "0" and secondLine.strip()== "LWPOLYLINE":
self.readPolyline()
if firstLine.strip() == "0" and secondLine.strip() == "LINE":
self.readLines()
if firstLine.strip() == "0" and secondLine.strip() == "POINT":
pass
firstLine = secondLine
secondLine = self.file.readline().strip()
print "there are " + str(i) + "polyline"
##
## def readPolygon(self):
## pass
## read polyline. In dxf file,polygon is a closed polyline
def readPolyline(self):
counter = 0
numofvertex = 1
flagofPolygon = 0
x = 0
y = 0
firstLine = "LWPOLYLINE"
secondLine = self.file.readline().strip()
pointList = []
while counter<=numofvertex:
if firstLine == "90":
numofvertex = int(secondLine)
if firstLine == "70":
flagofPolygon = int(secondLine)
if firstLine == "10":
x = float(secondLine)
if firstLine == "20":
y = float(secondLine)
pointList.append(Point(x,y))
counter = counter + 1
firstLine = secondLine
secondLine = self.file.readline().strip()
if flagofPolygon == 0:
self.points_line.append(pointList)
else:
self.points_polygon.append(pointList)
def readPoint(self):
firstLine = "POINT"
secondLine = self.file.readline().strip()
x = 0.0
y = 0.0
while firstLine != "30":
if firstLine == "10":
x = float(secondLine)
if firstLine == "20":
y = float(secondLine)
firstLine = secondLine
secondList = self.file.readline().strip();
self.points.append(Point(x,y))
## read straight line
def readLines(self):
x1 = 0.0
y1 = 0.0
x2 = 0.0
y2 = 0.0
firstLine = "POINT"
## secondLine = ""
seondLine = self.file.readline().strip()
while firstLine != "31":
if firstLine == "10":
x1 = float(secondLine)
if firstLine == "20":
y1 = float(secondLine)
if firstLine == "11":
x2 = float(secondLine)
if firstLine == "21":
y2 = float(secondLine)
firstLine = secondLine
secondLine = self.file.readline().strip()
tempLine = []
tempLine.append(Point(x1,y1))
tempLine.append(Point(x2,y2))
self.points_line.append(tempLine)
if __name__=="__main__":
file = open("D:\\test.dxf","r")
reader = DXFReaderImpl(file)
reader.readDXF()
i = 1
for temp in reader.points_polygon:
print " this is the " + str(i) + " polygon"
for points in temp:
print str(points.x) + " " + str(points.y)
i = i + 1
## i = 1
## for temp in reader.points_line:
## print " this is the " + str(i) + " polyline"
## for points in temp:
## print str(points.x) + " " + str(points.y)
## i += 1
print "over"
此段代码主要用于读取点,直线,折线,多边形等四种实体的坐标值。
分享到:
2009-10-07 14:42
浏览 6585
评论
dxf解析python_Python 读取DXF文件相关推荐
- python 读取文件读出来是什么格式-深入学习python解析并读取PDF文件内容的方法...
这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...
- python中读取文件内容-深入学习python解析并读取PDF文件内容的方法
这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...
- python怎么读取pdf文件_Python解析并读取PDF文件内容的方法
本文实例讲述了Python解析并读取PDF文件内容的方法.分享给大家供大家参考,具体如下: 一.问题描述 利用python,去读取pdf文本内容. 二.效果 三.运行环境 python2.7 四.需要 ...
- python读取pdf文件_深入学习python解析并读取PDF文件内容的方法
这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...
- 通过poi实现解析并读取excel文件(包含xls、xlsx后缀)
StudentBean.java类,用来存放学生信息 package com.demoexcel.util;public class StudentBean {private String no; / ...
- grib1文件解析 python_python读取grib格式数据
python 读取grib/grib2格式数据 一般利用NCL(NCAR Command Language)读取.利用Python语言的pygrib库也可以读取grib/grib2格式数据 grib/ ...
- C#培训2019-9-30第十课 Dxf转档 读取DXF文档 读取圆信息 生成 NC加工档
DXF格式资料 DXF文档原来是AutoCAD的专用格式,后来开发了.因此格式内容可以直接查看AutoCAD给出的帮助文档:http://docs.autodesk.com/ACD/2011/CHS/ ...
- python解析并读取PDF文件:函数总结
目录 1.PyPDF2 2. pdfminer & pdfminer3k 3. pdfplumber 4. Camelot 虽然PDF文件对文本布局非常好,容易打印并阅读,但软件要将它们解析为 ...
- Java文件读写和CSV文件解析(读取csv文件的一列或若干列)
文件类 Java 读文件流的知识不可少,先复习一下吧! OREACLE JDK8 DOCS 文件类是Java IO的一个对象,用于指定文件的相关信息,位置和名称信息.如txt文件,csv文件对Java ...
- csv和excel php 解析_php读取csv文件(excel可另存为csv格式文件)
csv文件简介 看到这个题目大家一定莫名其妙,这个csv文件和office有啥关系.呵呵,细心地朋友在用excel的时候会发现,excel可以另存为csv格式.我之前也对这个东西没什么了解,只是知道e ...
最新文章
- Linux使用netstat命令查看并发连接数
- 技术非中立,语言非同质:机器翻译正被用于维护文化障碍
- 4个重要的量子理论实验综述
- IntelliJ IDEA导入多个eclipse项目到同一个workspace下
- Xcode clang-omp openmp开发
- 生成android证书
- jQuery操作标签--样式、文本、属性操作, 文档处理
- 22行代码AC——例题7-1除法(Division UVa 725)——解题报告
- SAP Spartacus在某些屏幕尺寸下无法正常工作的原因分析
- NOIP模拟测试39,思维禁锢专场「工业题·玄学题·卡常题」
- 哥廷根,世界数学家的摇篮和圣地
- 重构《一》-- 提取方法
- 深度优先搜索(DFS)递归形式改为非递归形式
- PHP获得文件的md5并检验是否被修改
- 程序员面试金典——17.1无缓存交换
- JVM stack与Heap的区别
- android异步任务框架,详解Android App中的AsyncTask异步任务执行方式
- 全志v3s学习笔记(6)——Bsp内核编译与烧录
- 腾讯QQ浏览器 10.0.932.400 正式版
- DirectX终极游戏开发指南引擎源码分析
热门文章
- wifi的html页面,笔记本怎么设置wifi
- IDE、SATA、SCSI、SAS、FC、SSD硬盘类型介绍
- c++程序员书籍推荐
- If-Modified-Since HTTP 304 和 ETag
- 计算机程序计算排列组合(规避溢出)
- 梦想就是一种让你感到坚持就是幸福的东西
- apache linux启动失败,apache2 启动失败,出现下列错误,请问怎么解决,谢谢
- 无线局域网安全(三)————CCMP加密
- avformat_seek_file函数介绍
- 双机串行通讯实验c语言编程,51单片机编程:教你实现双机串行通信功能