blender-gdsimporter/test.py

51 lines
1.5 KiB
Python

import gds
import sys
import math
import progress.bar
global bar
def callback(parser):
global bar
bar.max = parser.total
bar.index = parser.current
bar.update()
for arg in sys.argv[1:]:
f = open(arg, "rb")
try:
bar = progress.bar.IncrementalBar("parsing file")
lib = gds.parse_file(f, progress_func=callback)
print()
print("file version: {}".format(lib.version))
print("last access: {}".format(lib.last_access.isoformat()))
print("last modification: {}".format(lib.last_mod.isoformat()))
print("m/unit : {}".format(lib.meters_per_unit))
print("unit/dbunit : {}".format(lib.units_per_dbunit))
print("library name : {}".format(lib.name))
print("contains a total of {} structure(s)".format(len(lib.structures)))
for name in lib.structures.keys():
#print(name, end = " ")
print("- {}".format(name))
for elem in lib.structures[name].elements:
if isinstance(elem, gds.Boundary):
for coord in elem.points:
coord = (coord[0] * lib.units_per_dbunit , coord[1] * lib.units_per_dbunit)
bar = progress.bar.IncrementalBar("linking structure references")
lib.link_all_refs(callback)
except gds.ParserError as e:
print("parser error: {}".format(e))
except KeyboardInterrupt:
continue
finally:
f.close()
print("\nall done")