Ported Slic3r::GCode::OozePrevention storage to XS
This commit is contained in:
parent
b43dd92766
commit
280f3f38d7
@ -195,6 +195,7 @@ sub thread_cleanup {
|
|||||||
*Slic3r::ExtrusionPath::Collection::DESTROY = sub {};
|
*Slic3r::ExtrusionPath::Collection::DESTROY = sub {};
|
||||||
*Slic3r::Flow::DESTROY = sub {};
|
*Slic3r::Flow::DESTROY = sub {};
|
||||||
*Slic3r::GCode::AvoidCrossingPerimeters::DESTROY = sub {};
|
*Slic3r::GCode::AvoidCrossingPerimeters::DESTROY = sub {};
|
||||||
|
*Slic3r::GCode::OozePrevention::DESTROY = sub {};
|
||||||
*Slic3r::GCode::PlaceholderParser::DESTROY = sub {};
|
*Slic3r::GCode::PlaceholderParser::DESTROY = sub {};
|
||||||
*Slic3r::GCode::Wipe::DESTROY = sub {};
|
*Slic3r::GCode::Wipe::DESTROY = sub {};
|
||||||
*Slic3r::GCode::Writer::DESTROY = sub {};
|
*Slic3r::GCode::Writer::DESTROY = sub {};
|
||||||
|
@ -504,13 +504,11 @@ sub set_extruder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
package Slic3r::GCode::OozePrevention;
|
package Slic3r::GCode::OozePrevention;
|
||||||
use Moo;
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
use Slic3r::Geometry qw(scale);
|
use Slic3r::Geometry qw(scale);
|
||||||
|
|
||||||
has 'enable' => (is => 'rw', default => sub { 0 });
|
|
||||||
has 'standby_points' => (is => 'rw');
|
|
||||||
|
|
||||||
sub pre_toolchange {
|
sub pre_toolchange {
|
||||||
my ($self, $gcodegen) = @_;
|
my ($self, $gcodegen) = @_;
|
||||||
|
|
||||||
|
@ -212,8 +212,8 @@ sub export {
|
|||||||
}
|
}
|
||||||
my $convex_hull = convex_hull([ map @$_, @skirts ]);
|
my $convex_hull = convex_hull([ map @$_, @skirts ]);
|
||||||
|
|
||||||
$gcodegen->ooze_prevention->enable(1);
|
$gcodegen->ooze_prevention->set_enable(1);
|
||||||
$gcodegen->ooze_prevention->standby_points(
|
$gcodegen->ooze_prevention->set_standby_points(
|
||||||
[ map @{$_->equally_spaced_points(scale 10)}, @{offset([$convex_hull], scale 3)} ]
|
[ map @{$_->equally_spaced_points(scale 10)}, @{offset([$convex_hull], scale 3)} ]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -216,6 +216,7 @@ for my $class (qw(
|
|||||||
Slic3r::ExtrusionPath::Collection
|
Slic3r::ExtrusionPath::Collection
|
||||||
Slic3r::Flow
|
Slic3r::Flow
|
||||||
Slic3r::GCode::AvoidCrossingPerimeters
|
Slic3r::GCode::AvoidCrossingPerimeters
|
||||||
|
Slic3r::GCode::OozePrevention
|
||||||
Slic3r::GCode::PlaceholderParser
|
Slic3r::GCode::PlaceholderParser
|
||||||
Slic3r::GCode::Wipe
|
Slic3r::GCode::Wipe
|
||||||
Slic3r::Geometry::BoundingBox
|
Slic3r::Geometry::BoundingBox
|
||||||
|
@ -67,6 +67,15 @@ AvoidCrossingPerimeters::travel_to(Point point, const Pointf &gcodegen_origin,
|
|||||||
REGISTER_CLASS(AvoidCrossingPerimeters, "GCode::AvoidCrossingPerimeters");
|
REGISTER_CLASS(AvoidCrossingPerimeters, "GCode::AvoidCrossingPerimeters");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
OozePrevention::OozePrevention()
|
||||||
|
: enable(false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef SLIC3RXS
|
||||||
|
REGISTER_CLASS(OozePrevention, "GCode::OozePrevention");
|
||||||
|
#endif
|
||||||
|
|
||||||
Wipe::Wipe()
|
Wipe::Wipe()
|
||||||
: enable(false)
|
: enable(false)
|
||||||
{
|
{
|
||||||
|
@ -35,6 +35,14 @@ class AvoidCrossingPerimeters {
|
|||||||
MotionPlanner* _layer_mp;
|
MotionPlanner* _layer_mp;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class OozePrevention {
|
||||||
|
public:
|
||||||
|
bool enable;
|
||||||
|
Points standby_points;
|
||||||
|
|
||||||
|
OozePrevention();
|
||||||
|
};
|
||||||
|
|
||||||
class Wipe {
|
class Wipe {
|
||||||
public:
|
public:
|
||||||
bool enable;
|
bool enable;
|
||||||
|
@ -30,6 +30,21 @@
|
|||||||
%code{% THIS->disable_once = value; %};
|
%code{% THIS->disable_once = value; %};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
%name{Slic3r::GCode::OozePrevention} class OozePrevention {
|
||||||
|
OozePrevention();
|
||||||
|
~OozePrevention();
|
||||||
|
|
||||||
|
bool enable()
|
||||||
|
%code{% RETVAL = THIS->enable; %};
|
||||||
|
void set_enable(bool value)
|
||||||
|
%code{% THIS->enable = value; %};
|
||||||
|
|
||||||
|
Points standby_points()
|
||||||
|
%code{% RETVAL = THIS->standby_points; %};
|
||||||
|
void set_standby_points(Points points)
|
||||||
|
%code{% THIS->standby_points = points; %};
|
||||||
|
};
|
||||||
|
|
||||||
%name{Slic3r::GCode::Wipe} class Wipe {
|
%name{Slic3r::GCode::Wipe} class Wipe {
|
||||||
Wipe();
|
Wipe();
|
||||||
~Wipe();
|
~Wipe();
|
||||||
|
@ -178,6 +178,10 @@ Wipe* O_OBJECT_SLIC3R
|
|||||||
Ref<Wipe> O_OBJECT_SLIC3R_T
|
Ref<Wipe> O_OBJECT_SLIC3R_T
|
||||||
Clone<Wipe> O_OBJECT_SLIC3R_T
|
Clone<Wipe> O_OBJECT_SLIC3R_T
|
||||||
|
|
||||||
|
OozePrevention* O_OBJECT_SLIC3R
|
||||||
|
Ref<OozePrevention> O_OBJECT_SLIC3R_T
|
||||||
|
Clone<OozePrevention> O_OBJECT_SLIC3R_T
|
||||||
|
|
||||||
MotionPlanner* O_OBJECT_SLIC3R
|
MotionPlanner* O_OBJECT_SLIC3R
|
||||||
Ref<MotionPlanner> O_OBJECT_SLIC3R_T
|
Ref<MotionPlanner> O_OBJECT_SLIC3R_T
|
||||||
Clone<MotionPlanner> O_OBJECT_SLIC3R_T
|
Clone<MotionPlanner> O_OBJECT_SLIC3R_T
|
||||||
|
Loading…
Reference in New Issue
Block a user