diff --git a/Optalog/Include/cns.h b/Optalog/Include/cns.h index c346123..e494483 100644 --- a/Optalog/Include/cns.h +++ b/Optalog/Include/cns.h @@ -1220,8 +1220,17 @@ extern "C" { CNS_EXPORT void CNS_API CNS_SetPartCommonCutMaxBlockSize(CNS_PartPtr part, unsigned max_number_of_parts_in_block); - + + /** + * Allows to disable some advanced common cut checks. + * + * Warning: this can allows to generate small holes between common cuts. + */ + CNS_EXPORT void CNS_API + CNS_SetCommonCutAdvancedQualityCheck(CNS_LaunchingOrderPtr order, + int advanced_quality_check); + /** * return the number of common cuts in the given nesting. diff --git a/Optalog/Include/cns_textile.h b/Optalog/Include/cns_textile.h new file mode 100644 index 0000000..b17b218 --- /dev/null +++ b/Optalog/Include/cns_textile.h @@ -0,0 +1,36 @@ +#ifndef CNS_TEXTILE_HPP_ +#define CNS_TEXTILE_HPP_ + +#include "cns.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Defines a regular set of possible y values for part position + * The intended usage is when using textile with horizontal stripes or plaids patterns having an influence on part position + * Setting this constraint on a part means that the point @ref of part @part will always have + * final coordinate when nested ref_nested_position.y = strip_start + k * strip_repeat for some k + * This constraint is set on parts and not sheet. + * It means it should only be used when the problem has only 1 sheet, or a set of sheets with same stripes patterns + * and same sheet border gaps. + */ +CNS_EXPORT void CNS_API +CNS_SetPartStripYconstraint(CNS_PartPtr part, CNS_Point ref, double strip_start, double strip_repeat); + +/** + * Same as CNS_SetPartStripYconstraint but for vertical stripes and x_values of ref point. + * When combined with CNS_SetPartStripYconstraint it allows to manage also plaid patterns. + */ + +CNS_EXPORT void CNS_API +CNS_SetPartStripXconstraint(CNS_PartPtr part, CNS_Point ref, double strip_start, double strip_repeat); + +#ifdef __cplusplus +} +#endif + + + +#endif /* CNS_TEXTILE_HPP_ */ diff --git a/Optalog/Lib/x32/liblcns.def b/Optalog/Lib/x32/liblcns.def index 27a5f3b..5163cc4 100644 --- a/Optalog/Lib/x32/liblcns.def +++ b/Optalog/Lib/x32/liblcns.def @@ -274,6 +274,10 @@ EXPORTS CNS_SetOriginPrioritiesOnParts@8 @375 NONAME CNS_SetCommonCutMaxBlockSizeXY = CNS_SetCommonCutMaxBlockSizeXY@20 @376 NONAME CNS_SetCommonCutMaxBlockSizeXY@20 @377 NONAME + CNS_SetPartStripYconstraint = CNS_SetPartStripYconstraint@36 @378 NONAME + CNS_SetPartStripYconstraint@36 @379 NONAME + CNS_SetPartStripXconstraint = CNS_SetPartStripXconstraint@36 @380 NONAME + CNS_SetPartStripXconstraint@36 @381 NONAME CNS_LaunchBasicLocalComputation = CNS_LaunchBasicLocalComputation@12 @382 NONAME CNS_LaunchBasicLocalComputation@12 @383 NONAME CNS_BetterPartInsideHole=CNS_BetterPartInsideHole@4 @384 NONAME @@ -312,3 +316,7 @@ EXPORTS CNS_ArrayHelperGetElements@4 @437 NONAME CNS_SetShearMaxLength = CNS_SetShearMaxLength@12 @446 NONAME CNS_SetShearMaxLength@12 @447 NONAME + CNS_GetNestedPartInternalStatus = CNS_GetNestedPartInternalStatus@16 @448 NONAME + CNS_GetNestedPartInternalStatus@16 @449 NONAME + CNS_SetCommonCutAdvancedQualityCheck = CNS_SetCommonCutAdvancedQualityCheck@8 @450 NONAME + CNS_SetCommonCutAdvancedQualityCheck@8 @451 NONAME diff --git a/Optalog/Lib/x32/liblcnsR32.lib b/Optalog/Lib/x32/liblcnsR32.lib index 0cd736d..6bb0da2 100644 Binary files a/Optalog/Lib/x32/liblcnsR32.lib and b/Optalog/Lib/x32/liblcnsR32.lib differ diff --git a/Optalog/Lib/x64/liblcns.def b/Optalog/Lib/x64/liblcns.def index 5ca43dc..f8670a8 100644 --- a/Optalog/Lib/x64/liblcns.def +++ b/Optalog/Lib/x64/liblcns.def @@ -274,6 +274,10 @@ EXPORTS CNS_SetOriginPrioritiesOnParts@8 @375 NONAME CNS_SetCommonCutMaxBlockSizeXY = CNS_SetCommonCutMaxBlockSizeXY@20 @376 NONAME CNS_SetCommonCutMaxBlockSizeXY@20 @377 NONAME + CNS_SetPartStripYconstraint = CNS_SetPartStripYconstraint@36 @378 NONAME + CNS_SetPartStripYconstraint@36 @379 NONAME + CNS_SetPartStripXconstraint = CNS_SetPartStripXconstraint@36 @380 NONAME + CNS_SetPartStripXconstraint@36 @381 NONAME CNS_LaunchBasicLocalComputation = CNS_LaunchBasicLocalComputation@12 @382 NONAME CNS_LaunchBasicLocalComputation@12 @383 NONAME CNS_BetterPartInsideHole=CNS_BetterPartInsideHole@4 @384 NONAME @@ -312,3 +316,7 @@ EXPORTS CNS_ArrayHelperGetElements@4 @437 NONAME CNS_SetShearMaxLength = CNS_SetShearMaxLength@12 @446 NONAME CNS_SetShearMaxLength@12 @447 NONAME + CNS_GetNestedPartInternalStatus = CNS_GetNestedPartInternalStatus@16 @448 NONAME + CNS_GetNestedPartInternalStatus@16 @449 NONAME + CNS_SetCommonCutAdvancedQualityCheck = CNS_SetCommonCutAdvancedQualityCheck@8 @450 NONAME + CNS_SetCommonCutAdvancedQualityCheck@8 @451 NONAME diff --git a/Optalog/Lib/x64/liblcnsR64.lib b/Optalog/Lib/x64/liblcnsR64.lib index d794cd5..f442e25 100644 Binary files a/Optalog/Lib/x64/liblcnsR64.lib and b/Optalog/Lib/x64/liblcnsR64.lib differ