- 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.
|
- added some placeholder texts in the TextBoxes.
|
||||||
- working on QRCode Tool; addded the utility geometry and intial functional layout
|
- 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 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
|
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.mr)
|
||||||
self.app.plotcanvas.graph_event_disconnect(self.kr)
|
self.app.plotcanvas.graph_event_disconnect(self.kr)
|
||||||
|
|
||||||
self.clicked_move = 0
|
|
||||||
|
|
||||||
# delete the utility geometry
|
# delete the utility geometry
|
||||||
self.delete_utility_geo()
|
self.delete_utility_geo()
|
||||||
|
|
||||||
|
@ -337,7 +335,17 @@ class QRCode(FlatCAMTool):
|
||||||
self.grb_object.solid_geometry = list(self.grb_object.solid_geometry)
|
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
|
# 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
|
box_size = float(self.bsize_entry.get_value()) / 10.0
|
||||||
|
|
||||||
|
@ -347,17 +355,16 @@ class QRCode(FlatCAMTool):
|
||||||
for k, v in list(self.grb_object.apertures.items()):
|
for k, v in list(self.grb_object.apertures.items()):
|
||||||
sort_apid.append(int(k))
|
sort_apid.append(int(k))
|
||||||
sorted_apertures = sorted(sort_apid)
|
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:
|
if new_apid not in self.grb_object.apertures:
|
||||||
self.grb_object.apertures[new_apid] = dict()
|
self.grb_object.apertures[new_apid] = dict()
|
||||||
self.grb_object.apertures[new_apid]['geometry'] = list()
|
self.grb_object.apertures[new_apid]['geometry'] = list()
|
||||||
self.grb_object.apertures[new_apid]['type'] = 'R'
|
self.grb_object.apertures[new_apid]['type'] = 'R'
|
||||||
self.grb_object.apertures[new_apid]['height'] = box_size
|
self.grb_object.apertures[new_apid]['height'] = deepcopy(box_size)
|
||||||
self.grb_object.apertures[new_apid]['width'] = box_size
|
self.grb_object.apertures[new_apid]['width'] = deepcopy(box_size)
|
||||||
self.grb_object.apertures[new_apid]['size'] = math.sqrt(box_size ** 2 + box_size ** 2)
|
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:
|
try:
|
||||||
a, b, c, d = self.grb_object.bounds()
|
a, b, c, d = self.grb_object.bounds()
|
||||||
self.grb_object.options['xmin'] = a
|
self.grb_object.options['xmin'] = a
|
||||||
|
@ -370,14 +377,18 @@ class QRCode(FlatCAMTool):
|
||||||
try:
|
try:
|
||||||
for geo in self.qrcode_geometry:
|
for geo in self.qrcode_geometry:
|
||||||
geo_elem = dict()
|
geo_elem = dict()
|
||||||
geo_elem['solid'] = geo
|
geo_elem['solid'] = translate(geo, xoff=pos[0], yoff=pos[1])
|
||||||
geo_elem['follow'] = geo.centroid
|
geo_elem['follow'] = translate(geo.centroid, xoff=pos[0], yoff=pos[1])
|
||||||
self.grb_object.apertures[new_apid]['geometry'].append(deepcopy(geo_elem))
|
self.grb_object.apertures[new_apid]['geometry'].append(deepcopy(geo_elem))
|
||||||
except TypeError:
|
except TypeError:
|
||||||
geo_elem = dict()
|
geo_elem = dict()
|
||||||
geo_elem['solid'] = self.qrcode_geometry
|
geo_elem['solid'] = self.qrcode_geometry
|
||||||
self.grb_object.apertures['0']['geometry'].append(deepcopy(geo_elem))
|
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()
|
self.replot()
|
||||||
|
|
||||||
def draw_utility_geo(self, pos):
|
def draw_utility_geo(self, pos):
|
||||||
|
|
Loading…
Reference in New Issue