pub struct Optimizer { /* private fields */ }Expand description
Optimizer for optimizing rectangular cut pieces from rectangular stock pieces.
Implementations§
Source§impl Optimizer
impl Optimizer
Sourcepub fn add_stock_piece(&mut self, stock_piece: StockPiece) -> &mut Self
pub fn add_stock_piece(&mut self, stock_piece: StockPiece) -> &mut Self
Add a stock piece that the optimizer can use to optimize cut pieces.
If the same stock piece is added multiple times, the quantities will be
summed up. If any have a None quantity, the quantity on other equivalent
pieces will be ignored.
Sourcepub fn add_stock_pieces<I>(&mut self, stock_pieces: I) -> &mut Selfwhere
I: IntoIterator<Item = StockPiece>,
pub fn add_stock_pieces<I>(&mut self, stock_pieces: I) -> &mut Selfwhere
I: IntoIterator<Item = StockPiece>,
Add a stock pieces that the optimizer can use to optimize cut pieces.
If the same stock piece is added multiple times, the quantities will be
summed up. If any have a None quantity, the quantity on other equivalent
pieces will be ignored.
Sourcepub fn add_cut_piece(&mut self, cut_piece: CutPiece) -> &mut Self
pub fn add_cut_piece(&mut self, cut_piece: CutPiece) -> &mut Self
Add a desired cut piece that you need cut from a stock piece.
Sourcepub fn add_cut_pieces<I>(&mut self, cut_pieces: I) -> &mut Selfwhere
I: IntoIterator<Item = CutPiece>,
pub fn add_cut_pieces<I>(&mut self, cut_pieces: I) -> &mut Selfwhere
I: IntoIterator<Item = CutPiece>,
Add desired cut pieces that you need cut from a stock piece.
Sourcepub fn set_cut_width(&mut self, cut_width: usize) -> &mut Self
pub fn set_cut_width(&mut self, cut_width: usize) -> &mut Self
Set the width of the cut to use between cut pieces. This could represent blade or kerf thickness.
Sourcepub fn set_random_seed(&mut self, seed: u64) -> &mut Self
pub fn set_random_seed(&mut self, seed: u64) -> &mut Self
Set the random seed used by the genetic algorithms in the optimizer. Using the same random seed will give you the same result for the same input.
Sourcepub fn allow_mixed_stock_sizes(&mut self, allow: bool) -> &mut Self
pub fn allow_mixed_stock_sizes(&mut self, allow: bool) -> &mut Self
Set whether the optimizer should allow mixed sized stock pieces in the results. If set to false, and multiple stock sizes are given, only one stock size will be used in the results.
Sourcepub fn optimize_guillotine<F>(
&self,
progress_callback: F,
) -> Result<Solution, Error>
pub fn optimize_guillotine<F>( &self, progress_callback: F, ) -> Result<Solution, Error>
Optimize in a way where each cut piece can be cut out using only guillotine cuts, where each cut extends from one side to the other.
This method is suitable for cutting with a panel saw.