Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FormerLurker/ArcWelderLib.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFormerLurker <hochgebe@gmail.com>2020-11-20 23:40:10 +0300
committerFormerLurker <hochgebe@gmail.com>2020-11-20 23:40:10 +0300
commit4f2fef2779e4cac3d31eb2ba4181416efb6a6bab (patch)
tree7f4adcdc7e46d5cb8812b9235a20a73cfdc27050 /PyArcWelder
parent995ec6d5b35cf8ae23dabb74065fdafdcc843740 (diff)
Add -z parameter to console app to support arcs, take z into account when calculating spiral length.
Diffstat (limited to 'PyArcWelder')
-rw-r--r--PyArcWelder/py_arc_welder.h6
-rw-r--r--PyArcWelder/py_arc_welder_extension.cpp19
-rw-r--r--PyArcWelder/py_arc_welder_extension.h4
3 files changed, 26 insertions, 3 deletions
diff --git a/PyArcWelder/py_arc_welder.h b/PyArcWelder/py_arc_welder.h
index 4d0e56b..ba2dcf7 100644
--- a/PyArcWelder/py_arc_welder.h
+++ b/PyArcWelder/py_arc_welder.h
@@ -42,7 +42,8 @@ public:
double resolution_mm,
double path_tolerance_percent,
double max_radius,
- bool g90_g91_influences_extruder,
+ bool g90_g91_influences_extruder,
+ bool allow_z_axis_changes,
int buffer_size,
PyObject* py_progress_callback
): arc_welder(
@@ -52,7 +53,8 @@ public:
resolution_mm,
path_tolerance_percent,
max_radius,
- g90_g91_influences_extruder,
+ g90_g91_influences_extruder,
+ allow_z_axis_changes,
buffer_size
){
guid_ = guid;
diff --git a/PyArcWelder/py_arc_welder_extension.cpp b/PyArcWelder/py_arc_welder_extension.cpp
index bce6620..194ee22 100644
--- a/PyArcWelder/py_arc_welder_extension.cpp
+++ b/PyArcWelder/py_arc_welder_extension.cpp
@@ -148,7 +148,13 @@ extern "C" void initPyArcWelder(void)
std::vector<std::string> logger_names;
logger_names.push_back("arc_welder.gcode_conversion");
std::vector<int> logger_levels;
+ logger_levels.push_back(log_levels::NOSET);
+ logger_levels.push_back(log_levels::VERBOSE);
logger_levels.push_back(log_levels::DEBUG);
+ logger_levels.push_back(log_levels::INFO);
+ logger_levels.push_back(log_levels::WARNING);
+ logger_levels.push_back(log_levels::ERROR);
+ logger_levels.push_back(log_levels::CRITICAL);
p_py_logger = new py_logger(logger_names, logger_levels);
p_py_logger->initialize_loggers();
std::string message = "PyArcWelder V0.1.0rc1.dev2 imported - Copyright (C) 2019 Brad Hochgesang...";
@@ -190,7 +196,7 @@ extern "C"
std::string message = "py_gcode_arc_converter.ConvertFile - Beginning Arc Conversion.";
p_py_logger->log(GCODE_CONVERSION, INFO, message);
- py_arc_welder arc_welder_obj(args.guid, args.source_path, args.target_path, p_py_logger, args.resolution_mm, args.path_tolerance_percent, args.max_radius_mm, args.g90_g91_influences_extruder, DEFAULT_GCODE_BUFFER_SIZE, py_progress_callback);
+ py_arc_welder arc_welder_obj(args.guid, args.source_path, args.target_path, p_py_logger, args.resolution_mm, args.path_tolerance_percent, args.max_radius_mm, args.g90_g91_influences_extruder, args.allow_z_axis_changes, DEFAULT_GCODE_BUFFER_SIZE, py_progress_callback);
arc_welder_results results = arc_welder_obj.process();
message = "py_gcode_arc_converter.ConvertFile - Arc Conversion Complete.";
p_py_logger->log(GCODE_CONVERSION, INFO, message);
@@ -294,6 +300,17 @@ static bool ParseArgs(PyObject* py_args, py_gcode_arc_args& args, PyObject** py_
args.max_radius_mm = DEFAULT_MAX_RADIUS_MM; // Set to the default if no resolution is provided, or if it is less than 0.
}
+ // Extract Allow Z Axis Changes
+ // allow_z_axis_changes
+ PyObject* py_allow_z_axis_changes = PyDict_GetItemString(py_args, "allow_z_axis_changes");
+ if (py_allow_z_axis_changes == NULL)
+ {
+ std::string message = "ParseArgs - Unable to retrieve allow_z_axis_changes from the args.";
+ p_py_logger->log_exception(GCODE_CONVERSION, message);
+ return false;
+ }
+ args.allow_z_axis_changes = PyLong_AsLong(py_allow_z_axis_changes) > 0;
+
// Extract G90/G91 influences extruder
// g90_influences_extruder
PyObject* py_g90_g91_influences_extruder = PyDict_GetItemString(py_args, "g90_g91_influences_extruder");
diff --git a/PyArcWelder/py_arc_welder_extension.h b/PyArcWelder/py_arc_welder_extension.h
index f288c9a..fb5524c 100644
--- a/PyArcWelder/py_arc_welder_extension.h
+++ b/PyArcWelder/py_arc_welder_extension.h
@@ -50,6 +50,7 @@ struct py_gcode_arc_args {
path_tolerance_percent = ARC_LENGTH_PERCENT_TOLERANCE_DEFAULT;
max_radius_mm = DEFAULT_MAX_RADIUS_MM;
g90_g91_influences_extruder = DEFAULT_G90_G91_INFLUENCES_EXTREUDER;
+ allow_z_axis_changes = DEFAULT_ALLOW_Z_AXIS_CHANGES;
log_level = 0;
}
py_gcode_arc_args(
@@ -60,6 +61,7 @@ struct py_gcode_arc_args {
double path_tolerance_percent_,
double max_radius_mm_,
bool g90_g91_influences_extruder_,
+ bool allow_z_axis_changes_,
int log_level_
) {
guid = guid_;
@@ -68,6 +70,7 @@ struct py_gcode_arc_args {
resolution_mm = resolution_mm_;
path_tolerance_percent = path_tolerance_percent_;
max_radius_mm = max_radius_mm_;
+ allow_z_axis_changes = allow_z_axis_changes_;
g90_g91_influences_extruder = g90_g91_influences_extruder_;
log_level = log_level_;
}
@@ -76,6 +79,7 @@ struct py_gcode_arc_args {
std::string target_path;
double resolution_mm;
double path_tolerance_percent;
+ bool allow_z_axis_changes;
bool g90_g91_influences_extruder;
double max_radius_mm;
int log_level;