From a3ddfde51814129258d90294f8c086caa0fed77a Mon Sep 17 00:00:00 2001 From: Forrest Pieper Date: Fri, 23 Sep 2016 00:00:48 -0400 Subject: [PATCH 1/2] Add fill pattern for aligned rectilinear fixes #3225 --- lib/Slic3r/Fill.pm | 2 ++ lib/Slic3r/Fill/Rectilinear.pm | 7 +++++++ xs/src/libslic3r/PrintConfig.cpp | 4 ++++ xs/src/libslic3r/PrintConfig.hpp | 3 ++- 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/Slic3r/Fill.pm b/lib/Slic3r/Fill.pm index 8c63fde596..14410eab8a 100644 --- a/lib/Slic3r/Fill.pm +++ b/lib/Slic3r/Fill.pm @@ -9,6 +9,7 @@ use Slic3r::Fill::Concentric; use Slic3r::Fill::Honeycomb; use Slic3r::Fill::PlanePath; use Slic3r::Fill::Rectilinear; +use Slic3r::Fill::AlignedRectilinear; use Slic3r::Flow ':roles'; use Slic3r::Geometry qw(X Y PI scale chained_path deg2rad); use Slic3r::Geometry::Clipper qw(union union_ex diff diff_ex intersection_ex offset offset2); @@ -20,6 +21,7 @@ has 'fillers' => (is => 'rw', default => sub { {} }); our %FillTypes = ( archimedeanchords => 'Slic3r::Fill::ArchimedeanChords', + alignedrectilinear => 'Slic3r::Fill::AlignedRectilinear', rectilinear => 'Slic3r::Fill::Rectilinear', grid => 'Slic3r::Fill::Grid', flowsnake => 'Slic3r::Fill::Flowsnake', diff --git a/lib/Slic3r/Fill/Rectilinear.pm b/lib/Slic3r/Fill/Rectilinear.pm index 0922ff7714..66fbde3302 100644 --- a/lib/Slic3r/Fill/Rectilinear.pm +++ b/lib/Slic3r/Fill/Rectilinear.pm @@ -165,4 +165,11 @@ extends 'Slic3r::Fill::Rectilinear'; sub angles () { [0] } sub horizontal_lines { 1 } + +package Slic3r::Fill::AlignedRectilinear; +use Moo; +extends 'Slic3r::Fill::Rectilinear'; + +sub angles () { [0, 0] } + 1; diff --git a/xs/src/libslic3r/PrintConfig.cpp b/xs/src/libslic3r/PrintConfig.cpp index 461981cdaf..50aee4cdd5 100644 --- a/xs/src/libslic3r/PrintConfig.cpp +++ b/xs/src/libslic3r/PrintConfig.cpp @@ -156,11 +156,13 @@ PrintConfigDef::PrintConfigDef() def->cli = "external-fill-pattern|solid-fill-pattern=s"; def->enum_keys_map = ConfigOptionEnum::get_enum_values(); def->enum_values.push_back("rectilinear"); + def->enum_values.push_back("alignedrectilinear"); def->enum_values.push_back("concentric"); def->enum_values.push_back("hilbertcurve"); def->enum_values.push_back("archimedeanchords"); def->enum_values.push_back("octagramspiral"); def->enum_labels.push_back("Rectilinear"); + def->enum_labels.push_back("AlignedRectilinear"); def->enum_labels.push_back("Concentric"); def->enum_labels.push_back("Hilbert Curve"); def->enum_labels.push_back("Archimedean Chords"); @@ -363,6 +365,7 @@ PrintConfigDef::PrintConfigDef() def->cli = "fill-pattern=s"; def->enum_keys_map = ConfigOptionEnum::get_enum_values(); def->enum_values.push_back("rectilinear"); + def->enum_values.push_back("alignedrectilinear"); def->enum_values.push_back("grid"); def->enum_values.push_back("line"); def->enum_values.push_back("concentric"); @@ -372,6 +375,7 @@ PrintConfigDef::PrintConfigDef() def->enum_values.push_back("archimedeanchords"); def->enum_values.push_back("octagramspiral"); def->enum_labels.push_back("Rectilinear"); + def->enum_labels.push_back("AlignedRectilinear"); def->enum_labels.push_back("Grid"); def->enum_labels.push_back("Line"); def->enum_labels.push_back("Concentric"); diff --git a/xs/src/libslic3r/PrintConfig.hpp b/xs/src/libslic3r/PrintConfig.hpp index 762aa4c976..1b9283f26a 100644 --- a/xs/src/libslic3r/PrintConfig.hpp +++ b/xs/src/libslic3r/PrintConfig.hpp @@ -13,7 +13,7 @@ enum GCodeFlavor { }; enum InfillPattern { - ipRectilinear, ipGrid, ipLine, ipConcentric, ipHoneycomb, ip3DHoneycomb, + ipRectilinear, ipAlignedRectilinear, ipGrid, ipLine, ipConcentric, ipHoneycomb, ip3DHoneycomb, ipHilbertCurve, ipArchimedeanChords, ipOctagramSpiral, }; @@ -41,6 +41,7 @@ template<> inline t_config_enum_values ConfigOptionEnum::get_enum_v template<> inline t_config_enum_values ConfigOptionEnum::get_enum_values() { t_config_enum_values keys_map; keys_map["rectilinear"] = ipRectilinear; + keys_map["alignedrectilinear"] = ipAlignedRectilinear; keys_map["grid"] = ipGrid; keys_map["line"] = ipLine; keys_map["concentric"] = ipConcentric; From 5e52407ad8bde259062d00673631228f9c1d370a Mon Sep 17 00:00:00 2001 From: Forrest Pieper Date: Wed, 28 Sep 2016 13:58:02 -0400 Subject: [PATCH 2/2] improve aligned rectilinear menu text --- xs/src/libslic3r/PrintConfig.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xs/src/libslic3r/PrintConfig.cpp b/xs/src/libslic3r/PrintConfig.cpp index 50aee4cdd5..a12537b1de 100644 --- a/xs/src/libslic3r/PrintConfig.cpp +++ b/xs/src/libslic3r/PrintConfig.cpp @@ -162,7 +162,7 @@ PrintConfigDef::PrintConfigDef() def->enum_values.push_back("archimedeanchords"); def->enum_values.push_back("octagramspiral"); def->enum_labels.push_back("Rectilinear"); - def->enum_labels.push_back("AlignedRectilinear"); + def->enum_labels.push_back("Aligned Rectilinear"); def->enum_labels.push_back("Concentric"); def->enum_labels.push_back("Hilbert Curve"); def->enum_labels.push_back("Archimedean Chords");