mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-07-13 20:31:46 +08:00
Merge pull request #3518 from NVBots/aligned_rectilinear_infill
Aligned rectilinear infill
This commit is contained in:
commit
3ac194ba5e
@ -9,6 +9,7 @@ use Slic3r::Fill::Concentric;
|
|||||||
use Slic3r::Fill::Honeycomb;
|
use Slic3r::Fill::Honeycomb;
|
||||||
use Slic3r::Fill::PlanePath;
|
use Slic3r::Fill::PlanePath;
|
||||||
use Slic3r::Fill::Rectilinear;
|
use Slic3r::Fill::Rectilinear;
|
||||||
|
use Slic3r::Fill::AlignedRectilinear;
|
||||||
use Slic3r::Flow ':roles';
|
use Slic3r::Flow ':roles';
|
||||||
use Slic3r::Geometry qw(X Y PI scale chained_path deg2rad);
|
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);
|
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 = (
|
our %FillTypes = (
|
||||||
archimedeanchords => 'Slic3r::Fill::ArchimedeanChords',
|
archimedeanchords => 'Slic3r::Fill::ArchimedeanChords',
|
||||||
|
alignedrectilinear => 'Slic3r::Fill::AlignedRectilinear',
|
||||||
rectilinear => 'Slic3r::Fill::Rectilinear',
|
rectilinear => 'Slic3r::Fill::Rectilinear',
|
||||||
grid => 'Slic3r::Fill::Grid',
|
grid => 'Slic3r::Fill::Grid',
|
||||||
flowsnake => 'Slic3r::Fill::Flowsnake',
|
flowsnake => 'Slic3r::Fill::Flowsnake',
|
||||||
|
@ -165,4 +165,11 @@ extends 'Slic3r::Fill::Rectilinear';
|
|||||||
sub angles () { [0] }
|
sub angles () { [0] }
|
||||||
sub horizontal_lines { 1 }
|
sub horizontal_lines { 1 }
|
||||||
|
|
||||||
|
|
||||||
|
package Slic3r::Fill::AlignedRectilinear;
|
||||||
|
use Moo;
|
||||||
|
extends 'Slic3r::Fill::Rectilinear';
|
||||||
|
|
||||||
|
sub angles () { [0, 0] }
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
@ -156,11 +156,13 @@ PrintConfigDef::PrintConfigDef()
|
|||||||
def->cli = "external-fill-pattern|solid-fill-pattern=s";
|
def->cli = "external-fill-pattern|solid-fill-pattern=s";
|
||||||
def->enum_keys_map = ConfigOptionEnum<InfillPattern>::get_enum_values();
|
def->enum_keys_map = ConfigOptionEnum<InfillPattern>::get_enum_values();
|
||||||
def->enum_values.push_back("rectilinear");
|
def->enum_values.push_back("rectilinear");
|
||||||
|
def->enum_values.push_back("alignedrectilinear");
|
||||||
def->enum_values.push_back("concentric");
|
def->enum_values.push_back("concentric");
|
||||||
def->enum_values.push_back("hilbertcurve");
|
def->enum_values.push_back("hilbertcurve");
|
||||||
def->enum_values.push_back("archimedeanchords");
|
def->enum_values.push_back("archimedeanchords");
|
||||||
def->enum_values.push_back("octagramspiral");
|
def->enum_values.push_back("octagramspiral");
|
||||||
def->enum_labels.push_back("Rectilinear");
|
def->enum_labels.push_back("Rectilinear");
|
||||||
|
def->enum_labels.push_back("Aligned Rectilinear");
|
||||||
def->enum_labels.push_back("Concentric");
|
def->enum_labels.push_back("Concentric");
|
||||||
def->enum_labels.push_back("Hilbert Curve");
|
def->enum_labels.push_back("Hilbert Curve");
|
||||||
def->enum_labels.push_back("Archimedean Chords");
|
def->enum_labels.push_back("Archimedean Chords");
|
||||||
@ -363,6 +365,7 @@ PrintConfigDef::PrintConfigDef()
|
|||||||
def->cli = "fill-pattern=s";
|
def->cli = "fill-pattern=s";
|
||||||
def->enum_keys_map = ConfigOptionEnum<InfillPattern>::get_enum_values();
|
def->enum_keys_map = ConfigOptionEnum<InfillPattern>::get_enum_values();
|
||||||
def->enum_values.push_back("rectilinear");
|
def->enum_values.push_back("rectilinear");
|
||||||
|
def->enum_values.push_back("alignedrectilinear");
|
||||||
def->enum_values.push_back("grid");
|
def->enum_values.push_back("grid");
|
||||||
def->enum_values.push_back("line");
|
def->enum_values.push_back("line");
|
||||||
def->enum_values.push_back("concentric");
|
def->enum_values.push_back("concentric");
|
||||||
@ -372,6 +375,7 @@ PrintConfigDef::PrintConfigDef()
|
|||||||
def->enum_values.push_back("archimedeanchords");
|
def->enum_values.push_back("archimedeanchords");
|
||||||
def->enum_values.push_back("octagramspiral");
|
def->enum_values.push_back("octagramspiral");
|
||||||
def->enum_labels.push_back("Rectilinear");
|
def->enum_labels.push_back("Rectilinear");
|
||||||
|
def->enum_labels.push_back("AlignedRectilinear");
|
||||||
def->enum_labels.push_back("Grid");
|
def->enum_labels.push_back("Grid");
|
||||||
def->enum_labels.push_back("Line");
|
def->enum_labels.push_back("Line");
|
||||||
def->enum_labels.push_back("Concentric");
|
def->enum_labels.push_back("Concentric");
|
||||||
|
@ -30,7 +30,7 @@ enum GCodeFlavor {
|
|||||||
};
|
};
|
||||||
|
|
||||||
enum InfillPattern {
|
enum InfillPattern {
|
||||||
ipRectilinear, ipGrid, ipLine, ipConcentric, ipHoneycomb, ip3DHoneycomb,
|
ipRectilinear, ipAlignedRectilinear, ipGrid, ipLine, ipConcentric, ipHoneycomb, ip3DHoneycomb,
|
||||||
ipHilbertCurve, ipArchimedeanChords, ipOctagramSpiral,
|
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() {
|
template<> inline t_config_enum_values ConfigOptionEnum<InfillPattern>::get_enum_values() {
|
||||||
t_config_enum_values keys_map;
|
t_config_enum_values keys_map;
|
||||||
keys_map["rectilinear"] = ipRectilinear;
|
keys_map["rectilinear"] = ipRectilinear;
|
||||||
|
keys_map["alignedrectilinear"] = ipAlignedRectilinear;
|
||||||
keys_map["grid"] = ipGrid;
|
keys_map["grid"] = ipGrid;
|
||||||
keys_map["line"] = ipLine;
|
keys_map["line"] = ipLine;
|
||||||
keys_map["concentric"] = ipConcentric;
|
keys_map["concentric"] = ipConcentric;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user