- modified Gerber parser to copy the follow_geometry in the self.apertures
- modified the Properties Tool to show the number of elements in the follow_geometry for each aperture - modified the copy functions to copy the follow_geometry and also the apertures if it's possible (only for Gerber objects)
This commit is contained in:
parent
ecc2c90f2a
commit
e0417b034b
|
@ -4498,6 +4498,15 @@ class App(QtCore.QObject):
|
||||||
|
|
||||||
def initialize(obj_init, app):
|
def initialize(obj_init, app):
|
||||||
obj_init.solid_geometry = obj.solid_geometry
|
obj_init.solid_geometry = obj.solid_geometry
|
||||||
|
try:
|
||||||
|
obj_init.follow_geometry = obj.follow_geometry
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
try:
|
||||||
|
obj_init.apertures = obj.apertures
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if obj.tools:
|
if obj.tools:
|
||||||
obj_init.tools = obj.tools
|
obj_init.tools = obj.tools
|
||||||
|
@ -4531,6 +4540,15 @@ class App(QtCore.QObject):
|
||||||
|
|
||||||
def initialize_geometry(obj_init, app):
|
def initialize_geometry(obj_init, app):
|
||||||
obj_init.solid_geometry = obj.solid_geometry
|
obj_init.solid_geometry = obj.solid_geometry
|
||||||
|
try:
|
||||||
|
obj_init.follow_geometry = obj.follow_geometry
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
try:
|
||||||
|
obj_init.apertures = obj.apertures
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if obj.tools:
|
if obj.tools:
|
||||||
obj_init.tools = obj.tools
|
obj_init.tools = obj.tools
|
||||||
|
@ -4580,6 +4598,15 @@ class App(QtCore.QObject):
|
||||||
|
|
||||||
def initialize(obj_init, app):
|
def initialize(obj_init, app):
|
||||||
obj_init.solid_geometry = obj.solid_geometry
|
obj_init.solid_geometry = obj.solid_geometry
|
||||||
|
try:
|
||||||
|
obj_init.follow_geometry = obj.follow_geometry
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
try:
|
||||||
|
obj_init.apertures = obj.apertures
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
if obj.tools:
|
if obj.tools:
|
||||||
obj_init.tools = obj.tools
|
obj_init.tools = obj.tools
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,9 @@ CAD program, and create G-Code for Isolation routing.
|
||||||
- new feature: added ability to edit MultiGeo geometry (geometry from Paint Tool)
|
- new feature: added ability to edit MultiGeo geometry (geometry from Paint Tool)
|
||||||
- changed all the info messages that are of type warning, error or success so they have a space added after the keyword
|
- changed all the info messages that are of type warning, error or success so they have a space added after the keyword
|
||||||
- changed the Romanian translation by adding more diacritics
|
- changed the Romanian translation by adding more diacritics
|
||||||
|
- modified Gerber parser to copy the follow_geometry in the self.apertures
|
||||||
|
- modified the Properties Tool to show the number of elements in the follow_geometry for each aperture
|
||||||
|
- modified the copy functions to copy the follow_geometry and also the apertures if it's possible (only for Gerber objects)
|
||||||
|
|
||||||
27.03.2019
|
27.03.2019
|
||||||
|
|
||||||
|
|
64
camlib.py
64
camlib.py
|
@ -2242,6 +2242,11 @@ class Gerber (Geometry):
|
||||||
geo = LineString(path)
|
geo = LineString(path)
|
||||||
if not geo.is_empty:
|
if not geo.is_empty:
|
||||||
follow_buffer.append(geo)
|
follow_buffer.append(geo)
|
||||||
|
try:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(geo)
|
||||||
|
except KeyError:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'] = []
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(geo)
|
||||||
|
|
||||||
geo = LineString(path).buffer(width / 1.999, int(self.steps_per_circle / 4))
|
geo = LineString(path).buffer(width / 1.999, int(self.steps_per_circle / 4))
|
||||||
if not geo.is_empty:
|
if not geo.is_empty:
|
||||||
|
@ -2453,6 +2458,11 @@ class Gerber (Geometry):
|
||||||
geo = LineString(path)
|
geo = LineString(path)
|
||||||
if not geo.is_empty:
|
if not geo.is_empty:
|
||||||
follow_buffer.append(geo)
|
follow_buffer.append(geo)
|
||||||
|
try:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(geo)
|
||||||
|
except KeyError:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'] = []
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(geo)
|
||||||
|
|
||||||
geo = LineString(path).buffer(width / 1.999, int(self.steps_per_circle / 4))
|
geo = LineString(path).buffer(width / 1.999, int(self.steps_per_circle / 4))
|
||||||
if not geo.is_empty:
|
if not geo.is_empty:
|
||||||
|
@ -2478,6 +2488,11 @@ class Gerber (Geometry):
|
||||||
geo = LineString(path)
|
geo = LineString(path)
|
||||||
if not geo.is_empty:
|
if not geo.is_empty:
|
||||||
follow_buffer.append(geo)
|
follow_buffer.append(geo)
|
||||||
|
try:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(geo)
|
||||||
|
except KeyError:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'] = []
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(geo)
|
||||||
|
|
||||||
geo = LineString(path).buffer(width/1.999, int(self.steps_per_circle / 4))
|
geo = LineString(path).buffer(width/1.999, int(self.steps_per_circle / 4))
|
||||||
if not geo.is_empty:
|
if not geo.is_empty:
|
||||||
|
@ -2503,6 +2518,12 @@ class Gerber (Geometry):
|
||||||
if geo:
|
if geo:
|
||||||
if not geo.is_empty:
|
if not geo.is_empty:
|
||||||
follow_buffer.append(geo)
|
follow_buffer.append(geo)
|
||||||
|
try:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(geo)
|
||||||
|
except KeyError:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'] = []
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(geo)
|
||||||
|
|
||||||
poly_buffer.append(geo)
|
poly_buffer.append(geo)
|
||||||
try:
|
try:
|
||||||
self.apertures[current_aperture]['solid_geometry'].append(geo)
|
self.apertures[current_aperture]['solid_geometry'].append(geo)
|
||||||
|
@ -2531,6 +2552,11 @@ class Gerber (Geometry):
|
||||||
region = Polygon()
|
region = Polygon()
|
||||||
if not region.is_empty:
|
if not region.is_empty:
|
||||||
follow_buffer.append(region)
|
follow_buffer.append(region)
|
||||||
|
try:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(region)
|
||||||
|
except KeyError:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'] = []
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(region)
|
||||||
|
|
||||||
region = Polygon(path)
|
region = Polygon(path)
|
||||||
if not region.is_valid:
|
if not region.is_valid:
|
||||||
|
@ -2670,10 +2696,20 @@ class Gerber (Geometry):
|
||||||
if self.apertures[last_path_aperture]["type"] != 'R':
|
if self.apertures[last_path_aperture]["type"] != 'R':
|
||||||
if not geo.is_empty:
|
if not geo.is_empty:
|
||||||
follow_buffer.append(geo)
|
follow_buffer.append(geo)
|
||||||
|
try:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(geo)
|
||||||
|
except KeyError:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'] = []
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(geo)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.debug("camlib.Gerber.parse_lines() --> %s" % str(e))
|
log.debug("camlib.Gerber.parse_lines() --> %s" % str(e))
|
||||||
if not geo.is_empty:
|
if not geo.is_empty:
|
||||||
follow_buffer.append(geo)
|
follow_buffer.append(geo)
|
||||||
|
try:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(geo)
|
||||||
|
except KeyError:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'] = []
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(geo)
|
||||||
|
|
||||||
# this treats the case when we are storing geometry as solids
|
# this treats the case when we are storing geometry as solids
|
||||||
if making_region:
|
if making_region:
|
||||||
|
@ -2741,8 +2777,18 @@ class Gerber (Geometry):
|
||||||
try:
|
try:
|
||||||
if self.apertures[last_path_aperture]["type"] != 'R':
|
if self.apertures[last_path_aperture]["type"] != 'R':
|
||||||
follow_buffer.append(geo)
|
follow_buffer.append(geo)
|
||||||
|
try:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(geo)
|
||||||
|
except KeyError:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'] = []
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(geo)
|
||||||
except:
|
except:
|
||||||
follow_buffer.append(geo)
|
follow_buffer.append(geo)
|
||||||
|
try:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(geo)
|
||||||
|
except KeyError:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'] = []
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(geo)
|
||||||
|
|
||||||
# this treats the case when we are storing geometry as solids
|
# this treats the case when we are storing geometry as solids
|
||||||
width = self.apertures[last_path_aperture]["size"]
|
width = self.apertures[last_path_aperture]["size"]
|
||||||
|
@ -2770,7 +2816,13 @@ class Gerber (Geometry):
|
||||||
# --- BUFFERED ---
|
# --- BUFFERED ---
|
||||||
# Draw the flash
|
# Draw the flash
|
||||||
# this treats the case when we are storing geometry as paths
|
# this treats the case when we are storing geometry as paths
|
||||||
follow_buffer.append(Point([linear_x, linear_y]))
|
geo_flash = Point([linear_x, linear_y])
|
||||||
|
follow_buffer.append(geo_flash)
|
||||||
|
try:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(geo_flash)
|
||||||
|
except KeyError:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'] = []
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(geo_flash)
|
||||||
|
|
||||||
# this treats the case when we are storing geometry as solids
|
# this treats the case when we are storing geometry as solids
|
||||||
flash = Gerber.create_flash_geometry(
|
flash = Gerber.create_flash_geometry(
|
||||||
|
@ -2869,6 +2921,11 @@ class Gerber (Geometry):
|
||||||
geo = LineString(path)
|
geo = LineString(path)
|
||||||
if not geo.is_empty:
|
if not geo.is_empty:
|
||||||
follow_buffer.append(geo)
|
follow_buffer.append(geo)
|
||||||
|
try:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(geo)
|
||||||
|
except KeyError:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'] = []
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(geo)
|
||||||
|
|
||||||
# this treats the case when we are storing geometry as solids
|
# this treats the case when we are storing geometry as solids
|
||||||
buffered = LineString(path).buffer(width / 1.999, int(self.steps_per_circle))
|
buffered = LineString(path).buffer(width / 1.999, int(self.steps_per_circle))
|
||||||
|
@ -3000,6 +3057,11 @@ class Gerber (Geometry):
|
||||||
geo = LineString(path)
|
geo = LineString(path)
|
||||||
if not geo.is_empty:
|
if not geo.is_empty:
|
||||||
follow_buffer.append(geo)
|
follow_buffer.append(geo)
|
||||||
|
try:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(geo)
|
||||||
|
except KeyError:
|
||||||
|
self.apertures[current_aperture]['follow_geometry'] = []
|
||||||
|
self.apertures[current_aperture]['follow_geometry'].append(geo)
|
||||||
|
|
||||||
# this treats the case when we are storing geometry as solids
|
# this treats the case when we are storing geometry as solids
|
||||||
width = self.apertures[last_path_aperture]["size"]
|
width = self.apertures[last_path_aperture]["size"]
|
||||||
|
|
|
@ -178,6 +178,12 @@ class Properties(FlatCAMTool):
|
||||||
if obj.apertures[ap]['solid_geometry']:
|
if obj.apertures[ap]['solid_geometry']:
|
||||||
elems = len(obj.apertures[ap]['solid_geometry'])
|
elems = len(obj.apertures[ap]['solid_geometry'])
|
||||||
temp_ap['solid_geometry'] = '%s Polygons' % str(elems)
|
temp_ap['solid_geometry'] = '%s Polygons' % str(elems)
|
||||||
|
try:
|
||||||
|
if obj.apertures[ap]['follow_geometry']:
|
||||||
|
elems = len(obj.apertures[ap]['follow_geometry'])
|
||||||
|
temp_ap['follow_geometry'] = '%s Polygons' % str(elems)
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
self.addChild(apertures, [str(ap), str(temp_ap)], True)
|
self.addChild(apertures, [str(ap), str(temp_ap)], True)
|
||||||
elif obj.kind.lower() == 'excellon':
|
elif obj.kind.lower() == 'excellon':
|
||||||
for tool, value in obj.tools.items():
|
for tool, value in obj.tools.items():
|
||||||
|
|
Loading…
Reference in New Issue