- Optalog aggiornata a versione 9.0.
This commit is contained in:
DarioS
2023-07-17 10:55:21 +02:00
parent 8c5bd7cfae
commit eb1c01f9a1
7 changed files with 85 additions and 4 deletions
+55 -2
View File
@@ -5,7 +5,7 @@
* agreement of the authors.
*
* Authors: Nicolas Leignel and Renaud Lepere
* Copyright: 2014-2016
* Copyright: 2014-2023
*/
#ifndef CNS_H
@@ -29,6 +29,10 @@ extern "C" {
#ifdef __linux__
#include "cns_linux.h"
#endif
#ifdef __APPLE__
#include "cns_linux.h"
#endif
typedef struct CNS_LaunchingOrder * CNS_LaunchingOrderPtr;
@@ -654,6 +658,33 @@ extern "C" {
CNS_SetNoMixPreference(CNS_LaunchingOrderPtr order,
unsigned max_number_of_active_parts);
/**
* StrictNoMixPreferene
*
* This function is equivalent to CNS_SetNoMixPreference, however it does not have the
* limitation of note 2, that small parts are used to fill holes. This will inforce the
* limitation of @param max_number_of_active_parts number of active parts however this can
* decrease even more nesting performace.
*/
CNS_EXPORT void CNS_API
CNS_SetStrictNoMixPreference(CNS_LaunchingOrderPtr order,
unsigned max_number_of_active_parts);
/**
* SetPartIgnoreStrictNoMixPreference
*
* This function is useful if SetStrictNoMixPreference is on, in this case some parts can be
* flagged as ignore strict no mix preference. This means that they can be nested on all the
* nestings. In this case, the max_number_of_active_parts is not respected for these parts.
*
* This is useful for unloadding systems where for instance small parts are not unloaded by the
* robot where stacking space is limited but are unloaded into small boxes.
*/
CNS_EXPORT void CNS_API
CNS_SetPartIgnoreStrictNoMixPreference(CNS_PartPtr part);
/**
* NoOrientationMixOnPart
* Preference for limiting the orientation of a single part.
@@ -784,6 +815,16 @@ extern "C" {
CNS_EXPORT void CNS_API
CNS_SetStrictPrioritiesOnParts(CNS_LaunchingOrderPtr order, int strict);
/**
* Ignore priority on some parts.
*
* In strict priorities on part mode, some parts can be flagged as ignore to priority. This
* means that they can be nested on all the nestings without considering them having a fixed
* priority.
*/
CNS_EXPORT void CNS_API
CNS_SetPartIgnorePriority(CNS_PartPtr part);
/**
* Control of part priorities position.
*
@@ -1419,7 +1460,19 @@ extern "C" {
CNS_EXPORT void CNS_API
CNS_GetPartTorchInfos(CNS_NestingPtr nesting, unsigned part_index,
int * group_number, unsigned * torch_number, double * torch_distance);
/**
* Renest the holes in order to ensure that the holes with the same parts are nested the same
* way.
*
* In some particular case such as micro-attached parts with automatic unloading system, it may
* be useful that the holes with the same parts are nested exactly the same way in order to
* unload the nested parts on the same stack.
*/
CNS_EXPORT void CNS_API
CNS_SetHoleRenester(CNS_LaunchingOrderPtr launching_order,
int hole_renester_enable);
/* =====================================================================================
*
* Statistics
+3 -1
View File
@@ -1,2 +1,4 @@
"c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\lib.exe" /def:liblcns.def /OUT:liblcnsR32.lib
"c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x86\lib.exe" /def:liblcns.def /OUT:liblcnsR32.lib
rem "c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\lib.exe" /def:liblcns.def /OUT:liblcnsR32.lib
+12
View File
@@ -320,3 +320,15 @@ EXPORTS
CNS_GetNestedPartInternalStatus@16 @449 NONAME
CNS_SetCommonCutAdvancedQualityCheck = CNS_SetCommonCutAdvancedQualityCheck@8 @450 NONAME
CNS_SetCommonCutAdvancedQualityCheck@8 @451 NONAME
CNS_SetNoInterpenetrationOnLastGroup = CNS_SetNoInterpenetrationOnLastGroup@8 @458 NONAME
CNS_SetNoInterpenetrationOnLastGroup@8 @459 NONAME
CNS_SetHoleRenester = CNS_SetHoleRenester@8 @460 NONAME
CNS_SetHoleRenester@8 @461 NONAME
CNS_ForceSquareOffcut = CNS_ForceSquareOffcut@12 @462 NONAME
CNS_ForceSquareOffcut@12 @463 NONAME
CNS_SetStrictNoMixPreference = CNS_SetStrictNoMixPreference@8 @464 NONAME
CNS_SetStrictNoMixPreference@8 @465 NONAME
CNS_SetPartIgnorePriority = CNS_SetPartIgnorePriority@4 @466 NONAME
CNS_SetPartIgnorePriority@4 @467 NONAME
CNS_SetPartIgnoreStrictNoMixPreference = CNS_SetPartIgnoreStrictNoMixPreference@4 @468 NONAME
CNS_SetPartIgnoreStrictNoMixPreference@4 @469 NONAME
Binary file not shown.
+3 -1
View File
@@ -1,2 +1,4 @@
"c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\lib.exe" /def:liblcns.def /OUT:liblcnsR64.lib /machine:x64
"c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\Hostx64\x64\lib.exe" /def:liblcns.def /OUT:liblcnsR64.lib /machine:x64
rem "c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\lib.exe" /def:liblcns.def /OUT:liblcnsR64.lib /machine:x64
+12
View File
@@ -320,3 +320,15 @@ EXPORTS
CNS_GetNestedPartInternalStatus@16 @449 NONAME
CNS_SetCommonCutAdvancedQualityCheck = CNS_SetCommonCutAdvancedQualityCheck@8 @450 NONAME
CNS_SetCommonCutAdvancedQualityCheck@8 @451 NONAME
CNS_SetNoInterpenetrationOnLastGroup = CNS_SetNoInterpenetrationOnLastGroup@8 @458 NONAME
CNS_SetNoInterpenetrationOnLastGroup@8 @459 NONAME
CNS_SetHoleRenester = CNS_SetHoleRenester@8 @460 NONAME
CNS_SetHoleRenester@8 @461 NONAME
CNS_ForceSquareOffcut = CNS_ForceSquareOffcut@12 @462 NONAME
CNS_ForceSquareOffcut@12 @463 NONAME
CNS_SetStrictNoMixPreference = CNS_SetStrictNoMixPreference@8 @464 NONAME
CNS_SetStrictNoMixPreference@8 @465 NONAME
CNS_SetPartIgnorePriority = CNS_SetPartIgnorePriority@4 @466 NONAME
CNS_SetPartIgnorePriority@4 @467 NONAME
CNS_SetPartIgnoreStrictNoMixPreference = CNS_SetPartIgnoreStrictNoMixPreference@4 @468 NONAME
CNS_SetPartIgnoreStrictNoMixPreference@4 @469 NONAME
Binary file not shown.