diff --git a/Optalog/Include/cns.h b/Optalog/Include/cns.h index 583ef03..96a865f 100644 --- a/Optalog/Include/cns.h +++ b/Optalog/Include/cns.h @@ -571,6 +571,16 @@ extern "C" { double left_gap, double right_gap, double bottom_gap, double top_gap); + /** + * When a sheet is not a rectangle, left, right, bottom, top gaps will be applied on + * the sheet bounding box and border_gap will be applied on sheet geometry + */ + + CNS_EXPORT void CNS_API CNS_SetNonRectangularSheetGaps(CNS_SheetPtr sheet, + double left_gap, double right_gap, + double bottom_gap, double top_gap, + double irregular_border_gap); + /** * Add gaps around defects/holes. * diff --git a/Optalog/Include/cns_tooling.h b/Optalog/Include/cns_tooling.h new file mode 100644 index 0000000..d8f589c --- /dev/null +++ b/Optalog/Include/cns_tooling.h @@ -0,0 +1,60 @@ +#ifndef CNS_TOOLING_H_ +#define CNS_TOOLING_H_ + +#include "cns.h" + +#ifdef __cplusplus +extern "C" { +#endif + + +/** + * Add a special tooling contour to the part + * Tooling contours on different parts can overlap each other but a tooling contour can not + * overlap the standard geometry of another part + * A tooling contour can also be nested outside of sheet boundaries + * This function can be called multiple times, all the tooling contours added will be unioned + */ + +CNS_EXPORT void CNS_API CNS_AddToolPathToPart(CNS_PartPtr part, + unsigned number_of_elements, + const CNS_Element * elements); +/** + * Add a hole in a tooling contour + */ + +CNS_EXPORT void CNS_API CNS_AddHoleInToolPath(CNS_PartPtr part, + unsigned number_of_elements, + const CNS_Element * elements); + +/** + * Automatically computes a tooling contour that offsets the part externals + * and holes of inflate_size distance + */ +CNS_EXPORT void CNS_API CNS_AddInflatedToolPathToPart(CNS_PartPtr part, double inflate_size); + +/** + * Given a tool trajectory and diameter, automatically computes and add to the part the corresponding + * tooling geometry + * This function can be called multiple times, all the tooling contours added will be unioned. + * Free shape contour can also be added with CNS_AddToolPathToPart + */ +CNS_EXPORT void CNS_API CNS_AddOpenToolPathToPart(CNS_PartPtr part, CNS_Point origin, + unsigned number_of_elements, + const CNS_Element * elements, + double tool_diameter); + +/** + * By default tool contours are allowed to be nested outside of the sheet + * This function lets you define if tools can go out of sheet or not. + */ + +CNS_EXPORT void CNS_API CNS_AllowToolsOutsideSheet(CNS_LaunchingOrderPtr order, int allowed); + +#ifdef __cplusplus +} +#endif + + + +#endif /* CNS_TOOLING_H_ */ diff --git a/Optalog/Lib/x32/liblcns.def b/Optalog/Lib/x32/liblcns.def index 6a28219..11c45f9 100644 --- a/Optalog/Lib/x32/liblcns.def +++ b/Optalog/Lib/x32/liblcns.def @@ -214,6 +214,12 @@ EXPORTS CNS_SetPriorityInterpenetration@16 @287 NONAME CNS_SetStrictPrioritiesOnParts = CNS_SetStrictPrioritiesOnParts@8 @288 NONAME CNS_SetStrictPrioritiesOnParts@8 @289 NONAME + CNS_AddToolPathToPart = CNS_AddToolPathToPart@12 @290 NONAME + CNS_AddToolPathToPart@12 @291 NONAME + CNS_AddInflatedToolPathToPart = CNS_AddInflatedToolPathToPart@12 @294 NONAME + CNS_AddInflatedToolPathToPart@12 @295 NONAME + CNS_AddHoleInToolPath = CNS_AddHoleInToolPath@12 @296 NONAME + CNS_AddHoleInToolPath@12 @297 NONAME CNS_SetSpecificSheetOrigin = CNS_SetSpecificSheetOrigin@8 @298 NONAME CNS_SetSpecificSheetOrigin@8 @299 NONAME CNS_SetSpecificSheetObjective = CNS_SetSpecificSheetObjective@8 @300 NONAME @@ -224,6 +230,8 @@ EXPORTS CNS_AddDefectFromNestedPart@36 @307 NONAME CNS_SetOriginPackingMode = CNS_SetOriginPackingMode@8 @312 NONAME CNS_SetOriginPackingMode@8 @313 NONAME + CNS_AddOpenToolPathToPart = CNS_AddOpenToolPathToPart@36 @314 NONAME + CNS_AddOpenToolPathToPart@36 @315 NONAME CNS_SetEvaluateIntermediateNestingsAsLast = CNS_SetEvaluateIntermediateNestingsAsLast@8 @316 NONAME CNS_SetEvaluateIntermediateNestingsAsLast@8 @317 NONAME CNS_SetPartialShearMode = CNS_SetPartialShearMode@8 @330 NONAME @@ -244,3 +252,7 @@ EXPORTS CNS_SetPartCommonCutMaxBlockSize@8 @361 NONAME CNS_AddOpenDefectPathToSheet = CNS_AddOpenDefectPathToSheet@36 @362 NONAME CNS_AddOpenDefectPathToSheet@36 @363 NONAME + CNS_AllowToolsOutsideSheet = CNS_AllowToolsOutsideSheet@8 @364 NONAME + CNS_AllowToolsOutsideSheet@8 @365 NONAME + CNS_SetNonRectangularSheetGaps=CNS_SetNonRectangularSheetGaps@44 @366 NONAME + CNS_SetNonRectangularSheetGaps@44 @367 NONAME diff --git a/Optalog/Lib/x32/liblcnsR32.lib b/Optalog/Lib/x32/liblcnsR32.lib index 786731f..6dbb321 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 37bef0c..ef93256 100644 --- a/Optalog/Lib/x64/liblcns.def +++ b/Optalog/Lib/x64/liblcns.def @@ -214,6 +214,12 @@ EXPORTS CNS_SetPriorityInterpenetration@16 @287 NONAME CNS_SetStrictPrioritiesOnParts = CNS_SetStrictPrioritiesOnParts@8 @288 NONAME CNS_SetStrictPrioritiesOnParts@8 @289 NONAME + CNS_AddToolPathToPart = CNS_AddToolPathToPart@12 @290 NONAME + CNS_AddToolPathToPart@12 @291 NONAME + CNS_AddInflatedToolPathToPart = CNS_AddInflatedToolPathToPart@12 @294 NONAME + CNS_AddInflatedToolPathToPart@12 @295 NONAME + CNS_AddHoleInToolPath = CNS_AddHoleInToolPath@12 @296 NONAME + CNS_AddHoleInToolPath@12 @297 NONAME CNS_SetSpecificSheetOrigin = CNS_SetSpecificSheetOrigin@8 @298 NONAME CNS_SetSpecificSheetOrigin@8 @299 NONAME CNS_SetSpecificSheetObjective = CNS_SetSpecificSheetObjective@8 @300 NONAME @@ -224,6 +230,8 @@ EXPORTS CNS_AddDefectFromNestedPart@36 @307 NONAME CNS_SetOriginPackingMode = CNS_SetOriginPackingMode@8 @312 NONAME CNS_SetOriginPackingMode@8 @313 NONAME + CNS_AddOpenToolPathToPart = CNS_AddOpenToolPathToPart@36 @314 NONAME + CNS_AddOpenToolPathToPart@36 @315 NONAME CNS_SetEvaluateIntermediateNestingsAsLast = CNS_SetEvaluateIntermediateNestingsAsLast@8 @316 NONAME CNS_SetEvaluateIntermediateNestingsAsLast@8 @317 NONAME CNS_SetPartialShearMode = CNS_SetPartialShearMode@8 @330 NONAME @@ -244,3 +252,7 @@ EXPORTS CNS_SetPartCommonCutMaxBlockSize@8 @361 NONAME CNS_AddOpenDefectPathToSheet = CNS_AddOpenDefectPathToSheet@36 @362 NONAME CNS_AddOpenDefectPathToSheet@36 @363 NONAME + CNS_AllowToolsOutsideSheet = CNS_AllowToolsOutsideSheet@8 @364 NONAME + CNS_AllowToolsOutsideSheet@8 @365 NONAME + CNS_SetNonRectangularSheetGaps=CNS_SetNonRectangularSheetGaps@44 @366 NONAME + CNS_SetNonRectangularSheetGaps@44 @367 NONAME diff --git a/Optalog/Lib/x64/liblcnsR64.exp b/Optalog/Lib/x64/liblcnsR64.exp deleted file mode 100644 index 34c3411..0000000 Binary files a/Optalog/Lib/x64/liblcnsR64.exp and /dev/null differ diff --git a/Optalog/Lib/x64/liblcnsR64.lib b/Optalog/Lib/x64/liblcnsR64.lib index 8f39c19..28b4102 100644 Binary files a/Optalog/Lib/x64/liblcnsR64.lib and b/Optalog/Lib/x64/liblcnsR64.lib differ