Skip to content

Commit

Permalink
Clean up error correction and debug parameters for the console applic…
Browse files Browse the repository at this point in the history
…ations. Update readme.md.
  • Loading branch information
FormerLurker committed Nov 25, 2021
1 parent 274b33a commit 9d1d644
Show file tree
Hide file tree
Showing 24 changed files with 923 additions and 626 deletions.
7 changes: 5 additions & 2 deletions ArcWelder/arc_welder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -981,8 +981,11 @@ void arc_welder::add_arcwelder_comment_to_target()
}
stream << "; default_xyz_precision=" << std::setprecision(0) << static_cast<int>(current_arc_.get_xyz_precision()) << "\n";
stream << "; default_e_precision=" << std::setprecision(0) << static_cast<int>(current_arc_.get_e_precision()) << "\n";
stream << "; extrusion_rate_variance_percent=" << std::setprecision(1) << (extrusion_rate_variance_percent_ * 100.0) << "%\n\n";

if (extrusion_rate_variance_percent_ > 0)
{
stream << "; extrusion_rate_variance=" << std::setprecision(1) << (extrusion_rate_variance_percent_ * 100.0) << "%\n";
}
stream << "\n";

output_file_ << stream.str();
}
Expand Down
26 changes: 22 additions & 4 deletions ArcWelder/arc_welder.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
#define _CRT_SECURE_NO_WARNINGS
#endif

#define ARC_WELDER_INFO_STRING "Arc Welder: Anti-Stutter\nConverts G0/G1 commands to G2/G3 (arc) commands. Reduces the number of gcodes per second sent to a 3D printer, which can reduce stuttering.";

static const int segment_statistic_lengths_count = 12;
const double segment_statistic_lengths[] = { 0.002f, 0.005f, 0.01f, 0.05f, 0.1f, 0.5f, 1.0f, 5.0f, 10.0f, 20.0f, 50.0f, 100.0f };

Expand Down Expand Up @@ -623,15 +625,31 @@ struct arc_welder_args
}
stream << "\tResolution : " << resolution_mm << "mm (+-" << std::setprecision(5) << resolution_mm / 2.0 << "mm)\n";
stream << "\tPath Tolerance : " << std::setprecision(3) << path_tolerance_percent * 100.0 << "%\n";
stream << "\tMaximum Arc Radius : " << std::setprecision(0) << max_radius_mm << "mm\n";
stream << "\tMin Arc Segments : " << std::setprecision(0) << min_arc_segments << "\n";
stream << "\tMM Per Arc Segment : " << std::setprecision(3) << mm_per_arc_segment << "\n";
stream << "\tMaximum Arc Radius : " << std::setprecision(1) << max_radius_mm << "mm\n";
bool firmware_compensation_enabled = min_arc_segments > 0 && mm_per_arc_segment > 0.0;
stream << "\tFirmware Compensation : " << (firmware_compensation_enabled ? "True" : "False") << "\n";
if (firmware_compensation_enabled)
{
stream << "\tMin Arc Segments : " << std::setprecision(0) << min_arc_segments << "\n";
stream << "\tMM Per Arc Segment : " << std::setprecision(3) << mm_per_arc_segment << "\n";
}

stream << "\tAllow 3D Arcs : " << (allow_3d_arcs ? "True" : "False") << "\n";
stream << "\tAllow Travel Arcs : " << (allow_travel_arcs ? "True" : "False") << "\n";
stream << "\tAllow Dynamic Precision : " << (allow_dynamic_precision ? "True" : "False") << "\n";
stream << "\tDefault XYZ Precision : " << std::setprecision(0) << static_cast<int>(default_xyz_precision) << "\n";
stream << "\tDefault E Precision : " << std::setprecision(0) << static_cast<int>(default_e_precision) << "\n";
stream << "\tExtrusion Rate Variance % : " << std::setprecision(3) << extrusion_rate_variance_percent * 100.0 << "%\n";
stream << "\tExtrusion Rate Variance : ";
if (extrusion_rate_variance_percent == 0)
{
stream << "Unlimited";
}
else
{
stream << extrusion_rate_variance_percent * 100.0 << "%";
}
stream << "\n";

stream << "\tG90/G91 Influences Extruder : " << (g90_g91_influences_extruder ? "True" : "False") << "\n";
if (max_gcode_length == 0)
{
Expand Down
398 changes: 201 additions & 197 deletions ArcWelderConsole/ArcWelderConsole.cpp

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions ArcWelderConsole/ArcWelderConsole.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -106,10 +106,12 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(SolutionDir)\ArcWelder\;$(VC_IncludePath);$(WindowsSDK_IncludePath);$(SolutionDir)\TCLAP\</IncludePath>
<TargetName>ArcWelder</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'">
<LinkIncremental>true</LinkIncremental>
<IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(SolutionDir)\ArcWelder\;$(VC_IncludePath);$(WindowsSDK_IncludePath);$(SolutionDir)\TCLAP\</IncludePath>
<TargetName>ArcWelder</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
Expand All @@ -119,6 +121,7 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(SolutionDir)\ArcWelder\;$(VC_IncludePath);$(WindowsSDK_IncludePath);$(SolutionDir)\TCLAP\</IncludePath>
<TargetName>ArcWelder</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
Expand Down
486 changes: 279 additions & 207 deletions ArcWelderInverseProcessor/ArcWelderInverseProcessor.cpp

Large diffs are not rendered by default.

3 changes: 1 addition & 2 deletions ArcWelderInverseProcessor/ArcWelderInverseProcessor.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,7 @@
#include <string>
#include <vector>
int run_arc_straightener(int argc, char* argv[]);
static std::string get_available_arguments_string(std::vector<std::string> firmware_arguments);
static bool is_firmware_version_valid_for_type(std::string firmware_type_string, std::string firmware_version, std::string firmware_version_arg_name);
static void check_firmware_version_for_type(std::string firmware_type_string, std::string firmware_version, std::string firmware_version_arg_name);
static int get_firmware_type_from_string(std::string firmware_type);
static void print_firmware_defaults(std::string firmware_type_string, std::string firmware_version_string, std::string firmware_version_arg_name);

Expand Down
3 changes: 3 additions & 0 deletions ArcWelderInverseProcessor/ArcWelderInverseProcessor.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -106,10 +106,12 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(VC_IncludePath);$(WindowsSDK_IncludePath);$(SolutionDir)\TCLAP\</IncludePath>
<TargetName>ArcStraightener</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'">
<LinkIncremental>true</LinkIncremental>
<IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(VC_IncludePath);$(WindowsSDK_IncludePath);$(SolutionDir)\TCLAP\</IncludePath>
<TargetName>ArcStraightener</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
Expand All @@ -119,6 +121,7 @@
<LinkIncremental>false</LinkIncremental>
<IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(VC_IncludePath);$(WindowsSDK_IncludePath);$(SolutionDir)\TCLAP\</IncludePath>
<ExecutablePath>$(VC_ExecutablePath_x64);$(CommonExecutablePath)</ExecutablePath>
<TargetName>ArcStraightener</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
Expand Down
6 changes: 4 additions & 2 deletions ArcWelderInverseProcessor/arc_interpolation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,8 @@ void arc_interpolation::process()
{
if (output_file_.is_open())
{
// Add the gcode file header
output_file_ << p_current_firmware_->get_gcode_header_comment()<<"\n";
parsed_command cmd;
// Communicate every second
while (std::getline(gcode_file, line))
Expand Down Expand Up @@ -273,7 +275,7 @@ void arc_interpolation::process()
std::cout << stream.str();
}

std::string arc_interpolation::get_firmware_argument_description() const
std::string arc_interpolation::get_firmware_arguments_description(std::string separator, std::string argument_prefix, std::string replacement_string, std::string replacement_value) const
{
return p_current_firmware_->get_argument_description();
return p_current_firmware_->get_arguments_description(separator, argument_prefix, replacement_string, replacement_value);
}
2 changes: 1 addition & 1 deletion ArcWelderInverseProcessor/arc_interpolation.h
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ class arc_interpolation
/// Outputs a string description of the firmware arguments.
/// </summary>
/// <returns></returns>
std::string get_firmware_argument_description() const;
std::string get_firmware_arguments_description(std::string separator = "", std::string argument_prefix = "", std::string replacement_string = "", std::string replacement_value = "") const;
private:
arc_interpolation_args args_;
gcode_position_args get_args_(bool g90_g91_influences_extruder, int buffer_size);
Expand Down
33 changes: 30 additions & 3 deletions ArcWelderInverseProcessor/firmware.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ std::string firmware::g1_command(firmware_position& target)
if (has_e)
{
gcode += is_first_parameter ? "E" : " E";
gcode += utilities::dtos(state_.is_extruder_relative ? target.e - position_.e : target.e, 3);
gcode += utilities::dtos(state_.is_extruder_relative ? target.e - position_.e : target.e, 5);
is_first_parameter = false;
}

Expand Down Expand Up @@ -139,14 +139,41 @@ std::vector<std::string> firmware::get_version_names()
return version_names_;
}

std::string firmware::get_version_names_string()
{
std::vector<std::string> version_names_with_release_info;
bool foundLatestRelease = false;
for (int index = 0; index < version_names_.size(); index++)
{
std::string version_name = version_names_[index];

if (foundLatestRelease)
{
version_name.append(" (").append("NON_RELEASE_VERSION").append(")");
}
else if (version_name == args_.latest_release_version)
{
version_name.append(" (").append(LATEST_FIRMWARE_VERSION_NAME).append(")");
foundLatestRelease = true;
}
version_names_with_release_info.push_back(version_name);
}
return utilities::join(version_names_with_release_info, ",");
}

bool firmware::get_g90_g91_influences_extruder()
{
return args_.g90_g91_influences_extruder;
}

std::string firmware::get_argument_description() {
std::string firmware::get_arguments_description(std::string separator, std::string argument_prefix, std::string replacement_string, std::string replacement_value) {

return args_.get_argument_description();
return args_.get_arguments_description(separator, argument_prefix, replacement_string, replacement_value);
}

std::string firmware::get_gcode_header_comment()
{
return args_.get_gcode_header_comment();
}

void firmware::set_versions(std::vector<std::string> version_names, std::string latest_release_version_name)
Expand Down
Loading

0 comments on commit 9d1d644

Please sign in to comment.