- working on QRCode Tool; finished offseting the goemetry both in apertures and in solid_geometry; updated the source_file of the source object
This commit is contained in:
parent
6f1dc76d64
commit
ee61ba63fa
|
@ -14,6 +14,7 @@ CAD program, and create G-Code for Isolation routing.
|
|||
- added some placeholder texts in the TextBoxes.
|
||||
- working on QRCode Tool; addded the utility geometry and intial functional layout
|
||||
- working on QRCode Tool; finished adding the QRCode geometry to the selected Gerber object and also finished adding the 'follow' geometry needed when exporting the Gerber object as a Gerber file in addition to the 'solid' geometry in the obj.apertures
|
||||
- working on QRCode Tool; finished offseting the goemetry both in apertures and in solid_geometry; updated the source_file of the source object
|
||||
|
||||
23.10.2019
|
||||
|
||||
|
|
|
@ -327,8 +327,6 @@ class QRCode(FlatCAMTool):
|
|||
self.app.plotcanvas.graph_event_disconnect(self.mr)
|
||||
self.app.plotcanvas.graph_event_disconnect(self.kr)
|
||||
|
||||
self.clicked_move = 0
|
||||
|
||||
# delete the utility geometry
|
||||
self.delete_utility_geo()
|
||||
|
||||
|
@ -337,7 +335,17 @@ class QRCode(FlatCAMTool):
|
|||
self.grb_object.solid_geometry = list(self.grb_object.solid_geometry)
|
||||
|
||||
# I use the utility geometry (self.qrcode_utility_geometry) because it is already buffered
|
||||
self.grb_object.solid_geometry += self.qrcode_utility_geometry
|
||||
geo_list = self.grb_object.solid_geometry
|
||||
if isinstance(self.grb_object.solid_geometry, MultiPolygon):
|
||||
geo_list = list(self.grb_object.solid_geometry.geoms)
|
||||
|
||||
try:
|
||||
for geo in self.qrcode_utility_geometry:
|
||||
geo_list.append(translate(geo, xoff=pos[0], yoff=pos[1]))
|
||||
except TypeError:
|
||||
geo_list.append(translate(self.qrcode_utility_geometry, xoff=pos[0], yoff=pos[1]))
|
||||
|
||||
self.grb_object.solid_geometry = deepcopy(geo_list)
|
||||
|
||||
box_size = float(self.bsize_entry.get_value()) / 10.0
|
||||
|
||||
|
@ -347,37 +355,40 @@ class QRCode(FlatCAMTool):
|
|||
for k, v in list(self.grb_object.apertures.items()):
|
||||
sort_apid.append(int(k))
|
||||
sorted_apertures = sorted(sort_apid)
|
||||
new_apid = str(10 + len(sorted_apertures))
|
||||
new_apid = str(max(sorted_apertures) + 1)
|
||||
|
||||
if new_apid not in self.grb_object.apertures:
|
||||
self.grb_object.apertures[new_apid] = dict()
|
||||
self.grb_object.apertures[new_apid]['geometry'] = list()
|
||||
self.grb_object.apertures[new_apid]['type'] = 'R'
|
||||
self.grb_object.apertures[new_apid]['height'] = box_size
|
||||
self.grb_object.apertures[new_apid]['width'] = box_size
|
||||
self.grb_object.apertures[new_apid]['size'] = math.sqrt(box_size ** 2 + box_size ** 2)
|
||||
self.grb_object.apertures[new_apid]['height'] = deepcopy(box_size)
|
||||
self.grb_object.apertures[new_apid]['width'] = deepcopy(box_size)
|
||||
self.grb_object.apertures[new_apid]['size'] = deepcopy(math.sqrt(box_size ** 2 + box_size ** 2))
|
||||
|
||||
if self.grb_object.options['xmin'] == Inf or self.grb_object.options['xmin'] == -Inf:
|
||||
try:
|
||||
a, b, c, d = self.grb_object.bounds()
|
||||
self.grb_object.options['xmin'] = a
|
||||
self.grb_object.options['ymin'] = b
|
||||
self.grb_object.options['xmax'] = c
|
||||
self.grb_object.options['ymax'] = d
|
||||
except Exception as e:
|
||||
log.debug("QRCode.make() bounds error --> %s" % str(e))
|
||||
try:
|
||||
a, b, c, d = self.grb_object.bounds()
|
||||
self.grb_object.options['xmin'] = a
|
||||
self.grb_object.options['ymin'] = b
|
||||
self.grb_object.options['xmax'] = c
|
||||
self.grb_object.options['ymax'] = d
|
||||
except Exception as e:
|
||||
log.debug("QRCode.make() bounds error --> %s" % str(e))
|
||||
|
||||
try:
|
||||
for geo in self.qrcode_geometry:
|
||||
geo_elem = dict()
|
||||
geo_elem['solid'] = geo
|
||||
geo_elem['follow'] = geo.centroid
|
||||
geo_elem['solid'] = translate(geo, xoff=pos[0], yoff=pos[1])
|
||||
geo_elem['follow'] = translate(geo.centroid, xoff=pos[0], yoff=pos[1])
|
||||
self.grb_object.apertures[new_apid]['geometry'].append(deepcopy(geo_elem))
|
||||
except TypeError:
|
||||
geo_elem = dict()
|
||||
geo_elem['solid'] = self.qrcode_geometry
|
||||
self.grb_object.apertures['0']['geometry'].append(deepcopy(geo_elem))
|
||||
print(self.grb_object.apertures)
|
||||
|
||||
# update the source file with the new geometry:
|
||||
self.grb_object.source_file = self.app.export_gerber(obj_name=self.grb_object.options['name'], filename=None,
|
||||
local_use=self.grb_object, use_thread=False)
|
||||
|
||||
self.replot()
|
||||
|
||||
def draw_utility_geo(self, pos):
|
||||
|
|
Loading…
Reference in New Issue