#include "PrintBase.hpp"#include <utility>#include <string>#include <mutex>#include <vector>#include "libslic3r.h"#include "calib.hpp"#include <cassert>#include "CustomGCode.hpp"#include "ObjectID.hpp"#include <cstddef>#include "Point.hpp"#include "Polygon.hpp"#include "Geometry.hpp"#include <map>#include <cmath>#include <Eigen/Geometry>#include <set>#include "Slicing.hpp"#include <cstdlib>#include "TriangleSelector.hpp"#include "GCode/AdaptivePAProcessor.hpp"#include <exception>#include <ostream>#include "ExPolygon.hpp"#include "Layer.hpp"#include "FilamentGroup.hpp"#include <memory>#include "FilamentGroupUtils.hpp"#include "MultiNozzleUtils.hpp"#include <chrono>#include <optional>#include "GCode/GCodeProcessor.hpp"#include "GCode/ThumbnailData.hpp"#include "ExtrusionEntity.hpp"#include <math.h>#include "CommonDefs.hpp"#include <ios>#include <iomanip>#include <tuple>#include "Surface.hpp"#include "Circle.hpp"#include "Polyline.hpp"#include "ArcFitter.hpp"#include <cstdio>#include <boost/filesystem/operations.hpp>#include <boost/thread/lock_types.hpp>#include <iterator>#include "TriangleMesh.hpp"#include "Config.hpp"#include "Exception.hpp"#include "IMEXHelpers.hpp"#include "IMEXZones.hpp"#include "Print.hpp"#include "BoundingBox.hpp"#include "Brim.hpp"#include "ClipperUtils.hpp"#include "ExclusionVolumeGeometry.hpp"#include "Extruder.hpp"#include "FilamentMixer.hpp"#include "Flow.hpp"#include "Geometry/ConvexHull.hpp"#include "I18N.hpp"#include "LifecycleEvents.hpp"#include "ShortestPath.hpp"#include "Thread.hpp"#include "Time.hpp"#include "GCode.hpp"#include "BeltGCode.hpp"#include "BeltTransform.hpp"#include "GCode/WipeTower.hpp"#include "GCode/WipeTower2.hpp"#include "GCode/WipeTowerEstimate.hpp"#include "Utils.hpp"#include "PrintConfig.hpp"#include "MaterialType.hpp"#include "Model.hpp"#include "format.hpp"#include "LocalesUtils.hpp"#include <float.h>#include <algorithm>#include <limits>#include <numeric>#include <unordered_map>#include <unordered_set>#include <sstream>#include <boost/filesystem/path.hpp>#include <boost/format.hpp>#include <boost/log/trivial.hpp>#include <boost/regex.hpp>#include <boost/nowide/fstream.hpp>#include <tbb/blocked_range.h>#include <tbb/parallel_for.h>#include "nlohmann/json.hpp"#include "GCode/ConflictChecker.hpp"#include <codecvt>#include "Format/STEP.hpp"#include "PlaceholderParser.hpp"#include "SurfaceCollection.hpp"#include "BeltBrim.hpp"Go to the source code of this file.
Classes | |
| struct | Slic3r::BedExclusionCollision |
| struct | Slic3r::FilamentType |
Namespaces | |
| namespace | Slic3r |
| |/ Copyright (c) Prusa Research 2020 - 2023 Enrico Turri @enricoturri1966 |/ |/ PrusaSlicer is released under the terms of the AGPLv3 or higher |/ | |
Macros | |
| #define | L(s) |
| #define | JSON_POLYGON_CONTOUR "contour" |
| #define | JSON_POLYGON_HOLES "holes" |
| #define | JSON_POINTS "points" |
| #define | JSON_EXPOLYGON "expolygon" |
| #define | JSON_ARC_FITTING "arc_fitting" |
| #define | JSON_OBJECT_NAME "name" |
| #define | JSON_IDENTIFY_ID "identify_id" |
| #define | JSON_LAYERS "layers" |
| #define | JSON_SUPPORT_LAYERS "support_layers" |
| #define | JSON_TREE_SUPPORT_LAYERS "tree_support_layers" |
| #define | JSON_LAYER_REGIONS "layer_regions" |
| #define | JSON_FIRSTLAYER_GROUPS "first_layer_groups" |
| #define | JSON_FIRSTLAYER_GROUP_ID "group_id" |
| #define | JSON_FIRSTLAYER_GROUP_VOLUME_IDS "volume_ids" |
| #define | JSON_FIRSTLAYER_GROUP_SLICES "slices" |
| #define | JSON_LAYER_PRINT_Z "print_z" |
| #define | JSON_LAYER_SLICE_Z "slice_z" |
| #define | JSON_LAYER_HEIGHT "height" |
| #define | JSON_LAYER_ID "layer_id" |
| #define | JSON_LAYER_SLICED_POLYGONS "sliced_polygons" |
| #define | JSON_LAYER_SLLICED_BBOXES "sliced_bboxes" |
| #define | JSON_LAYER_OVERHANG_POLYGONS "overhang_polygons" |
| #define | JSON_LAYER_OVERHANG_BBOX "overhang_bbox" |
| #define | JSON_SUPPORT_LAYER_ISLANDS "support_islands" |
| #define | JSON_SUPPORT_LAYER_FILLS "support_fills" |
| #define | JSON_SUPPORT_LAYER_INTERFACE_ID "interface_id" |
| #define | JSON_SUPPORT_LAYER_TYPE "support_type" |
| #define | JSON_LAYER_REGION_CONFIG_HASH "config_hash" |
| #define | JSON_LAYER_REGION_SLICES "slices" |
| #define | JSON_LAYER_REGION_RAW_SLICES "raw_slices" |
| #define | JSON_LAYER_REGION_THIN_FILLS "thin_fills" |
| #define | JSON_LAYER_REGION_FILL_EXPOLYGONS "fill_expolygons" |
| #define | JSON_LAYER_REGION_FILL_SURFACES "fill_surfaces" |
| #define | JSON_LAYER_REGION_FILL_NO_OVERLAP "fill_no_overlap_expolygons" |
| #define | JSON_LAYER_REGION_UNSUPPORTED_BRIDGE_EDGES "unsupported_bridge_edges" |
| #define | JSON_LAYER_REGION_PERIMETERS "perimeters" |
| #define | JSON_LAYER_REGION_FILLS "fills" |
| #define | JSON_SURF_TYPE "surface_type" |
| #define | JSON_SURF_THICKNESS "thickness" |
| #define | JSON_SURF_THICKNESS_LAYER "thickness_layers" |
| #define | JSON_SURF_BRIDGE_ANGLE "bridge_angle" |
| #define | JSON_SURF_EXTRA_PERIMETERS "extra_perimeters" |
| #define | JSON_ARC_DATA "arc_data" |
| #define | JSON_ARC_START_INDEX "start_index" |
| #define | JSON_ARC_END_INDEX "end_index" |
| #define | JSON_ARC_PATH_TYPE "path_type" |
| #define | JSON_IS_ARC "is_arc" |
| #define | JSON_ARC_LENGTH "length" |
| #define | JSON_ARC_ANGLE_RADIUS "angle_radians" |
| #define | JSON_ARC_POLAY_START_THETA "polar_start_theta" |
| #define | JSON_ARC_POLAY_END_THETA "polar_end_theta" |
| #define | JSON_ARC_START_POINT "start_point" |
| #define | JSON_ARC_END_POINT "end_point" |
| #define | JSON_ARC_DIRECTION "direction" |
| #define | JSON_ARC_RADIUS "radius" |
| #define | JSON_ARC_CENTER "center" |
| #define | JSON_EXTRUSION_ENTITY_TYPE "entity_type" |
| #define | JSON_EXTRUSION_NO_SORT "no_sort" |
| #define | JSON_EXTRUSION_PATHS "paths" |
| #define | JSON_EXTRUSION_ENTITIES "entities" |
| #define | JSON_EXTRUSION_TYPE_PATH "path" |
| #define | JSON_EXTRUSION_TYPE_MULTIPATH "multipath" |
| #define | JSON_EXTRUSION_TYPE_LOOP "loop" |
| #define | JSON_EXTRUSION_TYPE_COLLECTION "collection" |
| #define | JSON_EXTRUSION_POLYLINE "polyline" |
| #define | JSON_EXTRUSION_MM3_PER_MM "mm3_per_mm" |
| #define | JSON_EXTRUSION_WIDTH "width" |
| #define | JSON_EXTRUSION_HEIGHT "height" |
| #define | JSON_EXTRUSION_ROLE "role" |
| #define | JSON_EXTRUSION_NO_EXTRUSION "no_extrusion" |
| #define | JSON_EXTRUSION_LOOP_ROLE "loop_role" |
| struct Slic3r::FilamentType |
| #define JSON_ARC_ANGLE_RADIUS "angle_radians" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_ARC_CENTER "center" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_ARC_DATA "arc_data" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_ARC_DIRECTION "direction" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_ARC_END_INDEX "end_index" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_ARC_END_POINT "end_point" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_ARC_FITTING "arc_fitting" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_ARC_LENGTH "length" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_ARC_PATH_TYPE "path_type" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_ARC_POLAY_END_THETA "polar_end_theta" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_ARC_POLAY_START_THETA "polar_start_theta" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_ARC_RADIUS "radius" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_ARC_START_INDEX "start_index" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_ARC_START_POINT "start_point" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_EXPOLYGON "expolygon" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_EXTRUSION_ENTITIES "entities" |
| #define JSON_EXTRUSION_ENTITY_TYPE "entity_type" |
Referenced by Slic3r::convert_extrusion_from_json(), Slic3r::convert_extrusion_to_json(), and Slic3r::to_json().
| #define JSON_EXTRUSION_HEIGHT "height" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_EXTRUSION_LOOP_ROLE "loop_role" |
Referenced by Slic3r::convert_extrusion_from_json(), and Slic3r::convert_extrusion_to_json().
| #define JSON_EXTRUSION_MM3_PER_MM "mm3_per_mm" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_EXTRUSION_NO_EXTRUSION "no_extrusion" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_EXTRUSION_NO_SORT "no_sort" |
| #define JSON_EXTRUSION_PATHS "paths" |
Referenced by Slic3r::convert_extrusion_from_json(), and Slic3r::convert_extrusion_to_json().
| #define JSON_EXTRUSION_POLYLINE "polyline" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_EXTRUSION_ROLE "role" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_EXTRUSION_TYPE_COLLECTION "collection" |
Referenced by Slic3r::convert_extrusion_from_json(), Slic3r::convert_extrusion_to_json(), and Slic3r::to_json().
| #define JSON_EXTRUSION_TYPE_LOOP "loop" |
Referenced by Slic3r::convert_extrusion_from_json(), and Slic3r::convert_extrusion_to_json().
| #define JSON_EXTRUSION_TYPE_MULTIPATH "multipath" |
Referenced by Slic3r::convert_extrusion_from_json(), and Slic3r::convert_extrusion_to_json().
| #define JSON_EXTRUSION_TYPE_PATH "path" |
Referenced by Slic3r::convert_extrusion_from_json(), and Slic3r::convert_extrusion_to_json().
| #define JSON_EXTRUSION_WIDTH "width" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_FIRSTLAYER_GROUP_ID "group_id" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_FIRSTLAYER_GROUP_SLICES "slices" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_FIRSTLAYER_GROUP_VOLUME_IDS "volume_ids" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_FIRSTLAYER_GROUPS "first_layer_groups" |
Referenced by Slic3r::Print::export_cached_data().
| #define JSON_IDENTIFY_ID "identify_id" |
Referenced by Slic3r::Print::export_cached_data().
| #define JSON_IS_ARC "is_arc" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_LAYER_HEIGHT "height" |
Referenced by Slic3r::Print::export_cached_data().
| #define JSON_LAYER_ID "layer_id" |
Referenced by Slic3r::Print::export_cached_data().
| #define JSON_LAYER_OVERHANG_BBOX "overhang_bbox" |
Referenced by Slic3r::Print::export_cached_data(), and Slic3r::extract_layer().
| #define JSON_LAYER_OVERHANG_POLYGONS "overhang_polygons" |
Referenced by Slic3r::Print::export_cached_data(), and Slic3r::extract_layer().
| #define JSON_LAYER_PRINT_Z "print_z" |
Referenced by Slic3r::Print::export_cached_data().
| #define JSON_LAYER_REGION_CONFIG_HASH "config_hash" |
Referenced by Slic3r::to_json().
| #define JSON_LAYER_REGION_FILL_EXPOLYGONS "fill_expolygons" |
Referenced by Slic3r::convert_layer_region_from_json(), and Slic3r::to_json().
| #define JSON_LAYER_REGION_FILL_NO_OVERLAP "fill_no_overlap_expolygons" |
Referenced by Slic3r::convert_layer_region_from_json(), and Slic3r::to_json().
| #define JSON_LAYER_REGION_FILL_SURFACES "fill_surfaces" |
Referenced by Slic3r::convert_layer_region_from_json(), and Slic3r::to_json().
| #define JSON_LAYER_REGION_FILLS "fills" |
Referenced by Slic3r::convert_layer_region_from_json(), and Slic3r::to_json().
| #define JSON_LAYER_REGION_PERIMETERS "perimeters" |
Referenced by Slic3r::convert_layer_region_from_json(), and Slic3r::to_json().
| #define JSON_LAYER_REGION_RAW_SLICES "raw_slices" |
Referenced by Slic3r::convert_layer_region_from_json(), and Slic3r::to_json().
| #define JSON_LAYER_REGION_SLICES "slices" |
Referenced by Slic3r::convert_layer_region_from_json(), and Slic3r::to_json().
| #define JSON_LAYER_REGION_THIN_FILLS "thin_fills" |
Referenced by Slic3r::convert_layer_region_from_json(), and Slic3r::to_json().
| #define JSON_LAYER_REGION_UNSUPPORTED_BRIDGE_EDGES "unsupported_bridge_edges" |
Referenced by Slic3r::convert_layer_region_from_json(), and Slic3r::to_json().
| #define JSON_LAYER_REGIONS "layer_regions" |
Referenced by Slic3r::Print::export_cached_data(), and Slic3r::extract_layer().
| #define JSON_LAYER_SLICE_Z "slice_z" |
Referenced by Slic3r::Print::export_cached_data().
| #define JSON_LAYER_SLICED_POLYGONS "sliced_polygons" |
Referenced by Slic3r::Print::export_cached_data(), and Slic3r::extract_layer().
| #define JSON_LAYER_SLLICED_BBOXES "sliced_bboxes" |
Referenced by Slic3r::Print::export_cached_data(), and Slic3r::extract_layer().
| #define JSON_LAYERS "layers" |
Referenced by Slic3r::Print::export_cached_data().
| #define JSON_OBJECT_NAME "name" |
Referenced by Slic3r::Print::export_cached_data().
| #define JSON_POINTS "points" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_POLYGON_CONTOUR "contour" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_POLYGON_HOLES "holes" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_SUPPORT_LAYER_FILLS "support_fills" |
Referenced by Slic3r::extract_support_layer().
| #define JSON_SUPPORT_LAYER_INTERFACE_ID "interface_id" |
| #define JSON_SUPPORT_LAYER_ISLANDS "support_islands" |
Referenced by Slic3r::extract_support_layer().
| #define JSON_SUPPORT_LAYER_TYPE "support_type" |
Referenced by Slic3r::extract_support_layer().
| #define JSON_SUPPORT_LAYERS "support_layers" |
Referenced by Slic3r::Print::export_cached_data().
| #define JSON_SURF_BRIDGE_ANGLE "bridge_angle" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_SURF_EXTRA_PERIMETERS "extra_perimeters" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_SURF_THICKNESS "thickness" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_SURF_THICKNESS_LAYER "thickness_layers" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_SURF_TYPE "surface_type" |
Referenced by Slic3r::from_json(), and Slic3r::to_json().
| #define JSON_TREE_SUPPORT_LAYERS "tree_support_layers" |
| #define L | ( | s | ) |
Referenced by Slic3r::Print::_make_wipe_tower(), Slic3r::Print::export_gcode(), and Slic3r::Print::export_gcode_from_previous_file().