Merge pull request #3518 from NVBots/aligned_rectilinear_infill

Aligned rectilinear infill
This commit is contained in:
Alessandro Ranellucci 2016-11-22 18:30:01 +01:00 committed by GitHub
commit 3ac194ba5e
4 changed files with 15 additions and 1 deletions

View File

@ -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',

View File

@ -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;

View File

@ -156,11 +156,13 @@ PrintConfigDef::PrintConfigDef()
def->cli = "external-fill-pattern|solid-fill-pattern=s";
def->enum_keys_map = ConfigOptionEnum<InfillPattern>::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("Aligned Rectilinear");
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<InfillPattern>::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");

View File

@ -30,7 +30,7 @@ enum GCodeFlavor {
};
enum InfillPattern {
ipRectilinear, ipGrid, ipLine, ipConcentric, ipHoneycomb, ip3DHoneycomb,
ipRectilinear, ipAlignedRectilinear, ipGrid, ipLine, ipConcentric, ipHoneycomb, ip3DHoneycomb,
ipHilbertCurve, ipArchimedeanChords, ipOctagramSpiral,
};
@ -58,6 +58,7 @@ template<> inline t_config_enum_values ConfigOptionEnum<GCodeFlavor>::get_enum_v
template<> inline t_config_enum_values ConfigOptionEnum<InfillPattern>::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;