From 82f0c40ff8ac84f0d83b4f2379bc6b36ae5407ee Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Tue, 17 Dec 2019 13:26:09 +0200 Subject: [PATCH] - fixed the generate_from_geometry_2() method to use the default values in case the parameters are None --- README.md | 1 + camlib.py | 44 +++++++++++++++++++++++--------------------- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 17043df2..c9ba45f4 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ CAD program, and create G-Code for Isolation routing. - modified QValidator in FCDoubleSpinner() GUI element to allow entering the minus sign when the range maximum is set as 0.0; also for positive numbers allowed entering the symbol plus - made sure that if in Gerber UI the isolation is made with a V-Shape tool then the tool type is automatically updated on the generated Geometry Object - added ability to save the Source File as PDF (still have to adjust the page size) +- fixed the generate_from_geometry_2() method to use the default values in case the parameters are None 16.12.2019 diff --git a/camlib.py b/camlib.py index 32e3813d..aaf49c82 100644 --- a/camlib.py +++ b/camlib.py @@ -3304,14 +3304,12 @@ class CNCjob(Geometry): return self.gcode def generate_from_geometry_2( - self, geometry, append=True, - tooldia=None, offset=0.0, tolerance=0, - z_cut=1.0, z_move=2.0, - feedrate=2.0, feedrate_z=2.0, feedrate_rapid=30, - spindlespeed=None, spindledir='CW', dwell=False, dwelltime=1.0, + self, geometry, append=True, tooldia=None, offset=0.0, tolerance=0, z_cut=None, z_move=None, + feedrate=None, feedrate_z=None, feedrate_rapid=None, + spindlespeed=None, spindledir='CW', dwell=False, dwelltime=None, multidepth=False, depthpercut=None, - toolchange=False, toolchangez=1.0, toolchangexy="0.0, 0.0", - extracut=False, extracut_length=0.1, startz=None, endz=2.0, + toolchange=False, toolchangez=None, toolchangexy="0.0, 0.0", + extracut=False, extracut_length=None, startz=None, endz=None, pp_geometry_name=None, tool_no=1): """ Second algorithm to generate from Geometry. @@ -3406,27 +3404,31 @@ class CNCjob(Geometry): log.debug("%d paths" % len(flat_geometry)) try: - self.tooldia = float(tooldia) if tooldia else None + self.tooldia = float(tooldia) if tooldia else self.app.defaults["geometry_cnctooldia"] except ValueError: - self.tooldia = [float(el) for el in tooldia.split(',') if el != ''] if tooldia else None + self.tooldia = [float(el) for el in tooldia.split(',') if el != ''] if tooldia is not None else \ + self.app.defaults["geometry_cnctooldia"] - self.z_cut = float(z_cut) if z_cut is not None else None - self.z_move = float(z_move) if z_move is not None else None + self.z_cut = float(z_cut) if z_cut is not None else self.app.defaults["geometry_cutz"] + self.z_move = float(z_move) if z_move is not None else self.app.defaults["geometry_travelz"] - self.feedrate = float(feedrate) if feedrate else None - self.z_feedrate = float(feedrate_z) if feedrate_z is not None else None - self.feedrate_rapid = float(feedrate_rapid) if feedrate_rapid else None + self.feedrate = float(feedrate) if feedrate is not None else self.app.defaults["geometry_feedrate"] + self.z_feedrate = float(feedrate_z) if feedrate_z is not None else self.app.defaults["geometry_feedrate_z"] + self.feedrate_rapid = float(feedrate_rapid) if feedrate_rapid is not None else \ + self.app.defaults["geometry_feedrate_rapid"] self.spindlespeed = int(spindlespeed) if spindlespeed != 0 else None self.spindledir = spindledir self.dwell = dwell - self.dwelltime = float(dwelltime) if dwelltime else None + self.dwelltime = float(dwelltime) if dwelltime is not None else self.app.defaults["geometry_dwelltime"] - self.startz = float(startz) if startz is not None else None - self.z_end = float(endz) if endz is not None else None - self.z_depthpercut = float(depthpercut) if depthpercut else None + self.startz = float(startz) if startz is not None else self.app.defaults["geometry_startz"] + self.z_end = float(endz) if endz is not None else self.app.defaults["geometry_endz"] + self.z_depthpercut = float(depthpercut) if depthpercut is not None else 0.0 self.multidepth = multidepth - self.z_toolchange = float(toolchangez) if toolchangez is not None else None + self.z_toolchange = float(toolchangez) if toolchangez is not None else self.app.defaults["geometry_toolchangez"] + self.extracut_length = float(extracut_length) if extracut_length is not None else \ + self.app.defaults["geometry_extracut_length"] try: if toolchangexy == '': @@ -3601,7 +3603,7 @@ class CNCjob(Geometry): if not multidepth: # calculate the cut distance total_cut += geo.length - self.gcode += self.create_gcode_single_pass(geo, extracut, extracut_length, tolerance, + self.gcode += self.create_gcode_single_pass(geo, extracut, self.extracut_length, tolerance, old_point=current_pt) # --------- Multi-pass --------- @@ -3616,7 +3618,7 @@ class CNCjob(Geometry): total_cut += (geo.length * nr_cuts) - self.gcode += self.create_gcode_multi_pass(geo, extracut, extracut_length, tolerance, + self.gcode += self.create_gcode_multi_pass(geo, extracut, self.extracut_length, tolerance, postproc=p, old_point=current_pt) # calculate the travel distance