From 5df38c014fd09792995b2b12b1982c535c962c9a Mon Sep 17 00:00:00 2001 From: Hamilton Kibbe Date: Thu, 28 Jan 2016 12:19:03 -0500 Subject: Cleanup, rendering fixes. fixed rendering of tented vias fixed rendering of semi-transparent layers fixed file type detection issues added some examples --- gerber/common.py | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) (limited to 'gerber/common.py') diff --git a/gerber/common.py b/gerber/common.py index cf137dd..334714b 100644 --- a/gerber/common.py +++ b/gerber/common.py @@ -33,42 +33,41 @@ def read(filename): Returns ------- file : CncFile subclass - CncFile object representing the file, either GerberFile or - ExcellonFile. Returns None if file is not an Excellon or Gerber file. + CncFile object representing the file, either GerberFile, ExcellonFile, + or IPCNetlist. Returns None if file is not of the proper type. """ with open(filename, 'rU') as f: data = f.read() - fmt = detect_file_format(data) - if fmt == 'rs274x': - return rs274x.read(filename) - elif fmt == 'excellon': - return excellon.read(filename) - elif fmt == 'ipc_d_356': - return ipc356.read(filename) - else: - raise ParseError('Unable to detect file format') + return loads(data, filename) -def loads(data): +def loads(data, filename=None): """ Read gerber or excellon file contents from a string and return a representative object. Parameters ---------- data : string - gerber or excellon file contents as a string. + Source file contents as a string. + + filename : string, optional + String containing the filename of the data source. Returns ------- file : CncFile subclass - CncFile object representing the file, either GerberFile or - ExcellonFile. Returns None if file is not an Excellon or Gerber file. + CncFile object representing the data, either GerberFile, ExcellonFile, + or IPCNetlist. Returns None if data is not of the proper type. """ fmt = detect_file_format(data) if fmt == 'rs274x': - return rs274x.loads(data) + return rs274x.loads(data, filename) elif fmt == 'excellon': - return excellon.loads(data) + return excellon.loads(data, filename) + elif fmt == 'ipc_d_356': + return ipc356.loads(data, filename) else: - raise TypeError('Unable to detect file format') + raise ParseError('Unable to detect file format') + + -- cgit