gerber_find.py 976 B

123456789101112131415161718192021222324252627282930
  1. from camlib import *
  2. def gerber_find(filename, coords, frac_digits=5, tol=0.1):
  3. g = Gerber()
  4. f = open(filename)
  5. current_x = None
  6. current_y = None
  7. line_num = 0
  8. for line in f:
  9. line_num += 1
  10. try:
  11. match = g.lin_re.search(line)
  12. if match:
  13. # Parse coordinates
  14. if match.group(2) is not None:
  15. current_x = parse_gerber_number(match.group(2), frac_digits)
  16. if match.group(3) is not None:
  17. current_y = parse_gerber_number(match.group(3), frac_digits)
  18. if distance(coords, (current_x, current_y)) <= tol:
  19. print((line_num, ":", line.strip('\n\r')))
  20. except Exception as e:
  21. print((str(e)))
  22. print((line_num, ":", line.strip('\n\r')))
  23. if __name__ == "__main__":
  24. filename = "/home/jpcaram/flatcam_test_files/ExtraTrace_cleanup.gbr"
  25. gerber_find(filename, (1.2, 1.1))