• Home
• /Optimumcut Optilib.dll 1D Stock Cutting Algorithms

# Optimumcut Optilib.dll 1D Stock Cutting Algorithms

### An Introduction to the 1D Cutting Stock Problem (CSP)

The Cutting Stock Problem (CSP) has been deeply investigated by computer science and mathematics because it has a wide field of applications in the real world, most commonly used in industrial processes such as the Architectural Aluminium, Glass, Glazing and Manufacturing Industries.

This Cutting Stock Problem (CSP) tries to find the optimal plan to assign constrained resources to satisfy a demand in the most efficient way (optimal) having a measure of that efficiency (objective function). It is a classic optimization problem, and its complete analytical solution is not trivial, it is also based on complex mathematical developments.

As previously mentioned the Cutting Stock Problem (CSP) has known analytical solutions (integer linear programming), nevertheless the analytical solution cannot always be reached to solve real problems in real time, due to the complexity of calculations involved growing exponentially with the quantity of variables (data) in the problem. Usually this known analytical solution is only applied to cases that involve small quantities of variables (small cutting requirements)

A broad bibliography on the Cutting Stock Problem (CSP) can easily be found, therefore practical solvers like Optimumcut Optilib.dll use a wide variety of strategies to reach acceptable solutions for this problem.

Optimumcut have developed over the last 12 years our own commercial Cutting Stock Problem  (CSP)  one dimensional, 1D cutting, linear optimization algorithms entitled Optimumcut Optilib.dll which resolve the Cutting Stock Problem (CSP) in a fast and accurate way. Our solutions calculate and display exactly how to obtain the best yield from stock lengths and re-useable off-cuts of profiles.

Subsequently with such a powerful and reliable 1d linear optimization algorithm  Optimumcut Optilib.dll is compiled into all of our products ensuring maximum yield with minimum waste.

By choosing Optimumcut products users are always able to Obtain the Maximum from a Minimum®

### What is Optimumcut Optilib.dll ?

Optimumcut Optilib.dll is a programmers dynamic link library (.dll) 1D stock cutting list generator and linear material optimization (nesting) tool which calculates and displays exactly how to obtain the best yield from stock lengths and re-useable off-cuts of profiles.

Optimumcut Optilib.dll allows a programmer to call the dynamic link library from their own specialist software solution to solve the Cutting Stock Problem (CSP), by length nesting of materials, so you can decide how to buy or how to use stocks, obtaining an optimized cutting list in a matter of seconds.

### Optimumcut Optilib.dll software requirements

Optimumcut Optilib.dll 1D Stock Cutting Optimizer Library is a fully managed .NET component. An ActiveX COM interface is provided via Microsoft’s interop services. This allows any development environment supporting COM, such as C Sharp, C#, Visual Basic v6, Visual Studio, Visual Basic .Net, VB .Net, Visual C++, C++ BuilderDelphi and Excel to fully utilize Optimumcut Optilib.dll.

LicenseTrial is restricted to allow optimization of 50 Cuts per material.
Licenced version allows optimization of any size input data**
File Size1.1MB
Programmers EnvironmentC Sharp, C#, Visual Basic v6, Visual Studio, Visual Basic .Net, VB .Net, Visual C++, C++ Builder, Delphi and Excel
System RequirementsWindows XP, Windows Vista, Windows 7, Windows 8
+ Mac (running VMware Fusion™ Virtual Machine)
8GB RAM Recommended - 2GB RAM Minimum32 Bit / 64 Bit, .Net v4
Supported LangaugesEnglish

### Optimumcut Optilib.dll Product Features

• Optimumcut Optilib.dll optimization Library is a fully managed .NET component.
• An ActiveX COM interface is provided via Microsoft’s interop services.
• Allows any development environment supporting COM, such as C Sharp, C#Visual Basic v6Visual StudioVisual Basic .NetVB .NetVisual C++C++ Builder and Delphi to fully utilize Optimumcut Optilib.dll.
• Optimumcut Optilib.dll is a real dynamic link library material optimization tool.
• Designed to solve the one dimensional 1D Cutting Stock Problem (CSP) in a fast & accurate way.
• Unlimited different parts to cut**
• Unlimited different cut from (supply) lengths**
• Optimization algorithm allows optimization of Any Size Input Data**
• Interactive response for highly demanding loads. (ie large cutting lists with many thousands of parts and pieces to cut) Optimumcut Optilib.dll compares the pc’s memory resources with data processing needs, then suggests actions to obtain a real time solution.
• Can calculate optimization based upon materials cost
• Compensation for the saw cut, kerf or shear thickness
• Compensation for bar end trimming to allow for any damage in supply lengths
• Identification of each supply length
• Identification of each piece cut
• Identification of each pieces, Perpendicular or Mitred Angle End Cuts
• Optimumcut-Optilib.dll Programmers Help files
• Test program includes source code to incorporate calling of Optimumcut Optilib.dll into your own specialist software solution.
• It is a 1D Stock Cutting Solver ideal for embedding in Microsoft Excel Spreadsheets

** Subject to practical limit defined by capacity of operating system

### Optimumcut Optilib.dll Trial Contents

• Optimumcut-Optilib.dll Trial is shipped as a zip file entitled Optilib Setup Trial.zip
• When unzipped the executable installer is entitled Optilib Setup Trial.exe.
• The installer deploys files to Program Files Directory Optimumcut Optimizer Library
• Optilib.chm Compiled Help File
• Optilib.dll Optimumcut dynamic link library Trial
• Optilib.tlb
• The Samples folder Csharp includes a C# Test executable entitled Test-Csharp.exe including source code.
• The Samples folder VB6 includes a Visual Basic executable entitled DllTest.exe including source code.
• The samples folder Excel includes a Microsoft Excel Solver spreadsheet example which enables calling of the Optimumcut Optilib.dll 1D Stock Cutting optimizer library from within Excel.

### Optimumcut Optilib.dll Trial Restrictions

• Each time you call Optimumcut Optilib.dll trial you will be running in trial mode.
• Your trial is restricted to 50 Cuts per material
• If you load more than 50 cuts Optimumcut Optilib.dll will not display the cuts and will strip these cuts because you are running in Unlimited Time Limit RESTRICTED TRIAL MODE.

### Optimumcut Optilib.dll Optimizer Library

Public ClassesDescription
OptimumcutExceptionCustom Optimumcut error codes are raised as an instance of this class. It is inherited from the base .NET Exception class and can be caught in a standard try {} catch {} block.
LayoutBaseProvides a collection of layouts calculated during optimisation. Inherited from the .NET CollectionBase class.
LayoutItemProvides a single layout calculated during optimisation.
StockBaseProvides a collection of stock items held within OptimumcutLibrary. This class in currently only required for internal use. Inherited from the .NET CollectionBase class.
StockItemProvides details about a stock item entered. After optimisation, provides details about the stock associated with a layout.
CutBaseProvides a collection of cuts entered. Also provides a collection of cuts assigned to a layout. Inherited from the .NET CollectionBase class.
CutItemProvides details about a single cut item entered.

Optimumcut LibraryDescription
OptimisationMethod
MaximiseOrder = 0
MaximiseYield = 1
MaximiseYield2 = 2
MaximiseCost2 = 3
An enumeration providing the different optimisation methods. Either optimise to maximize the cutting order so that cuts of the same length are grouped together, or optimize to maximise the yield.
New version ‘2’ methods use the latest algorithms.
double CutAllowanceSets the thickness of the saw cut
double BarEndTrimSets the amount to trim from each end of stock before use.
double RecycleWasteLongerThanThe threshold length after which off cuts will be recycled.
string description
double length
int quantity
double cost
Adds an item of stock to the optimiser. Each item of stock has an identifying description, a length, a quantity and a cost. The cost is defined as real-cost per length.
string description
double length
int quantity
double LeftEndAngle
double RightEndAngle
Adds a cut to the optimiser. Each item has an identifying description, a length, a quantity and left and right end angles.
void Optimise
OptimisationMethod Method
The main optimisation method which perform the optimisation.
ProgressFunction
Int Progress
ref bool Cancel
Event that is raised during optimisation. Provides the progress as a percentage. For performance, this function will only be raised once for every whole number percentage. The Cancel parameter should be set to False to cancel the optimisation.
double GetRequiredStockReturns the total length of stock required.
double GetTotalCutLengthsReturns the total of all cut lengths entered.
double GetYieldReturns the yield of the optimisation. GetTotalCutLengths / GetRequiredStock.
string ResultsToStringReturns the results in a formatted string.
LayoutsReturns a collection of layouts following optimisation.

### Visual Basic 6 Example

‘ Declare Optimumcut Library local variable

Dim optimiser As New OptimumcutLibrary

‘ Declare result objects

Dim Layout As OptiLib.LayoutItem

Dim Stock As OptiLib.StockItem

Dim Cut As OptiLib.CutItem

optimiser.AddStock “Stock A”, 6000, 1000, 100

optimiser.AddStock “Stock B”, 4000, 1000, 75

optimiser.AddCut “Cut 1”, 3500, 25, 90, 90

optimiser.AddCut “Cut 2”, 2500, 50, 45, 90

optimiser.AddCut “Cut 3”, 2000, 60, 90, 90

optimiser.AddCut “Cut 4”, 1750, 80, 90, 135

‘ Do the optimisation

optimiser.Optimise OptimisationMethod_MaximizeYield

‘ Iterate through the layout results

For Each Layout In optimiser.Layouts

‘ Get this stock item

Stock = Layout.Stock

‘ Output the layout header detailing the stock and layout quantity

Me.Print Stock.Description & “, ” & Stock.Length & “, ” & _

Stock.quantity & “, ” & Stock.cost

‘ Iterate through the cuts within this layout

For Each Cut In Layout.Cuts

‘ Output the cut details

Me.Print Cut.Description & “, ” & Cut.Length & “, ” & _

Cut.LeftEndAngle & “, ” & Cut.RightEndAngle

Next Cut

Next Layout

### Understand the Various Optimumcut one dimensional, 1D Cutting Linear Optimization Algorithms

Optimumcut-1D v3 ProfessionalStandard. Server & Optilib.dll have User Options to select alternative 1D Cutting Linear Optimization Algorithms which resolve the one dimensional 1D Cutting Stock Problem (CSP) in a fast and accurate way. Please find listed below the 1D Stock Cutting Optimization Algorithms available and their functional description.

### Optimumcut Optilib v2 Maximise Yield

Optilib v2 Maximise yield. Significant improvements have been made allowing the user to place ‘Nil’ Cost Values into each Different Stock Length and Re-usable Offcuts. Optilib v2 Maximise Yield  will automatically determine the quantities required (Optilib v1 Maximise Yield required the user to specify a cost for each different Stock Length or Re-usable Offcut. The cheapest Length being used first in the optimization working to the most expensive)

### Optimumcut Optilib v1 Maximise Yield

Optilib v1 Maximise yield – orders / prioritizes supply lengths by the cheapest stock value (£/m \$/ft) and ALWAYS uses the cheapest material first.
This is because the “global industry standard” assumes that stock will consist of a few lengths (If Any) of cheaper offcuts from previous projects and lots of more expensive stock of the same length, bought from the supplier. #Please edit your supply length costings accordingly to establish your maximum yield with minimum waste of your specified supply lengths available.

### Optimumcut Optilib v1 Maximise Order

Optilib v1 Maximise order – optimizes and groups together all of the longest cuts consecutively down to the shortest cuts. More waste material will be produced however the project can be cut much quicker.

If you are interested in Optimumcut Optilib.dll  please contact our Sales Department. A member of our team will contact you as soon as possible to discuss your requirements