libslic3r
Library for generating gcode from 3d models
Public Member Functions | Public Attributes | Friends | List of all members
Slic3r::PrintObject Class Reference

#include <Print.hpp>

Public Member Functions

Printprint ()
 
ModelObjectmodel_object ()
 
const ModelObjectmodel_object () const
 
Points copies () const
 
bool add_copy (const Pointf &point)
 
bool delete_last_copy ()
 
bool delete_all_copies ()
 
bool set_copies (const Points &points)
 
bool reload_model_instances ()
 
BoundingBox bounding_box () const
 
std::set< size_t > extruders () const
 
std::set< size_t > support_material_extruders () const
 
void add_region_volume (int region_id, int volume_id)
 
size_t total_layer_count () const
 
size_t layer_count () const
 
void clear_layers ()
 
Layerget_layer (int idx)
 
const Layerget_layer (int idx) const
 
Layeradd_layer (int id, coordf_t height, coordf_t print_z, coordf_t slice_z)
 
void delete_layer (int idx)
 
SupportMaterial_support_material ()
 
Flow _support_material_flow (FlowRole role=frSupportMaterial)
 
size_t support_layer_count () const
 
void clear_support_layers ()
 
SupportLayerget_support_layer (int idx)
 
const SupportLayerget_support_layer (int idx) const
 
SupportLayeradd_support_layer (int id, coordf_t height, coordf_t print_z)
 
void delete_support_layer (int idx)
 
bool invalidate_state_by_config (const PrintConfigBase &config)
 
bool invalidate_step (PrintObjectStep step)
 
bool invalidate_all_steps ()
 
bool has_support_material () const
 
void detect_surfaces_type ()
 
void process_external_surfaces ()
 
void bridge_over_infill ()
 
coordf_t adjust_layer_height (coordf_t layer_height) const
 
std::vector< coordf_tgenerate_object_layers (coordf_t first_layer_height)
 
void _slice ()
 
std::vector< ExPolygons_slice_region (size_t region_id, std::vector< float > z, bool modifier)
 
void _make_perimeters ()
 
void _infill ()
 
void generate_support_material ()
 Initialize and generate support material. More...
 
void make_perimeters ()
 Generate perimeters for this PrintObject. More...
 
void combine_infill ()
 
void prepare_infill ()
 Preparation step for generating infill. More...
 
void infill ()
 Generate infill for this PrintObject. More...
 
void slice ()
 Kick off the slice process for this object. More...
 
void discover_horizontal_shells ()
 Find all horizontal shells in this object. More...
 
void clip_fill_surfaces ()
 

Public Attributes

std::map< size_t, std::vector< int > > region_volumes
 
PrintObjectConfig config
 
t_layer_height_ranges layer_height_ranges
 
LayerHeightSpline layer_height_spline
 
bool typed_slices
 
Point3 size
 
Point _copies_shift
 
Points _shifted_copies
 
LayerPtrs layers
 
SupportLayerPtrs support_layers
 
PrintState< PrintObjectStepstate
 

Friends

class Print
 

Member Function Documentation

◆ _infill()

void Slic3r::PrintObject::_infill ( )

◆ _make_perimeters()

void Slic3r::PrintObject::_make_perimeters ( )

◆ _slice()

void Slic3r::PrintObject::_slice ( )

◆ _slice_region()

std::vector< ExPolygons > Slic3r::PrintObject::_slice_region ( size_t  region_id,
std::vector< float >  z,
bool  modifier 
)

◆ _support_material()

SupportMaterial * Slic3r::PrintObject::_support_material ( )

◆ _support_material_flow()

Flow Slic3r::PrintObject::_support_material_flow ( FlowRole  role = frSupportMaterial)

◆ add_copy()

bool Slic3r::PrintObject::add_copy ( const Pointf point)

◆ add_layer()

Layer * Slic3r::PrintObject::add_layer ( int  id,
coordf_t  height,
coordf_t  print_z,
coordf_t  slice_z 
)

◆ add_region_volume()

void Slic3r::PrintObject::add_region_volume ( int  region_id,
int  volume_id 
)

◆ add_support_layer()

SupportLayer * Slic3r::PrintObject::add_support_layer ( int  id,
coordf_t  height,
coordf_t  print_z 
)

◆ adjust_layer_height()

coordf_t Slic3r::PrintObject::adjust_layer_height ( coordf_t  layer_height) const

◆ bounding_box()

BoundingBox Slic3r::PrintObject::bounding_box ( ) const

◆ bridge_over_infill()

void Slic3r::PrintObject::bridge_over_infill ( )

◆ clear_layers()

void Slic3r::PrintObject::clear_layers ( )

◆ clear_support_layers()

void Slic3r::PrintObject::clear_support_layers ( )

◆ clip_fill_surfaces()

void Slic3r::PrintObject::clip_fill_surfaces ( )

Only active if config->infill_only_where_needed. This step trims the sparse infill, so it acts as an internal support. It maintains all other infill types intact. Here the internal surfaces and perimeters have to be supported by the sparse infill. FIXME The surfaces are supported by a sparse infill, but the sparse infill is only as large as the area to support. Likely the sparse infill will not be anchored correctly, so it will not work as intended. Also one wishes the perimeters to be supported by a full infill. Idempotence of this method is guaranteed by the fact that we don't remove things from fill_surfaces but we only turn them into VOID surfaces, thus preserving the boundaries.

◆ combine_infill()

void Slic3r::PrintObject::combine_infill ( )

Combine fill surfaces across layers. Idempotence of this method is guaranteed by the fact that we don't remove things from fill_surfaces but we only turn them into VOID surfaces, thus preserving the boundaries.

◆ copies()

Points Slic3r::PrintObject::copies ( ) const

◆ delete_all_copies()

bool Slic3r::PrintObject::delete_all_copies ( )

◆ delete_last_copy()

bool Slic3r::PrintObject::delete_last_copy ( )

◆ delete_layer()

void Slic3r::PrintObject::delete_layer ( int  idx)

◆ delete_support_layer()

void Slic3r::PrintObject::delete_support_layer ( int  idx)

◆ detect_surfaces_type()

void Slic3r::PrintObject::detect_surfaces_type ( )

◆ discover_horizontal_shells()

void Slic3r::PrintObject::discover_horizontal_shells ( )

Find all horizontal shells in this object.

◆ extruders()

std::set< size_t > Slic3r::PrintObject::extruders ( ) const

◆ generate_object_layers()

std::vector< coordf_t > Slic3r::PrintObject::generate_object_layers ( coordf_t  first_layer_height)

◆ generate_support_material()

void Slic3r::PrintObject::generate_support_material ( )

Initialize and generate support material.

◆ get_layer() [1/2]

Layer* Slic3r::PrintObject::get_layer ( int  idx)
inline

◆ get_layer() [2/2]

const Layer* Slic3r::PrintObject::get_layer ( int  idx) const
inline

◆ get_support_layer() [1/2]

SupportLayer* Slic3r::PrintObject::get_support_layer ( int  idx)
inline

◆ get_support_layer() [2/2]

const SupportLayer* Slic3r::PrintObject::get_support_layer ( int  idx) const
inline

◆ has_support_material()

bool Slic3r::PrintObject::has_support_material ( ) const

◆ infill()

void Slic3r::PrintObject::infill ( )

Generate infill for this PrintObject.

◆ invalidate_all_steps()

bool Slic3r::PrintObject::invalidate_all_steps ( )

◆ invalidate_state_by_config()

bool Slic3r::PrintObject::invalidate_state_by_config ( const PrintConfigBase config)

◆ invalidate_step()

bool Slic3r::PrintObject::invalidate_step ( PrintObjectStep  step)

◆ layer_count()

size_t Slic3r::PrintObject::layer_count ( ) const

◆ make_perimeters()

void Slic3r::PrintObject::make_perimeters ( )

Generate perimeters for this PrintObject.

◆ model_object() [1/2]

ModelObject* Slic3r::PrintObject::model_object ( )
inline

◆ model_object() [2/2]

const ModelObject& Slic3r::PrintObject::model_object ( ) const
inline

◆ prepare_infill()

void Slic3r::PrintObject::prepare_infill ( )

Preparation step for generating infill.

◆ print()

Print * Slic3r::PrintObject::print ( )

◆ process_external_surfaces()

void Slic3r::PrintObject::process_external_surfaces ( )

◆ reload_model_instances()

bool Slic3r::PrintObject::reload_model_instances ( )

◆ set_copies()

bool Slic3r::PrintObject::set_copies ( const Points points)

◆ slice()

void Slic3r::PrintObject::slice ( )

Kick off the slice process for this object.

◆ support_layer_count()

size_t Slic3r::PrintObject::support_layer_count ( ) const

◆ support_material_extruders()

std::set< size_t > Slic3r::PrintObject::support_material_extruders ( ) const

◆ total_layer_count()

size_t Slic3r::PrintObject::total_layer_count ( ) const

Friends And Related Function Documentation

◆ Print

friend class Print
friend

Member Data Documentation

◆ _copies_shift

Point Slic3r::PrintObject::_copies_shift

◆ _shifted_copies

Points Slic3r::PrintObject::_shifted_copies

◆ config

PrintObjectConfig Slic3r::PrintObject::config

◆ layer_height_ranges

t_layer_height_ranges Slic3r::PrintObject::layer_height_ranges

◆ layer_height_spline

LayerHeightSpline Slic3r::PrintObject::layer_height_spline

◆ layers

LayerPtrs Slic3r::PrintObject::layers

◆ region_volumes

std::map< size_t,std::vector<int> > Slic3r::PrintObject::region_volumes

map of (vectors of volume ids), indexed by region_id (we use map instead of vector so that we don't have to worry about resizing it and the [] operator adds new items automagically)

◆ size

Point3 Slic3r::PrintObject::size

◆ state

PrintState<PrintObjectStep> Slic3r::PrintObject::state

◆ support_layers

SupportLayerPtrs Slic3r::PrintObject::support_layers

◆ typed_slices

bool Slic3r::PrintObject::typed_slices

this is set to true when LayerRegion->slices is split in top/internal/bottom so that next call to make_perimeters() performs a union() before computing loops


The documentation for this class was generated from the following files: