diff options
Diffstat (limited to 'ArcWelder/segmented_arc.h')
-rw-r--r-- | ArcWelder/segmented_arc.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/ArcWelder/segmented_arc.h b/ArcWelder/segmented_arc.h index 9af5f25..6705e2e 100644 --- a/ArcWelder/segmented_arc.h +++ b/ArcWelder/segmented_arc.h @@ -40,7 +40,9 @@ public: int max_segments = DEFAULT_MAX_SEGMENTS, double resolution_mm = DEFAULT_RESOLUTION_MM, double path_tolerance_percnet = ARC_LENGTH_PERCENT_TOLERANCE_DEFAULT, - double max_radius_mm = DEFAULT_MAX_RADIUS_MM , + double max_radius_mm = DEFAULT_MAX_RADIUS_MM, + int min_arc_segments = DEFAULT_MIN_ARC_SEGMENTS, + double mm_per_arc_segment = DEFAULT_MM_PER_ARC_SEGMENT, bool allow_z_axis_changes = DEFAULT_ALLOW_Z_AXIS_CHANGES ); virtual ~segmented_arc(); @@ -52,13 +54,19 @@ public: point pop_front(double e_relative); point pop_back(double e_relative); double get_max_radius() const; + int get_min_arc_segments() const; + double get_mm_per_arc_segment() const; private: bool try_add_point_internal_(point p, double pd); std::string get_shape_gcode_(bool has_e, double e, double f) const; + std::string get_g1(double x, double y, double z, double e, double f, bool has_z); + std::string interpolate_arc(double f, bool is_relative, double start_e = 0); //circle arc_circle_; arc current_arc_; double max_radius_mm_; + int min_arc_segments_; + double mm_per_arc_segment_; bool allow_z_axis_changes_; }; |