我需要拆开一个 GDS 文件对其进行更详细的分析。
特别是我需要计算设计层的数量、每层中多段线的数量以及设计中每条多段线的顶点。
我的麻烦是创建包含所有这些信息的类。最后,我希望能够通过指定类似的东西来获取每个顶点的数据
Lyr[5].pl[3].vertx[7] 其中 5 是第五层,3 是该层中的第三条折线,7 是该折线上的第七个顶点。
我可以很好地获得图层和多段线,但不知道如何开始添加顶点。
顺便说一句,我不是直接使用 GDS 文件,而是使用一种名为 .DXF 的格式,它是每行文本文件的简单单个字符串。
到目前为止,这是我的代码。
import sys #see sys modules using goggle
import string
import math
class layer:
def __init__(self,layer):
self.layer=layer
self.nplines=0
self.pl=[]
def add_pline(self,y):
self.pl.append(y)
def add_nplines(self):
self.nplines+=1
'''
class vertx
def __init__(self,n): ## Running out of ideas here
'''
def main():
my_file=sys.argv[1]
inFile=open(my_file,'r')
lyr=[]
nlayers=-1
## Get the layers
while 1:
s=inFile.readline()
if "CONTINUOUS" in s :
nlayers+=1
lyr.append(0)
s=inFile.readline() #burn one line in DXF file
s=inFile.readline() #name of the layer
lyr[nlayers]=layer(s) # save the layer
if 'POLYLINE' in s: break
inFile.close()
## Get the polylines
inFile=open(my_file,'r')
while 1:
s=inFile.readline()
if 'POLYLINE' in s:
s=inFile.readline() #burn a line
s=inFile.readline() #layer name
for i in range(0,nlayers+1):
if s==lyr[i].layer:
lyr[i].add_nplines()
if 'EOF' in s: break
inFile.close()
for i in range(0,nlayers+1):
print i,'Layer=',lyr[i].layer,' no plines= ',lyr[i].nplines
main()