Clear area and mouse coordinates

This commit is contained in:
Juan Pablo Caram 2014-01-05 21:45:08 -05:00
parent 0bd00464de
commit e0d93910a6
7 changed files with 979 additions and 2 deletions

View File

@ -52,6 +52,31 @@ class Geometry:
return 0
bounds = self.bounds()
return (bounds[2]-bounds[0], bounds[3]-bounds[1])
def get_empty_area(self, boundary=None):
'''
Returns the complement of self.solid_geometry within
the given boundary polygon. If not specified, it defaults to
the rectangular bounding box of self.solid_geometry.
'''
if boundary == None:
boundary = self.solid_geometry.envelope
return boundary.difference(g.solid_geometry)
def clear_polygon(self, polygon, tooldia, overlap = 0.15):
'''
Creates geometry inside a polygon for a tool to cover
the whole area.
'''
poly_cuts = [polygon.buffer(-tooldia/2.0)]
while(1):
polygon = poly_cuts[-1].buffer(-tooldia*(1-overlap))
if polygon.area > 0:
poly_cuts.append(polygon)
else:
break
return poly_cuts
class Gerber (Geometry):
def __init__(self):
@ -131,6 +156,10 @@ class Gerber (Geometry):
return None
def parse_file(self, filename):
'''
Calls Gerber.parse_lines() with array of lines
read from the given file.
'''
gfile = open(filename, 'r')
gstr = gfile.readlines()
gfile.close()

Binary file not shown.

View File

@ -19,7 +19,7 @@ class App:
self.builder = Gtk.Builder()
self.builder.add_from_file(self.gladefile)
self.window = self.builder.get_object("window1")
self.positionLabel = self.builder.get_object("label3")
#self.drawingarea = self.builder.get_object("drawingarea1")
#self.drawingarea.connect("draw", self.cairopaint)
@ -46,6 +46,8 @@ class App:
canvas = FigureCanvas(f) # a Gtk.DrawingArea
canvas.set_size_request(600,400)
canvas.mpl_connect('button_press_event', self.on_click_over_plot)
canvas.mpl_connect('motion_notify_event', self.on_mouse_move_over_plot)
self.grid.attach(canvas,1,1,600,400)
def cairopaint(self, da, cr):
@ -123,6 +125,13 @@ class App:
canvas.set_size_request(600,400)
self.grid.attach(canvas,1,1,600,400)
self.window.show_all()
def on_mouse_move_over_plot(self, event):
self.positionLabel.set_label("X: %.4f Y: %.4f"%(event.xdata, event.ydata))
def on_click_over_plot(self, event):
print 'button=%d, x=%d, y=%d, xdata=%f, ydata=%f'%(
event.button, event.x, event.y, event.xdata, event.ydata)
app = App()

View File

@ -320,6 +320,21 @@
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
</object>
</child>
</object>
@ -369,6 +384,22 @@
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label3">
<property name="width_request">200</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_left">5</property>
<property name="margin_right">5</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">X: 0.0 Y: 0.0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>

View File

@ -0,0 +1,783 @@
G04 (created by PCBNEW (2013-07-07 BZR 4022)-stable) date 11/20/2013 5:37:08 PM*
%MOIN*%
G04 Gerber Fmt 3.4, Leading zero omitted, Abs format*
%FSLAX34Y34*%
G01*
G70*
G90*
G04 APERTURE LIST*
%ADD10C,0.00590551*%
%ADD11C,0.015*%
%ADD12R,0.0393X0.0629*%
%ADD13R,0.2125X0.244*%
%ADD14R,0.02X0.03*%
%ADD15R,0.144X0.08*%
%ADD16R,0.04X0.08*%
%ADD17R,0.0394X0.0354*%
%ADD18R,0.0354X0.0394*%
%ADD19R,0.063X0.071*%
%ADD20R,0.071X0.063*%
%ADD21C,0.1*%
%ADD22R,0.08X0.08*%
%ADD23C,0.08*%
%ADD24C,0.04*%
%ADD25C,0.02*%
G04 APERTURE END LIST*
G54D10*
G54D11*
X27233Y12376D02*
X27728Y12376D01*
X27461Y12071D01*
X27576Y12071D01*
X27652Y12033D01*
X27690Y11995D01*
X27728Y11919D01*
X27728Y11728D01*
X27690Y11652D01*
X27652Y11614D01*
X27576Y11576D01*
X27347Y11576D01*
X27271Y11614D01*
X27233Y11652D01*
X24021Y12300D02*
X24059Y12338D01*
X24135Y12376D01*
X24326Y12376D01*
X24402Y12338D01*
X24440Y12300D01*
X24478Y12223D01*
X24478Y12147D01*
X24440Y12033D01*
X23983Y11576D01*
X24478Y11576D01*
X4578Y11701D02*
X4121Y11701D01*
X4350Y11701D02*
X4350Y12501D01*
X4273Y12386D01*
X4197Y12310D01*
X4121Y12272D01*
X569Y1526D02*
X1064Y1526D01*
X797Y1221D01*
X911Y1221D01*
X988Y1183D01*
X1026Y1145D01*
X1064Y1069D01*
X1064Y878D01*
X1026Y802D01*
X988Y764D01*
X911Y726D01*
X683Y726D01*
X607Y764D01*
X569Y802D01*
X1407Y802D02*
X1445Y764D01*
X1407Y726D01*
X1369Y764D01*
X1407Y802D01*
X1407Y726D01*
X1711Y1526D02*
X2207Y1526D01*
X1940Y1221D01*
X2054Y1221D01*
X2130Y1183D01*
X2169Y1145D01*
X2207Y1069D01*
X2207Y878D01*
X2169Y802D01*
X2130Y764D01*
X2054Y726D01*
X1826Y726D01*
X1750Y764D01*
X1711Y802D01*
X2435Y1526D02*
X2702Y726D01*
X2969Y1526D01*
X1672Y14551D02*
X1291Y14551D01*
X1253Y14170D01*
X1291Y14208D01*
X1367Y14246D01*
X1558Y14246D01*
X1634Y14208D01*
X1672Y14170D01*
X1710Y14094D01*
X1710Y13903D01*
X1672Y13827D01*
X1634Y13789D01*
X1558Y13751D01*
X1367Y13751D01*
X1291Y13789D01*
X1253Y13827D01*
X1939Y14551D02*
X2205Y13751D01*
X2472Y14551D01*
X26525Y14651D02*
X26677Y14651D01*
X26753Y14613D01*
X26829Y14536D01*
X26867Y14384D01*
X26867Y14117D01*
X26829Y13965D01*
X26753Y13889D01*
X26677Y13851D01*
X26525Y13851D01*
X26448Y13889D01*
X26372Y13965D01*
X26334Y14117D01*
X26334Y14384D01*
X26372Y14536D01*
X26448Y14613D01*
X26525Y14651D01*
X27210Y14651D02*
X27210Y14003D01*
X27248Y13927D01*
X27286Y13889D01*
X27363Y13851D01*
X27515Y13851D01*
X27591Y13889D01*
X27629Y13927D01*
X27667Y14003D01*
X27667Y14651D01*
X27934Y14651D02*
X28391Y14651D01*
X28163Y13851D02*
X28163Y14651D01*
X17800Y13451D02*
X17952Y13451D01*
X18028Y13413D01*
X18104Y13336D01*
X18142Y13184D01*
X18142Y12917D01*
X18104Y12765D01*
X18028Y12689D01*
X17952Y12651D01*
X17800Y12651D01*
X17723Y12689D01*
X17647Y12765D01*
X17609Y12917D01*
X17609Y13184D01*
X17647Y13336D01*
X17723Y13413D01*
X17800Y13451D01*
X18485Y13451D02*
X18485Y12803D01*
X18523Y12727D01*
X18561Y12689D01*
X18638Y12651D01*
X18790Y12651D01*
X18866Y12689D01*
X18904Y12727D01*
X18942Y12803D01*
X18942Y13451D01*
X19209Y13451D02*
X19666Y13451D01*
X19438Y12651D02*
X19438Y13451D01*
X8900Y13326D02*
X9052Y13326D01*
X9128Y13288D01*
X9204Y13211D01*
X9242Y13059D01*
X9242Y12792D01*
X9204Y12640D01*
X9128Y12564D01*
X9052Y12526D01*
X8900Y12526D01*
X8823Y12564D01*
X8747Y12640D01*
X8709Y12792D01*
X8709Y13059D01*
X8747Y13211D01*
X8823Y13288D01*
X8900Y13326D01*
X9585Y13326D02*
X9585Y12678D01*
X9623Y12602D01*
X9661Y12564D01*
X9738Y12526D01*
X9890Y12526D01*
X9966Y12564D01*
X10004Y12602D01*
X10042Y12678D01*
X10042Y13326D01*
X10309Y13326D02*
X10766Y13326D01*
X10538Y12526D02*
X10538Y13326D01*
X28880Y726D02*
X28880Y1526D01*
X29261Y726D02*
X29261Y1526D01*
X29719Y726D01*
X29719Y1526D01*
X23705Y2126D02*
X23705Y2926D01*
X24086Y2126D02*
X24086Y2926D01*
X24544Y2126D01*
X24544Y2926D01*
X3355Y3126D02*
X3355Y3926D01*
X3736Y3126D02*
X3736Y3926D01*
X4194Y3126D01*
X4194Y3926D01*
G54D12*
X12278Y8961D03*
X14072Y8961D03*
G54D13*
X13175Y11834D03*
G54D14*
X5850Y7450D03*
X6600Y7450D03*
X5850Y8450D03*
X6225Y7450D03*
X6600Y8450D03*
X21075Y7400D03*
X21825Y7400D03*
X21075Y8400D03*
X21450Y7400D03*
X21825Y8400D03*
G54D15*
X15962Y2837D03*
G54D16*
X15962Y5437D03*
X15062Y5437D03*
X16862Y5437D03*
G54D17*
X23150Y6429D03*
X23150Y7021D03*
G54D18*
X20546Y5800D03*
X19954Y5800D03*
G54D17*
X22825Y7829D03*
X22825Y8421D03*
X21825Y9404D03*
X21825Y9996D03*
G54D18*
X19579Y9325D03*
X20171Y9325D03*
X4454Y9325D03*
X5046Y9325D03*
G54D17*
X6600Y9629D03*
X6600Y10221D03*
X7600Y8004D03*
X7600Y8596D03*
X8000Y6429D03*
X8000Y7021D03*
G54D18*
X5171Y5850D03*
X4579Y5850D03*
G54D19*
X12650Y7900D03*
X13750Y7900D03*
G54D20*
X11025Y9750D03*
X11025Y10850D03*
X13737Y4387D03*
X13737Y5487D03*
G54D19*
X16962Y6787D03*
X15862Y6787D03*
G54D17*
X20175Y7804D03*
X20175Y8396D03*
X6225Y5854D03*
X6225Y6446D03*
G54D18*
X16608Y7712D03*
X16016Y7712D03*
X23421Y9375D03*
X22829Y9375D03*
X24296Y7850D03*
X23704Y7850D03*
G54D17*
X21450Y5804D03*
X21450Y6396D03*
G54D18*
X9146Y8000D03*
X8554Y8000D03*
X8196Y9625D03*
X7604Y9625D03*
G54D17*
X10100Y10104D03*
X10100Y10696D03*
X5050Y7854D03*
X5050Y8446D03*
G54D14*
X28950Y6850D03*
X29700Y6850D03*
X28950Y7850D03*
X29325Y6850D03*
X29700Y7850D03*
G54D21*
X21825Y11925D03*
X22825Y12925D03*
X20825Y12925D03*
X20825Y10925D03*
X22825Y10925D03*
X21450Y3475D03*
X22450Y4475D03*
X20450Y4475D03*
X20450Y2475D03*
X22450Y2475D03*
X29325Y3475D03*
X30325Y4475D03*
X28325Y4475D03*
X28325Y2475D03*
X30325Y2475D03*
X29700Y11925D03*
X30700Y12925D03*
X28700Y12925D03*
X28700Y10925D03*
X30700Y10925D03*
G54D17*
X27425Y8571D03*
X27425Y7979D03*
G54D22*
X1375Y8325D03*
G54D23*
X1375Y9325D03*
X1375Y10325D03*
G54D22*
X16375Y9625D03*
G54D23*
X16375Y10625D03*
X16375Y11625D03*
G54D22*
X26375Y8425D03*
G54D23*
X26375Y9425D03*
X26375Y10425D03*
G54D22*
X10225Y2475D03*
G54D23*
X11225Y2475D03*
G54D22*
X28375Y8850D03*
G54D21*
X10400Y6275D03*
X25125Y5450D03*
X6600Y11925D03*
X7600Y12925D03*
X5600Y12925D03*
X5600Y10925D03*
X7600Y10925D03*
X6225Y3475D03*
X7225Y4475D03*
X5225Y4475D03*
X5225Y2475D03*
X7225Y2475D03*
G54D17*
X28225Y7254D03*
X28225Y7846D03*
G54D23*
X12375Y2475D03*
X30075Y6475D03*
X28225Y6775D03*
X20350Y7075D03*
X22300Y6950D03*
X7100Y6900D03*
X19475Y5175D03*
X24325Y9375D03*
X25175Y7850D03*
X17525Y7600D03*
X13625Y3325D03*
X11025Y8900D03*
X10000Y8000D03*
X8875Y9625D03*
X4950Y7275D03*
X3825Y5850D03*
G54D24*
X15962Y2837D02*
X15962Y1162D01*
X15962Y1162D02*
X15975Y1150D01*
X16375Y9625D02*
X17450Y9625D01*
X18650Y8425D02*
X18650Y1150D01*
X17450Y9625D02*
X18650Y8425D01*
X26375Y8425D02*
X26375Y7775D01*
X26350Y7800D02*
X26375Y7775D01*
X26375Y7775D02*
X26975Y7175D01*
X25700Y1150D02*
X18650Y1150D01*
X18650Y1150D02*
X16925Y1150D01*
X15975Y1150D02*
X16925Y1150D01*
X26975Y2425D02*
X25700Y1150D01*
X26975Y7175D02*
X26975Y2425D01*
X15962Y2837D02*
X15962Y5437D01*
X13175Y1150D02*
X13550Y1150D01*
X1375Y8325D02*
X1375Y3774D01*
X4000Y1150D02*
X13175Y1150D01*
X1375Y3774D02*
X4000Y1150D01*
X13550Y1150D02*
X15975Y1150D01*
G54D25*
X16016Y7712D02*
X15862Y7558D01*
X15862Y7558D02*
X15862Y6787D01*
G54D24*
X15962Y5437D02*
X15962Y6112D01*
X15862Y6212D02*
X15862Y6787D01*
X15962Y6112D02*
X15862Y6212D01*
X13175Y11834D02*
X13175Y14200D01*
X13150Y14225D02*
X13150Y14200D01*
X13175Y14200D02*
X13150Y14225D01*
X16375Y11625D02*
X16400Y11650D01*
X16400Y14175D02*
X16400Y14200D01*
X16400Y11650D02*
X16400Y14175D01*
X26375Y10425D02*
X26375Y12750D01*
X9775Y14200D02*
X13150Y14200D01*
X1375Y11475D02*
X4100Y14200D01*
X4100Y14200D02*
X9775Y14200D01*
X1375Y10325D02*
X1375Y11475D01*
X13150Y14200D02*
X15025Y14200D01*
X26375Y12750D02*
X24925Y14200D01*
X24925Y14200D02*
X16400Y14200D01*
X16400Y14200D02*
X14825Y14200D01*
X11025Y10850D02*
X12191Y10850D01*
X12191Y10850D02*
X13175Y11834D01*
G54D25*
X10100Y10696D02*
X10871Y10696D01*
X10871Y10696D02*
X11025Y10850D01*
X6225Y3399D02*
X6225Y5854D01*
X6225Y5854D02*
X5175Y5854D01*
X5175Y5854D02*
X5171Y5850D01*
X21450Y3799D02*
X21450Y5804D01*
X20546Y5800D02*
X21446Y5800D01*
X21446Y5800D02*
X21450Y5804D01*
X6600Y10221D02*
X6600Y11575D01*
X21825Y11525D02*
X21825Y9996D01*
X8000Y7021D02*
X8000Y7200D01*
X7600Y7600D02*
X7600Y8004D01*
X8000Y7200D02*
X7600Y7600D01*
X7600Y8004D02*
X8550Y8004D01*
X8550Y8004D02*
X8554Y8000D01*
X10400Y6275D02*
X9875Y6275D01*
X9721Y6429D02*
X9875Y6275D01*
X9721Y6429D02*
X8000Y6429D01*
X6225Y6446D02*
X6554Y6446D01*
X7579Y6429D02*
X8000Y6429D01*
X7375Y6225D02*
X7579Y6429D01*
X6775Y6225D02*
X7375Y6225D01*
X6554Y6446D02*
X6775Y6225D01*
X8000Y6429D02*
X8000Y6275D01*
X8000Y6275D02*
X8000Y6429D01*
X6225Y6446D02*
X6225Y7450D01*
X6600Y9629D02*
X6600Y8450D01*
X7604Y9625D02*
X6604Y9625D01*
X6604Y9625D02*
X6600Y9629D01*
X7600Y8596D02*
X7600Y9621D01*
X7600Y9621D02*
X7604Y9625D01*
X23150Y7021D02*
X23150Y7275D01*
X22825Y7600D02*
X22825Y7829D01*
X23150Y7275D02*
X22825Y7600D01*
X22825Y7829D02*
X23683Y7829D01*
X23683Y7829D02*
X23704Y7850D01*
X24725Y6050D02*
X25125Y5650D01*
X24346Y6429D02*
X24725Y6050D01*
X23150Y6429D02*
X24346Y6429D01*
X25125Y5650D02*
X25125Y5450D01*
X21450Y6396D02*
X21679Y6396D01*
X23150Y6425D02*
X23150Y6429D01*
X22775Y6425D02*
X23150Y6425D01*
X22600Y6250D02*
X22775Y6425D01*
X21825Y6250D02*
X22600Y6250D01*
X21679Y6396D02*
X21825Y6250D01*
X21450Y7400D02*
X21450Y6396D01*
X21825Y8400D02*
X21825Y9404D01*
X21825Y9404D02*
X21854Y9375D01*
X21854Y9375D02*
X22829Y9375D01*
X22829Y9375D02*
X22825Y9371D01*
X22825Y9371D02*
X22825Y8421D01*
G54D24*
X1375Y9325D02*
X4454Y9325D01*
X5050Y8725D02*
X5050Y9321D01*
X5050Y9321D02*
X5046Y9325D01*
X5050Y8446D02*
X5050Y8725D01*
X5850Y8725D02*
X5850Y8450D01*
X5050Y8725D02*
X5850Y8725D01*
X19579Y9325D02*
X19400Y9325D01*
X18100Y10625D02*
X19400Y9325D01*
X18100Y10625D02*
X16375Y10625D01*
X20171Y9325D02*
X20171Y8400D01*
X20171Y8400D02*
X21075Y8400D01*
X26375Y9425D02*
X27050Y9425D01*
X27425Y8625D02*
X27425Y8571D01*
X27425Y9050D02*
X27425Y8625D01*
X27050Y9425D02*
X27425Y9050D01*
G54D25*
X28375Y8850D02*
X28375Y7925D01*
X28375Y7925D02*
X28225Y7846D01*
G54D24*
X28225Y7846D02*
X28921Y7846D01*
X28925Y7850D02*
X28950Y7850D01*
X28921Y7846D02*
X28925Y7850D01*
X28225Y7846D02*
X27454Y7846D01*
X27425Y7875D02*
X27425Y7979D01*
X27454Y7846D02*
X27425Y7875D01*
X10225Y2475D02*
X10225Y2950D01*
X12175Y5550D02*
X12162Y5550D01*
X12175Y4900D02*
X12175Y5550D01*
X10225Y2950D02*
X12175Y4900D01*
X13750Y7900D02*
X14072Y8222D01*
X12162Y5487D02*
X12162Y5550D01*
X12162Y5550D02*
X12162Y6362D01*
X14072Y7147D02*
X14072Y8961D01*
X13650Y6725D02*
X14072Y7147D01*
X12525Y6725D02*
X13650Y6725D01*
X12162Y6362D02*
X12525Y6725D01*
X12162Y5487D02*
X13737Y5487D01*
X15062Y5437D02*
X13787Y5437D01*
X13787Y5437D02*
X13737Y5487D01*
X14072Y8222D02*
X14072Y8961D01*
X11225Y2475D02*
X12375Y2475D01*
G54D25*
X29700Y6850D02*
X29800Y6750D01*
X29800Y6750D02*
X29700Y6850D01*
G54D24*
X29825Y6725D02*
X30100Y6450D01*
X28225Y6800D02*
X28800Y6800D01*
X28850Y6800D02*
X28825Y6775D01*
X28800Y6800D02*
X28850Y6800D01*
X28225Y7254D02*
X28225Y6800D01*
X28225Y6800D02*
X28225Y6800D01*
X28225Y6800D02*
X28225Y6775D01*
G54D25*
X21075Y7400D02*
X20900Y7400D01*
G54D24*
X20900Y7400D02*
X20625Y7400D01*
G54D25*
X5850Y7450D02*
X5725Y7450D01*
G54D24*
X5050Y7475D02*
X5075Y7450D01*
X5075Y7450D02*
X5725Y7450D01*
X5050Y7475D02*
X5050Y7854D01*
X20625Y7400D02*
X20350Y7125D01*
X20350Y7125D02*
X20350Y7075D01*
G54D25*
X21825Y7400D02*
X21850Y7400D01*
X21850Y7400D02*
X22300Y6950D01*
X6600Y7450D02*
X6625Y7450D01*
X7125Y6925D02*
X7100Y6900D01*
X7150Y6925D02*
X7125Y6925D01*
X6625Y7450D02*
X7150Y6925D01*
G54D24*
X19954Y5800D02*
X19479Y5179D01*
X19479Y5179D02*
X19475Y5175D01*
X23421Y9375D02*
X24325Y9375D01*
X24296Y7850D02*
X25175Y7850D01*
X16962Y6787D02*
X16962Y7037D01*
X16962Y7037D02*
X17525Y7600D01*
X13737Y4387D02*
X13737Y3437D01*
X13737Y3437D02*
X13625Y3325D01*
X11025Y9750D02*
X11025Y8900D01*
X9146Y8000D02*
X10000Y8000D01*
X8196Y9625D02*
X8875Y9625D01*
X5050Y7854D02*
X5050Y7375D01*
X5050Y7375D02*
X4950Y7275D01*
X4579Y5850D02*
X3825Y5850D01*
G54D25*
X16608Y7712D02*
X16962Y7358D01*
X16962Y7358D02*
X16962Y6787D01*
G54D24*
X16862Y5437D02*
X16962Y5537D01*
X16962Y5537D02*
X16962Y6787D01*
X12278Y8961D02*
X12278Y8272D01*
X12278Y8272D02*
X12650Y7900D01*
X11025Y9750D02*
X11489Y9750D01*
X11489Y9750D02*
X12278Y8961D01*
G54D25*
X10100Y10104D02*
X10454Y9750D01*
X10454Y9750D02*
X11025Y9750D01*
G54D24*
X20175Y7804D02*
X20175Y7750D01*
X20525Y7400D02*
X20625Y7400D01*
X20175Y7750D02*
X20525Y7400D01*
G54D25*
X29325Y6850D02*
X29325Y3475D01*
X29700Y11925D02*
X29700Y7850D01*
M02*

77
tests/KiCad_Squarer.drl Normal file
View File

@ -0,0 +1,77 @@
M48
;DRILL file {Pcbnew (2013-07-07 BZR 4022)-stable} date 11/20/2013 1:52:19 PM
;FORMAT={2:4/ absolute / inch / keep zeros}
FMAT,2
INCH,TZ
T1C0.030
T2C0.040
T3C0.060
%
G90
G05
M72
T1
X010400Y006275
X025125Y005450
T2
X001375Y010325
X001375Y009325
X001375Y008325
X003825Y005850
X004950Y007275
X007100Y006900
X008875Y009625
X010000Y008000
X010225Y002475
X011025Y008900
X011225Y002475
X012375Y002475
X013625Y003325
X016375Y011625
X016375Y010625
X016375Y009625
X017525Y007600
X019475Y005175
X020350Y007075
X022300Y006950
X024325Y009375
X025175Y007850
X026375Y010425
X026375Y009425
X026375Y008425
X028225Y006775
X028375Y008850
X030075Y006475
T3
X005225Y004475
X005225Y002475
X005600Y012925
X005600Y010925
X006225Y003475
X006600Y011925
X007225Y004475
X007225Y002475
X007600Y012925
X007600Y010925
X020450Y004475
X020450Y002475
X020825Y012925
X020825Y010925
X021450Y003475
X021825Y011925
X022450Y004475
X022450Y002475
X022825Y012925
X022825Y010925
X028325Y004475
X028325Y002475
X028700Y012925
X028700Y010925
X029325Y003475
X029700Y011925
X030325Y004475
X030325Y002475
X030700Y012925
X030700Y010925
T0
M30

48
tests/test_excellon_1.py Normal file
View File

@ -0,0 +1,48 @@
# -*- coding: utf-8 -*-
"""
Created on Sun Jan 05 13:30:47 2014
@author: jpcaram
"""
import os
os.chdir('../')
from camlib import *
#from matplotlib.figure import Figure
from matplotlib import pyplot
# Gerber. To see if the Excellon is correct
project_dir = "tests/"
gerber_filename = project_dir + "KiCad_Squarer-F_Cu.gtl"
g = Gerber()
g.parse_file(gerber_filename)
g.create_geometry()
excellon_filename = project_dir + "KiCad_Squarer.drl"
ex = Excellon()
ex.parse_file(excellon_filename)
ex.create_geometry()
#fig = Figure()
fig = pyplot.figure()
ax = fig.add_subplot(111)
ax.set_aspect(1)
# Plot gerber
for geo in g.solid_geometry:
x, y = geo.exterior.coords.xy
plot(x, y, 'k-')
for ints in geo.interiors:
x, y = ints.coords.xy
ax.plot(x, y, 'k-')
# Plot excellon
for geo in ex.solid_geometry:
x, y = geo.exterior.coords.xy
plot(x, y, 'r-')
for ints in geo.interiors:
x, y = ints.coords.xy
ax.plot(x, y, 'g-')
fig.show()