- fixed camlib.Gerber skew, rotate, offset, mirror functions to work for geometry stored in the Gerber apertures
This commit is contained in:
parent
6fb33ebc5e
commit
8275750d3e
|
@ -13,7 +13,7 @@ CAD program, and create G-Code for Isolation routing.
|
||||||
|
|
||||||
- added zoom fit for Set Origin command
|
- added zoom fit for Set Origin command
|
||||||
- added move action for solid_geometry stored in the gerber_obj.apertures
|
- added move action for solid_geometry stored in the gerber_obj.apertures
|
||||||
|
- fixed camlib.Gerber skew, rotate, offset, mirror functions to work for geometry stored in the Gerber apertures
|
||||||
|
|
||||||
7.05.2019
|
7.05.2019
|
||||||
|
|
||||||
|
|
38
camlib.py
38
camlib.py
|
@ -3505,6 +3505,7 @@ class Gerber (Geometry):
|
||||||
self.apertures[apid]['clear_geometry'] = scale_geom(self.apertures[apid]['clear_geometry'])
|
self.apertures[apid]['clear_geometry'] = scale_geom(self.apertures[apid]['clear_geometry'])
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.debug('camlib.Gerber.scale() Exception --> %s' % str(e))
|
log.debug('camlib.Gerber.scale() Exception --> %s' % str(e))
|
||||||
|
return 'fail'
|
||||||
|
|
||||||
self.app.inform.emit(_("[success] Gerber Scale done."))
|
self.app.inform.emit(_("[success] Gerber Scale done."))
|
||||||
|
|
||||||
|
@ -3561,7 +3562,14 @@ class Gerber (Geometry):
|
||||||
for apid in self.apertures:
|
for apid in self.apertures:
|
||||||
self.apertures[apid]['solid_geometry'] = offset_geom(self.apertures[apid]['solid_geometry'])
|
self.apertures[apid]['solid_geometry'] = offset_geom(self.apertures[apid]['solid_geometry'])
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.debug('FlatCAMGeometry.offset() --> %s' % str(e))
|
log.debug('camlib.Gerber.offset() --> %s' % str(e))
|
||||||
|
return 'fail'
|
||||||
|
try:
|
||||||
|
for apid in self.apertures:
|
||||||
|
self.apertures[apid]['follow_geometry'] = offset_geom(self.apertures[apid]['follow_geometry'])
|
||||||
|
except Exception as e:
|
||||||
|
log.debug('camlib.Gerber.offset() --> %s' % str(e))
|
||||||
|
return 'fail'
|
||||||
|
|
||||||
self.app.inform.emit(_("[success] Gerber Offset done."))
|
self.app.inform.emit(_("[success] Gerber Offset done."))
|
||||||
|
|
||||||
|
@ -3607,7 +3615,14 @@ class Gerber (Geometry):
|
||||||
for apid in self.apertures:
|
for apid in self.apertures:
|
||||||
self.apertures[apid]['solid_geometry'] = mirror_geom(self.apertures[apid]['solid_geometry'])
|
self.apertures[apid]['solid_geometry'] = mirror_geom(self.apertures[apid]['solid_geometry'])
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.debug('FlatCAMGeometry.mirror() --> %s' % str(e))
|
log.debug('camlib.Gerber.mirror() --> %s' % str(e))
|
||||||
|
return 'fail'
|
||||||
|
try:
|
||||||
|
for apid in self.apertures:
|
||||||
|
self.apertures[apid]['follow_geometry'] = mirror_geom(self.apertures[apid]['follow_geometry'])
|
||||||
|
except Exception as e:
|
||||||
|
log.debug('camlib.Gerber.mirror() --> %s' % str(e))
|
||||||
|
return 'fail'
|
||||||
|
|
||||||
# It's a cascaded union of objects.
|
# It's a cascaded union of objects.
|
||||||
# self.solid_geometry = affinity.scale(self.solid_geometry,
|
# self.solid_geometry = affinity.scale(self.solid_geometry,
|
||||||
|
@ -3647,7 +3662,15 @@ class Gerber (Geometry):
|
||||||
for apid in self.apertures:
|
for apid in self.apertures:
|
||||||
self.apertures[apid]['solid_geometry'] = skew_geom(self.apertures[apid]['solid_geometry'])
|
self.apertures[apid]['solid_geometry'] = skew_geom(self.apertures[apid]['solid_geometry'])
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.debug('FlatCAMGeometry.skew() --> %s' % str(e))
|
log.debug('camlib.Gerber.skew() --> %s' % str(e))
|
||||||
|
return 'fail'
|
||||||
|
try:
|
||||||
|
for apid in self.apertures:
|
||||||
|
self.apertures[apid]['follow_geometry'] = skew_geom(self.apertures[apid]['follow_geometry'])
|
||||||
|
except Exception as e:
|
||||||
|
log.debug('camlib.Gerber.skew() --> %s' % str(e))
|
||||||
|
return 'fail'
|
||||||
|
|
||||||
# self.solid_geometry = affinity.skew(self.solid_geometry, angle_x, angle_y, origin=(px, py))
|
# self.solid_geometry = affinity.skew(self.solid_geometry, angle_x, angle_y, origin=(px, py))
|
||||||
|
|
||||||
def rotate(self, angle, point):
|
def rotate(self, angle, point):
|
||||||
|
@ -3677,7 +3700,14 @@ class Gerber (Geometry):
|
||||||
for apid in self.apertures:
|
for apid in self.apertures:
|
||||||
self.apertures[apid]['solid_geometry'] = rotate_geom(self.apertures[apid]['solid_geometry'])
|
self.apertures[apid]['solid_geometry'] = rotate_geom(self.apertures[apid]['solid_geometry'])
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.debug('FlatCAMGeometry.rotate() --> %s' % str(e))
|
log.debug('camlib.Gerber.rotate() --> %s' % str(e))
|
||||||
|
return 'fail'
|
||||||
|
try:
|
||||||
|
for apid in self.apertures:
|
||||||
|
self.apertures[apid]['follow_geometry'] = rotate_geom(self.apertures[apid]['follow_geometry'])
|
||||||
|
except Exception as e:
|
||||||
|
log.debug('camlib.Gerber.rotate() --> %s' % str(e))
|
||||||
|
return 'fail'
|
||||||
# self.solid_geometry = affinity.rotate(self.solid_geometry, angle, origin=(px, py))
|
# self.solid_geometry = affinity.rotate(self.solid_geometry, angle, origin=(px, py))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -130,15 +130,6 @@ class ToolMove(FlatCAMTool):
|
||||||
def job_move(app_obj):
|
def job_move(app_obj):
|
||||||
obj_list = self.app.collection.get_selected()
|
obj_list = self.app.collection.get_selected()
|
||||||
|
|
||||||
def offset_geom(obj):
|
|
||||||
if type(obj) is list:
|
|
||||||
new_obj = []
|
|
||||||
for g in obj:
|
|
||||||
new_obj.append(offset_geom(g))
|
|
||||||
return new_obj
|
|
||||||
else:
|
|
||||||
return affinity.translate(obj, xoff=dx, yoff=dy)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if not obj_list:
|
if not obj_list:
|
||||||
self.app.inform.emit(_("[WARNING_NOTCL] No object(s) selected."))
|
self.app.inform.emit(_("[WARNING_NOTCL] No object(s) selected."))
|
||||||
|
@ -148,16 +139,6 @@ class ToolMove(FlatCAMTool):
|
||||||
|
|
||||||
# offset solid_geometry
|
# offset solid_geometry
|
||||||
sel_obj.offset((dx, dy))
|
sel_obj.offset((dx, dy))
|
||||||
|
|
||||||
for apid in sel_obj.apertures:
|
|
||||||
if 'solid_geometry' in sel_obj.apertures[apid]:
|
|
||||||
sel_obj.apertures[apid]['solid_geometry'] = offset_geom(
|
|
||||||
sel_obj.apertures[apid]['solid_geometry']
|
|
||||||
)
|
|
||||||
if 'follow_geometry' in sel_obj.apertures[apid]:
|
|
||||||
sel_obj.apertures[apid]['follow_geometry'] = offset_geom(
|
|
||||||
sel_obj.apertures[apid]['follow_geometry']
|
|
||||||
)
|
|
||||||
sel_obj.plot()
|
sel_obj.plot()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in New Issue