Merge remote-tracking branch 'remotes/origin/master' into vb_print_regions
This commit is contained in:
commit
9efe58e6c7
@ -1,2 +1,3 @@
|
|||||||
min_slic3r_version = 2.3.1-beta
|
min_slic3r_version = 2.3.1-beta
|
||||||
|
0.0.2 Updated start g-code.
|
||||||
0.0.1 Initial Artillery bundle
|
0.0.1 Initial Artillery bundle
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
name = Artillery
|
name = Artillery
|
||||||
# Configuration version of this file. Config file will only be installed, if the config_version differs.
|
# Configuration version of this file. Config file will only be installed, if the config_version differs.
|
||||||
# This means, the server may force the PrusaSlicer configuration to be downgraded.
|
# This means, the server may force the PrusaSlicer configuration to be downgraded.
|
||||||
config_version = 0.0.1
|
config_version = 0.0.2
|
||||||
# Where to get the updates from?
|
# Where to get the updates from?
|
||||||
config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Artillery/
|
config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Artillery/
|
||||||
# changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1%
|
# changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1%
|
||||||
@ -100,11 +100,11 @@ end_gcode = G4 ; wait\nG92 E0 ; prepare to retract\nG1 E-0.5 F3000; retract to a
|
|||||||
|
|
||||||
[printer:*common_STOCK_FW*]
|
[printer:*common_STOCK_FW*]
|
||||||
inherits = *common*
|
inherits = *common*
|
||||||
start_gcode = ; Initial setups\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM900 W[extrusion_width] H[layer_height] D[filament_diameter]\nM200 D0 ; disable volumetric e\nM220 S100 ; reset speed factor to 100%\nM221 S100 ; reset extrusion rate to 100%\n\n; Set the heating\nM190 S[first_layer_bed_temperature]; wait for bed to heat up\nM104 S[first_layer_temperature]; start nozzle heating but don't wait\n\n; Home\nG1 Z3 F3000 ; move z up little to prevent scratching of surface\nG28 ; home all axes\nG1 X3 Y3 F5000 ; move to corner of the bed to avoid ooze over centre\n\n; Wait for final heating\nM109 S[first_layer_temperature] ; wait for the nozzle to heat up\nM190 S[first_layer_bed_temperature] ; wait for the bed to heat up\n\n; Return to prime position, Prime line routine\nG92 E0 ; Reset Extruder\nG1 Z3 F3000 ; move z up little to prevent scratching of surface\nG1 X10 Y.5 Z0.25 F5000.0 ; Move to start position\nG1 X100 Y.5 Z0.25 F1500.0 E15 ; Draw the first line\nG1 X100 Y.2 Z0.25 F5000.0 ; Move to side a little\nG1 X10 Y.2 Z0.25 F1500.0 E30 ; Draw the second line\nG92 E0 ; Reset Extruder\nM221 S{if layer_height<0.075}100{else}95{endif}
|
start_gcode = ; Initial setups\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM220 S100 ; reset speed factor to 100%\nM221 S100 ; reset extrusion rate to 100%\n\n; Set the heating\nM190 S[first_layer_bed_temperature] ; wait for bed to heat up\nM104 S[first_layer_temperature] ; start nozzle heating but don't wait\n\n; Home\nG1 Z3 F3000 ; move z up little to prevent scratching of surface\nG28 ; home all axes\nG1 X3 Y3 F5000 ; move to corner of the bed to avoid ooze over centre\n\n; Wait for final heating\nM109 S[first_layer_temperature] ; wait for the nozzle to heat up\nM190 S[first_layer_bed_temperature] ; wait for the bed to heat up\n\n; Return to prime position, Prime line routine\nG92 E0 ; Reset Extruder\nG1 Z3 F3000 ; move z up little to prevent scratching of surface\nG1 X10 Y.5 Z0.25 F5000.0 ; Move to start position\nG1 X100 Y.5 Z0.25 F1500.0 E15 ; Draw the first line\nG1 X100 Y.2 Z0.25 F5000.0 ; Move to side a little\nG1 X10 Y.2 Z0.25 F1500.0 E30 ; Draw the second line\nG92 E0 ; Reset Extruder\nM221 S{if layer_height<0.075}100{else}95{endif}
|
||||||
|
|
||||||
[printer:*common_UPD_FW*]
|
[printer:*common_UPD_FW*]
|
||||||
inherits = *common*
|
inherits = *common*
|
||||||
start_gcode = ; Initial setups\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM900 K0.12; K factor\nM900 W[extrusion_width] H[layer_height] D[filament_diameter]\nM200 D0 ; disable volumetric e\nM220 S100 ; reset speed factor to 100%\nM221 S100 ; reset extrusion rate to 100%\n\n; Set the heating\nM190 S[first_layer_bed_temperature]; wait for bed to heat up\nM104 S[first_layer_temperature]; start nozzle heating but don't wait\n\n; Home\nG1 Z3 F3000 ; move z up little to prevent scratching of surface\nG28 ; home all axes\nG1 X3 Y3 F5000 ; move to corner of the bed to avoid ooze over centre\n\n; Wait for final heating\nM109 S[first_layer_temperature] ; wait for the nozzle to heat up\nM190 S[first_layer_bed_temperature] ; wait for the bed to heat up\n\n;Auto bed Leveling\n@BEDLEVELVISUALIZER\nG29 ; ABL T\nM420 S1 Z3 ; reload and fade mesh bed leveling until it reach 3mm Z\n\n; Return to prime position, Prime line routine\nG92 E0 ; Reset Extruder\nG1 Z3 F3000 ; move z up little to prevent scratching of surface\nG1 X10 Y.5 Z0.25 F5000.0 ; Move to start position\nG1 X100 Y.5 Z0.25 F1500.0 E15 ; Draw the first line\nG1 X100 Y.2 Z0.25 F5000.0 ; Move to side a little\nG1 X10 Y.2 Z0.25 F1500.0 E30 ; Draw the second line\nG92 E0 ; Reset Extruder\nM221 S{if layer_height<0.075}100{else}95{endif}
|
start_gcode = ; Initial setups\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM900 K0.12 ; K factor\nM900 W[extrusion_width] H[layer_height] D[filament_diameter]\nM200 D0 ; disable volumetric e\nM220 S100 ; reset speed factor to 100%\nM221 S100 ; reset extrusion rate to 100%\n\n; Set the heating\nM190 S[first_layer_bed_temperature] ; wait for bed to heat up\nM104 S[first_layer_temperature] ; start nozzle heating but don't wait\n\n; Home\nG1 Z3 F3000 ; move z up little to prevent scratching of surface\nG28 ; home all axes\nG1 X3 Y3 F5000 ; move to corner of the bed to avoid ooze over centre\n\n; Wait for final heating\nM109 S[first_layer_temperature] ; wait for the nozzle to heat up\nM190 S[first_layer_bed_temperature] ; wait for the bed to heat up\n\n;Auto bed Leveling\n@BEDLEVELVISUALIZER\nG29 ; ABL T\nM420 S1 Z3 ; reload and fade mesh bed leveling until it reach 3mm Z\n\n; Return to prime position, Prime line routine\nG92 E0 ; Reset Extruder\nG1 Z3 F3000 ; move z up little to prevent scratching of surface\nG1 X10 Y.5 Z0.25 F5000.0 ; Move to start position\nG1 X100 Y.5 Z0.25 F1500.0 E15 ; Draw the first line\nG1 X100 Y.2 Z0.25 F5000.0 ; Move to side a little\nG1 X10 Y.2 Z0.25 F1500.0 E30 ; Draw the second line\nG92 E0 ; Reset Extruder\nM221 S{if layer_height<0.075}100{else}95{endif}
|
||||||
|
|
||||||
[printer:Sidewinder X1]
|
[printer:Sidewinder X1]
|
||||||
inherits = *common_STOCK_FW*
|
inherits = *common_STOCK_FW*
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 77 KiB |
@ -156,7 +156,6 @@ target_link_libraries(PrusaSlicer libslic3r_gui)
|
|||||||
target_link_libraries(PrusaSlicer -ldl)
|
target_link_libraries(PrusaSlicer -ldl)
|
||||||
endif ()
|
endif ()
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
include_directories(detours)
|
|
||||||
find_library(PSAPI_LIB NAMES Psapi)
|
find_library(PSAPI_LIB NAMES Psapi)
|
||||||
target_link_libraries(PrusaSlicer ${PSAPI_LIB})
|
target_link_libraries(PrusaSlicer ${PSAPI_LIB})
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -16,6 +16,10 @@
|
|||||||
// #define BRIM_DEBUG_TO_SVG
|
// #define BRIM_DEBUG_TO_SVG
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(BRIM_DEBUG_TO_SVG)
|
||||||
|
#include "SVG.hpp"
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace Slic3r {
|
namespace Slic3r {
|
||||||
|
|
||||||
static void append_and_translate(ExPolygons &dst, const ExPolygons &src, const PrintInstance &instance) {
|
static void append_and_translate(ExPolygons &dst, const ExPolygons &src, const PrintInstance &instance) {
|
||||||
@ -104,7 +108,7 @@ static Polygons top_level_outer_brim_islands(const ConstPrintObjectPtrs &top_lev
|
|||||||
Polygons islands;
|
Polygons islands;
|
||||||
for (const PrintObject *object : top_level_objects_with_brim) {
|
for (const PrintObject *object : top_level_objects_with_brim) {
|
||||||
//FIXME how about the brim type?
|
//FIXME how about the brim type?
|
||||||
float brim_offset = float(scale_(object->config().brim_offset.value));
|
auto brim_offset = float(scale_(object->config().brim_offset.value));
|
||||||
Polygons islands_object;
|
Polygons islands_object;
|
||||||
for (const ExPolygon &ex_poly : object->layers().front()->lslices) {
|
for (const ExPolygon &ex_poly : object->layers().front()->lslices) {
|
||||||
Polygons contour_offset = offset(ex_poly.contour, brim_offset);
|
Polygons contour_offset = offset(ex_poly.contour, brim_offset);
|
||||||
@ -128,7 +132,7 @@ static ExPolygons top_level_outer_brim_area(const Print &print, const ConstPrint
|
|||||||
top_level_objects_idx.insert(object->id().id);
|
top_level_objects_idx.insert(object->id().id);
|
||||||
|
|
||||||
ExPolygons brim_area;
|
ExPolygons brim_area;
|
||||||
Polygons no_brim_area;
|
ExPolygons no_brim_area;
|
||||||
for (const PrintObject *object : print.objects()) {
|
for (const PrintObject *object : print.objects()) {
|
||||||
const BrimType brim_type = object->config().brim_type.value;
|
const BrimType brim_type = object->config().brim_type.value;
|
||||||
const float brim_offset = scale_(object->config().brim_offset.value);
|
const float brim_offset = scale_(object->config().brim_offset.value);
|
||||||
@ -136,16 +140,19 @@ static ExPolygons top_level_outer_brim_area(const Print &print, const ConstPrint
|
|||||||
const bool is_top_outer_brim = top_level_objects_idx.find(object->id().id) != top_level_objects_idx.end();
|
const bool is_top_outer_brim = top_level_objects_idx.find(object->id().id) != top_level_objects_idx.end();
|
||||||
|
|
||||||
ExPolygons brim_area_object;
|
ExPolygons brim_area_object;
|
||||||
Polygons no_brim_area_object;
|
ExPolygons no_brim_area_object;
|
||||||
for (const ExPolygon &ex_poly : object->layers().front()->lslices) {
|
for (const ExPolygon &ex_poly : object->layers().front()->lslices) {
|
||||||
if ((brim_type == BrimType::btOuterOnly || brim_type == BrimType::btOuterAndInner) && is_top_outer_brim)
|
if ((brim_type == BrimType::btOuterOnly || brim_type == BrimType::btOuterAndInner) && is_top_outer_brim)
|
||||||
append(brim_area_object, diff_ex(offset(ex_poly.contour, brim_width + brim_offset), offset(ex_poly.contour, brim_offset)));
|
append(brim_area_object, diff_ex(offset(ex_poly.contour, brim_width + brim_offset), offset(ex_poly.contour, brim_offset)));
|
||||||
|
|
||||||
if (brim_type == BrimType::btOuterOnly || brim_type == BrimType::btNoBrim)
|
if (brim_type == BrimType::btOuterOnly || brim_type == BrimType::btNoBrim)
|
||||||
append(no_brim_area_object, offset(ex_poly.holes, -no_brim_offset));
|
append(no_brim_area_object, offset_ex(ex_poly.holes, -no_brim_offset));
|
||||||
|
|
||||||
|
if (brim_type == BrimType::btInnerOnly || brim_type == BrimType::btNoBrim)
|
||||||
|
append(no_brim_area_object, diff_ex(offset(ex_poly.contour, no_brim_offset), ex_poly.holes));
|
||||||
|
|
||||||
if (brim_type != BrimType::btNoBrim)
|
if (brim_type != BrimType::btNoBrim)
|
||||||
append(no_brim_area_object, offset(ex_poly.contour, brim_offset));
|
append(no_brim_area_object, offset_ex(ExPolygon(ex_poly.contour), brim_offset));
|
||||||
|
|
||||||
no_brim_area_object.emplace_back(ex_poly.contour);
|
no_brim_area_object.emplace_back(ex_poly.contour);
|
||||||
}
|
}
|
||||||
@ -190,7 +197,7 @@ static ExPolygons inner_brim_area(const Print &print, const ConstPrintObjectPtrs
|
|||||||
append(brim_area_object, diff_ex(offset_ex(ex_poly.holes, -brim_offset), offset_ex(ex_poly.holes, -brim_width - brim_offset)));
|
append(brim_area_object, diff_ex(offset_ex(ex_poly.holes, -brim_offset), offset_ex(ex_poly.holes, -brim_width - brim_offset)));
|
||||||
|
|
||||||
if (brim_type == BrimType::btInnerOnly || brim_type == BrimType::btNoBrim)
|
if (brim_type == BrimType::btInnerOnly || brim_type == BrimType::btNoBrim)
|
||||||
append(no_brim_area_object, to_expolygons(offset(ex_poly.contour, no_brim_offset)));
|
append(no_brim_area_object, diff_ex(offset(ex_poly.contour, no_brim_offset), ex_poly.holes));
|
||||||
|
|
||||||
if (brim_type == BrimType::btOuterOnly || brim_type == BrimType::btNoBrim)
|
if (brim_type == BrimType::btOuterOnly || brim_type == BrimType::btNoBrim)
|
||||||
append(no_brim_area_object, offset_ex(ex_poly.holes, -no_brim_offset));
|
append(no_brim_area_object, offset_ex(ex_poly.holes, -no_brim_offset));
|
||||||
@ -260,7 +267,7 @@ static Polylines connect_brim_lines(Polylines &&polylines, const Polygons &brim_
|
|||||||
|
|
||||||
const EdgeGrid::Grid &grid;
|
const EdgeGrid::Grid &grid;
|
||||||
Line brim_line;
|
Line brim_line;
|
||||||
bool intersect;
|
bool intersect = false;
|
||||||
|
|
||||||
} visitor(grid);
|
} visitor(grid);
|
||||||
|
|
||||||
@ -307,7 +314,7 @@ static Polylines connect_brim_lines(Polylines &&polylines, const Polygons &brim_
|
|||||||
static void make_inner_brim(const Print &print, const ConstPrintObjectPtrs &top_level_objects_with_brim, ExtrusionEntityCollection &brim)
|
static void make_inner_brim(const Print &print, const ConstPrintObjectPtrs &top_level_objects_with_brim, ExtrusionEntityCollection &brim)
|
||||||
{
|
{
|
||||||
Flow flow = print.brim_flow();
|
Flow flow = print.brim_flow();
|
||||||
ExPolygons islands_ex = inner_brim_area(print, top_level_objects_with_brim, flow.scaled_spacing());
|
ExPolygons islands_ex = inner_brim_area(print, top_level_objects_with_brim, float(flow.scaled_spacing()));
|
||||||
Polygons loops;
|
Polygons loops;
|
||||||
islands_ex = offset_ex(islands_ex, -0.5f * float(flow.scaled_spacing()), jtSquare);
|
islands_ex = offset_ex(islands_ex, -0.5f * float(flow.scaled_spacing()), jtSquare);
|
||||||
for (size_t i = 0; !islands_ex.empty(); ++i) {
|
for (size_t i = 0; !islands_ex.empty(); ++i) {
|
||||||
@ -330,7 +337,7 @@ ExtrusionEntityCollection make_brim(const Print &print, PrintTryCancel try_cance
|
|||||||
Flow flow = print.brim_flow();
|
Flow flow = print.brim_flow();
|
||||||
ConstPrintObjectPtrs top_level_objects_with_brim = get_top_level_objects_with_brim(print);
|
ConstPrintObjectPtrs top_level_objects_with_brim = get_top_level_objects_with_brim(print);
|
||||||
Polygons islands = top_level_outer_brim_islands(top_level_objects_with_brim);
|
Polygons islands = top_level_outer_brim_islands(top_level_objects_with_brim);
|
||||||
ExPolygons islands_area_ex = top_level_outer_brim_area(print, top_level_objects_with_brim, flow.scaled_spacing());
|
ExPolygons islands_area_ex = top_level_outer_brim_area(print, top_level_objects_with_brim, float(flow.scaled_spacing()));
|
||||||
islands_area = to_polygons(islands_area_ex);
|
islands_area = to_polygons(islands_area_ex);
|
||||||
|
|
||||||
Polygons loops;
|
Polygons loops;
|
||||||
@ -380,7 +387,7 @@ ExtrusionEntityCollection make_brim(const Print &print, PrintTryCancel try_cance
|
|||||||
}
|
}
|
||||||
#endif // BRIM_DEBUG_TO_SVG
|
#endif // BRIM_DEBUG_TO_SVG
|
||||||
|
|
||||||
all_loops = connect_brim_lines(std::move(all_loops), offset(islands_area_ex, float(SCALED_EPSILON)), flow.scaled_spacing() * 2.f);
|
all_loops = connect_brim_lines(std::move(all_loops), offset(islands_area_ex, float(SCALED_EPSILON)), float(flow.scaled_spacing()) * 2.f);
|
||||||
|
|
||||||
#ifdef BRIM_DEBUG_TO_SVG
|
#ifdef BRIM_DEBUG_TO_SVG
|
||||||
{
|
{
|
||||||
@ -508,7 +515,7 @@ ExtrusionEntityCollection make_brim(const Print &print, PrintTryCancel try_cance
|
|||||||
for (; i < j; ++ i) {
|
for (; i < j; ++ i) {
|
||||||
this_loop_trimmed.entities.emplace_back(new ExtrusionPath(erSkirt, float(flow.mm3_per_mm()), float(flow.width()), float(print.skirt_first_layer_height())));
|
this_loop_trimmed.entities.emplace_back(new ExtrusionPath(erSkirt, float(flow.mm3_per_mm()), float(flow.width()), float(print.skirt_first_layer_height())));
|
||||||
const ClipperLib_Z::Path &path = *loops_trimmed_order[i].first;
|
const ClipperLib_Z::Path &path = *loops_trimmed_order[i].first;
|
||||||
Points &points = static_cast<ExtrusionPath*>(this_loop_trimmed.entities.back())->polyline.points;
|
Points &points = dynamic_cast<ExtrusionPath*>(this_loop_trimmed.entities.back())->polyline.points;
|
||||||
points.reserve(path.size());
|
points.reserve(path.size());
|
||||||
for (const ClipperLib_Z::IntPoint &pt : path)
|
for (const ClipperLib_Z::IntPoint &pt : path)
|
||||||
points.emplace_back(coord_t(pt.x()), coord_t(pt.y()));
|
points.emplace_back(coord_t(pt.x()), coord_t(pt.y()));
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
#include "Model.hpp"
|
#include "Model.hpp"
|
||||||
#include "Print.hpp"
|
#include "Print.hpp"
|
||||||
|
|
||||||
|
#include <cfloat>
|
||||||
|
|
||||||
namespace Slic3r {
|
namespace Slic3r {
|
||||||
|
|
||||||
// Add or remove support modifier ModelVolumes from model_object_dst to match the ModelVolumes of model_object_new
|
// Add or remove support modifier ModelVolumes from model_object_dst to match the ModelVolumes of model_object_new
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
#include "SlicingAdaptive.hpp"
|
#include "SlicingAdaptive.hpp"
|
||||||
|
|
||||||
#include <boost/log/trivial.hpp>
|
#include <boost/log/trivial.hpp>
|
||||||
|
#include <cfloat>
|
||||||
|
|
||||||
// Based on the work of Florens Waserfall (@platch on github)
|
// Based on the work of Florens Waserfall (@platch on github)
|
||||||
// and his paper
|
// and his paper
|
||||||
|
Loading…
Reference in New Issue
Block a user