- Optalog aggiornamento a versione 11.0.
This commit is contained in:
SaraP
2025-09-12 10:08:10 +02:00
parent f05795ffff
commit f6b8c50409
8 changed files with 264 additions and 82 deletions
+73 -37
View File
@@ -5,9 +5,8 @@
* agreement of the authors.
*
* Authors: Nicolas Leignel and Renaud Lepere
* Copyright: 2014-2023
* Copyright: 2014-2025
*/
#ifndef CNS_H
#define CNS_H
@@ -224,10 +223,13 @@ extern "C" {
/**
* Set an extra gap on the given part.
*
* Some parts may require additional spacing in order to protect them.
* Some parts may require additional spacing in order to protect them. This is an additional gap
* above the normal gap specified by the function CNS_SetInterpartGap.
*
* Note: 2 adjacent nested parts with extra gaps will have an extra gap between them
* corresponding to the sum of their extra gap.
* Note: two adjacent nested parts with extra gaps will have an extra gap between them
* corresponding to the sum of their extra gaps.
*
* Note: If an extra gap is added a part, the extra gap will also apply on the sheet border.
*/
CNS_EXPORT void CNS_API
CNS_SetExtraGapOnPart(CNS_PartPtr part, double extra_gap);
@@ -350,7 +352,6 @@ extern "C" {
CNS_AddPartSpecificAuthorizations(CNS_PartPtr part, int flip,
double min_angle_in_degree, double max_angle_in_degree);
/**
* Set the priority of the given part.
*
@@ -366,8 +367,6 @@ extern "C" {
*/
CNS_EXPORT void CNS_API CNS_SetPartPriority(CNS_PartPtr part, unsigned priority);
/**
* Set user string associated with the part.
* This may be used for assigning an ID to each part.
@@ -390,7 +389,6 @@ extern "C" {
CNS_EXPORT void CNS_API CNS_GetPartUserStringEx(CNS_PartPtr part,
unsigned max_size, char * user_string);
/**
* Add a rectangular sheet to the given launching order.
*
@@ -421,7 +419,6 @@ extern "C" {
CNS_EXPORT void CNS_API CNS_SetSheetGrainDirection(CNS_SheetPtr sheet,
CNS_GrainDirection grain_direction);
/**
* Set the price of the sheet.
*
@@ -431,7 +428,6 @@ extern "C" {
*/
CNS_EXPORT void CNS_API CNS_SetSheetPrice(CNS_SheetPtr sheet, double price);
/**
* Add an irregular sheet to the given launching order.
*
@@ -452,6 +448,20 @@ extern "C" {
unsigned number_of_elements,
const CNS_Element * elements);
/**
* Add a variable sheet length to the launching order.
*
* Variable sheet length are useful for coil based nesting, where an horizontal cut but be
* made between @param min_x and @param max_x.
*
* Note1: This mode is only compatible with objective CNS_IntelligentMinimizeX or
* CNS_IntelligentMinimizeX.
*/
CNS_EXPORT CNS_SheetPtr CNS_API CNS_AddVariableSheet(CNS_LaunchingOrderPtr order,
unsigned quantity,
double min_x, double max_x,
double y);
/**
* Add a defect/hole to the given sheet.
*
@@ -579,7 +589,6 @@ extern "C" {
* When a sheet is not a rectangle, left, right, bottom, top gaps will be applied on
* the sheet bounding box and irregular_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,
@@ -752,15 +761,30 @@ extern "C" {
/**
* Force origin packing mode.
*
* In very short time (few seconds), all parts may not be nested near the
* origin due to timing constraint, this post optimization process force the
* origin packing to be called at the end of the computation. It is called
* only on the final solution and it can lead to a computation time a bit
* longer (few seconds) than the given time.
* In very short time (few seconds), all parts may not be nested near the origin due to timing
* constraint, this post optimization process force the origin packing to be called at the end
* of the computation. It is called only on the final solution and it can lead to a computation
* time a bit longer (few seconds) than the given time.
*/
CNS_EXPORT void CNS_API
CNS_SetOriginPackingMode(CNS_LaunchingOrderPtr order, int enable);
/**
* EXPERIMENTAL Force small parts renesting in holes.
*
* This function is a postprocessing step that nest small parts in holes in later sheets than in
* the first sheets not in holes. This can be easier to manage, tend to group small parts
* together, and may favor reusability of offcuts. This post-processing step only apply on small
* parts with low priority (because they can be nested everywhere) and it is not compatible with
* strict part priorities.
*
* This function can lead to a computation time a bit longer (few seconds) than the given time.
*/
CNS_EXPORT void CNS_API
CNS_SetForceSmallPartsRenestingMode(CNS_LaunchingOrderPtr order, int enable);
/**
* Advanced control of offcut value.
*
@@ -787,7 +811,8 @@ extern "C" {
*
* For a reusable offcut, the value will be deprecated by @param unusable_ratio. This is useful
* to generate a small offcut in a smaller sheet even if the fill-ratio considering that the
* offcut is reusable. A small value between .1 and .3 is good.
* offcut is reusable. A reasonnable value such as 0.4 will favor using small sheets if possible
* even if the fill-ratio is worse. A value between 0.1 and 0.9 is possible.
*
* Note1: @param min_area must be in the same unit as @param min_dimension. If mm then it
* must be mm^2.
@@ -805,10 +830,9 @@ extern "C" {
/**
* Control of part priorities.
*
* By default, priorities are not strict, if parts with high priority can not be nested a part with
* a lower priorities will be nested.
* In case of strict priorities, parts with lower priority will be nested only when all the parts of
* higher priorities will have been nested.
* By default, priorities are not strict, if parts with high priority can not be nested a part
* with a lower priorities will be nested. In case of strict priorities, parts with lower
* priority will be nested only when all the parts of higher priorities will have been nested.
*
* Note: this function may degrades the performance of the nesting.
*/
@@ -846,7 +870,7 @@ extern "C" {
* ===================================================================================== */
/**
* Launch a non-blocking computation of the given launching order.
* Launch a non-blocking cloud computation of the given launching order on optalog servers.
*
* @param server the cloud nest server ip (or fully qualified name).
* @param login the login used for running the computation.
@@ -865,12 +889,10 @@ extern "C" {
double computation_time);
/**
* Launch a non-blocking local computation of the given order.
* Launch a non-blocking local computation of the given launching order.
*
* @param computation_time the time you want to give to obtain the results (a longer time will
* yield better results). 30 seconds is the minimum advised time to obtain very good results.
*
* May not be available in the given version
* yield better results). 30 seconds is the minimum advised time to obtain very good
*
* The computation can be launched in infinite mode by giving a computation time value of -1.0.
* In this mode the user is responsible for collecting intermediate results and stopping the
@@ -880,6 +902,7 @@ extern "C" {
* CNS_DeleteLaunchingOrder.
*
* Note: this function launch an asynchronous computation and creates some working threads.
* This function may not be available in the given version.
*/
CNS_EXPORT CNS_ComputationPtr CNS_API CNS_LaunchLocalComputation(CNS_LaunchingOrderPtr order,
double computation_time);
@@ -1085,10 +1108,7 @@ extern "C" {
CNS_EXPORT void CNS_API CNS_SetCommonCutMode(CNS_LaunchingOrderPtr launching_order,
int enable, double common_cut_gap);
/**
* EXPERIMENTAL
* Enable or disable common cut between different parts
*
* This experimental mode allows to generate common cut between different parts.
@@ -1162,7 +1182,7 @@ extern "C" {
} CNS_CommonCutLeadin;
/**
* Advance common cut authorization control
* Advanced common cut authorization control
*
* @param min_cutting_length the minimum length of a common cut.
* @param max_regarding_ratio control the leaving condition. If the edges around a common cut
@@ -1232,8 +1252,8 @@ extern "C" {
* Limit the size of common cut blocks to a maximum dimension.
*
* If parts are cut in common cut, this can lead to very big blocks. Those big blocks lead to
* skeleton rigidity problems. It is possible to limit their maximum size.
* @param max_block_size the maximum size of common cut block.
* skeleton rigidity problems. It is possible to limit their maximum size. @param
* max_block_size the maximum size of common cut block.
*/
CNS_EXPORT void CNS_API
CNS_SetCommonCutMaxBlockSize(CNS_LaunchingOrderPtr launching_order, double max_block_size);
@@ -1254,14 +1274,29 @@ extern "C" {
/**
* Limit the size of common cut blocks to a maximum number of parts.
*
* If small parts are cut in common cut, this can lead to a huge number of
* parts in a common cut block. If a cutting problem occurs, all the parts
* can have a problem. This limit the maximum number of parts in a block.
* If small parts are cut in common cut, this can lead to a huge number of parts in a common cut
* block. If a cutting problem occurs, all the parts can have a problem. This limit the maximum
* number of parts in a block.
*/
CNS_EXPORT void CNS_API
CNS_SetPartCommonCutMaxBlockSize(CNS_PartPtr part,
unsigned max_number_of_parts_in_block);
/**
* Limit the size of common cut blocks to a maximum dimension in x and in y for the given part.
*
* If parts are cut in common cut, this can lead to very big blocks. Those big blocks lead to
* skeleton rigidity problems. It is possible to limit their maximum size.
* @param max_block_size_x the maximum size of common cut block in x
* @param max_block_size_y the maximum size of common cut block in y
*
* Note: all algorithms are not compatible with this setting and using this function may reduce
* a little bit nesting performance.
*/
CNS_EXPORT void CNS_API
CNS_SetPartCommonCutMaxBlockSizeXY(CNS_PartPtr part,
double max_block_size_x,
double max_block_size_y);
/**
* Allows to disable some advanced common cut checks.
@@ -1500,7 +1535,8 @@ extern "C" {
/**
* Return the fill ratio of the given nesting.
*
* For the last sheet the considered used surface in the fill ratio is up to the frontline, or area.
* For the last sheet the considered used surface in the fill ratio is up to the frontline, or
* area.
*/
CNS_EXPORT double CNS_API
CNS_GetNestingFillRatio(CNS_NestingPtr nesting);
+28 -16
View File
@@ -11,43 +11,55 @@ typedef struct CNS_RestrictedZoneConstraint * CNS_RestrictedZoneConstraintPtr ;
/**
* Creates a zone restriction constraint.
* This constraint forces a given set of parts to be nested inside restricted zones on the sheet
*
* This constraint can force a given set of parts to be nested inside restricted zones on the sheet
* and not anywhere on the whole sheet.
*
* Note: You should define a limited number of restricted zones. In particular, you should not
* define a restricted zone per part, but for instance create a zone in the center where to nest
* small parts inside.
*/
CNS_EXPORT CNS_RestrictedZoneConstraintPtr CNS_API
CNS_CreateRestrictedZoneConstraint(CNS_LaunchingOrderPtr order);
/**
* Define a zone in the sheet where parts can be nested according to the constraint.
* Calling the function several times on the same sheet will allow all the defined zones.
*
* Note: Calling the function several times on the same sheet will allow all the defined zones.
*
* Note: You should define a restricted zone for all the sheets, otherwise the sheet with no
* restricted zone defined will have an empty restricted zone, and parts attached to this restricted
* zone through CNS_SetZoneRestrictedPart will not be nested on those sheets.
*/
CNS_EXPORT void CNS_API CNS_SheetAddRestrictedZone(
CNS_RestrictedZoneConstraintPtr constraint,
CNS_EXPORT void CNS_API
CNS_SheetAddRestrictedZone(CNS_RestrictedZoneConstraintPtr constraint,
CNS_SheetPtr sheet,
unsigned number_of_elements,
const CNS_Element * elements);
/**
* Same as CNS_SheetAddRestrictedZone with simplified API for rectangular zones
* Same as CNS_SheetAddRestrictedZone with simplified API for rectangular zones.
*/
CNS_EXPORT void CNS_API CNS_SheetAddBoxRestrictedZone(
CNS_RestrictedZoneConstraintPtr constraint,
CNS_EXPORT void CNS_API
CNS_SheetAddBoxRestrictedZone(CNS_RestrictedZoneConstraintPtr constraint,
CNS_SheetPtr sheet,
CNS_Point bottom_left, CNS_Point top_right);
/**
* Set restriction constraint on the part.
* This part will be restricted to specific sheet zones that were
* added using CNS_SheetAddRestrictedZone
*
* This part will be restricted to specific sheet zones that were added using
* CNS_SheetAddRestrictedZone.
*
* Note: If a part is assigned to multiple restricted zones constraints, it will be nested in the
* intersection of the restricted zones.
*/
CNS_EXPORT void CNS_API
CNS_SetZoneRestrictedPart(CNS_RestrictedZoneConstraintPtr constraint, CNS_PartPtr part);
CNS_EXPORT void CNS_API CNS_SetZoneRestrictedPart(
CNS_RestrictedZoneConstraintPtr constraint,
CNS_PartPtr part);
/**
* Specific function to force part to be nested on the bottom of the sheet.
*/
CNS_EXPORT void CNS_API CNS_ForcePartOnBottomBorder(CNS_PartPtr part);
#ifdef __cplusplus
+69
View File
@@ -0,0 +1,69 @@
#ifndef CNS_SHEAR_SEQUENCE_H
#define CNS_SHEAR_SEQUENCE_H
#include "cns.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct CNS_ShearSequence * CNS_ShearSequencePtr;
/**
* Compute the shear sequence on the given nesting.
*
* If there is an interpart gap beteween parts (see CNS_SetInterpartGap), then there must be a shear
* gap (see CNS_SetShearGap) that is greater or equal otherwise a sequence can not be found. In
* this case, if there is some non zero border gaps (see CNS_SetSheetGaps) the border gaps must be
* greater or equal then the interpart gap.
*/
CNS_EXPORT CNS_ShearSequencePtr CNS_API CNS_ComputeShearSequence(CNS_NestingPtr nesting);
/**
* Delete the shear sequence.
*/
CNS_EXPORT void CNS_API CNS_DeleteShearSequence(CNS_ShearSequencePtr sequence);
/**
* For debugging, display the shear sequence in SVG
*/
CNS_EXPORT void CNS_API CNS_DrawShearSequence(CNS_NestingPtr nesting,
CNS_ShearSequencePtr sequence,
const char * filename);
/**
* return the number of cut elements in the given shear sequence
*/
CNS_EXPORT unsigned CNS_API
CNS_GetNumberOfElementsInShearSequence(CNS_ShearSequencePtr sequence);
/**
* return the given element in the given shear sequence
*/
CNS_EXPORT void CNS_API
CNS_GetElementInShearSequence(CNS_ShearSequencePtr sequence,
unsigned element,
double * xo, double * yo,
double * xe, double * ye);
/**
* return the number of offcuts in the shear sequence
*/
CNS_EXPORT unsigned CNS_API
CNS_GetNumberOfOffcutsInShearSequence(CNS_ShearSequencePtr sequence);
/**
* return the given offcut in the shear sequence
*/
CNS_EXPORT void CNS_API
CNS_GetOffcutInShearSequence(CNS_ShearSequencePtr sequence,
unsigned offcut,
double * minx, double * miny,
double * maxx, double * maxy);
#ifdef __cplusplus
}
#endif
#endif
+20 -15
View File
@@ -9,34 +9,38 @@ extern "C" {
/**
* 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
* Add a tool path to the part.
*
* Tool paths on different parts can overlap each other but a too path can not overlap the standard
* geometry of another part. By default, a tool path can also be nested outside of sheet boundaries,
* but this can be change using the function CNS_AllowToolsOutsideSheet. This function can be called
* multiple times, all the tooling contours will be considered.
*/
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
* Add a hole in a tool path.
*/
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
* Compute a global tool path on the given part.
*
* Computes a tool path that offsets the part externals and holes of @param inflate_size distance.
* This function can be useful for milling with different diameters on tools.
*/
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
* Add a tool path with a diameter.
*
* Given a tool trajectory and diameter, automatically computes and adds to the part the
* corresponding tool path. This function can be called multiple times. Free shape contours can also
* be used as tool path using the function with CNS_AddToolPathToPart.
*/
CNS_EXPORT void CNS_API CNS_AddOpenToolPathToPart(CNS_PartPtr part, CNS_Point origin,
unsigned number_of_elements,
@@ -44,10 +48,11 @@ CNS_EXPORT void CNS_API CNS_AddOpenToolPathToPart(CNS_PartPtr part, CNS_Point or
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.
* Specify it tool paths can go outside the sheet or not.
*
* By default tool paths are allowed to be nested outside of the sheet. This function lets you
* define if tool paths can go out of sheet or not.
*/
CNS_EXPORT void CNS_API CNS_AllowToolsOutsideSheet(CNS_LaunchingOrderPtr order, int allowed);
#ifdef __cplusplus
+30
View File
@@ -300,6 +300,16 @@ EXPORTS
CNS_SetShearRowMode@8 @411 NONAME
CNS_SetShearColumnMode = CNS_SetShearColumnMode@8 @412 NONAME
CNS_SetShearColumnMode@8 @413 NONAME
CNS_ComputeShearSequence = CNS_ComputeShearSequence@4 @414 NONAME
CNS_ComputeShearSequence@4 @415 NONAME
CNS_DeleteShearSequence = CNS_DeleteShearSequence@4 @416 NONAME
CNS_DeleteShearSequence@4 @417 NONAME
CNS_DrawShearSequence = CNS_DrawShearSequence@12 @418 NONAME
CNS_DrawShearSequence@12 @419 NONAME
CNS_GetNumberOfElementsInShearSequence = CNS_GetNumberOfElementsInShearSequence@4 @420 NONAME
CNS_GetNumberOfElementsInShearSequence@4 @421 NONAME
CNS_GetElementInShearSequence = CNS_GetElementInShearSequence@24 @422 NONAME
CNS_GetElementInShearSequence@24 @423 NONAME
CNS_SetCommonCutPerfectAlignment = CNS_SetCommonCutPerfectAlignment@8 @424 NONAME
CNS_SetCommonCutPerfectAlignment@8 @425 NONAME
CNS_NewArrayHelper = CNS_NewArrayHelper@0 @426 NONAME
@@ -314,6 +324,10 @@ EXPORTS
CNS_ArrayHelperAddElement@28 @435 NONAME
CNS_ArrayHelperGetElements = CNS_ArrayHelperGetElements@4 @436 NONAME
CNS_ArrayHelperGetElements@4 @437 NONAME
CNS_GetNumberOfOffcutsInShearSequence = CNS_GetNumberOfOffcutsInShearSequence@4 @442 NONAME
CNS_GetNumberOfOffcutsInShearSequence@4 @443 NONAME
CNS_GetOffcutInShearSequence = CNS_GetOffcutInShearSequence@24 @444 NONAME
CNS_GetOffcutInShearSequence@24 @445 NONAME
CNS_SetShearMaxLength = CNS_SetShearMaxLength@12 @446 NONAME
CNS_SetShearMaxLength@12 @447 NONAME
CNS_GetNestedPartInternalStatus = CNS_GetNestedPartInternalStatus@16 @448 NONAME
@@ -332,3 +346,19 @@ EXPORTS
CNS_SetPartIgnorePriority@4 @467 NONAME
CNS_SetPartIgnoreStrictNoMixPreference = CNS_SetPartIgnoreStrictNoMixPreference@4 @468 NONAME
CNS_SetPartIgnoreStrictNoMixPreference@4 @469 NONAME
CNS_AddVariableSheet = CNS_AddVariableSheet@32 @472 NONAME
CNS_AddVariableSheet@32 @473 NONAME
CNS_ForcePartOutsideHole=CNS_ForcePartOutsideHole@4 @476 NONAME
CNS_ForcePartOutsideHole@4 @477 NONAME
CNS_RenestBadPartsInsideHole=CNS_RenestBadPartsInsideHole@4 @478 NONAME
CNS_RenestBadPartsInsideHole@4 @479 NONAME
CNS_SetCommonCutCheckQualityIfCommonCut=CNS_SetCommonCutCheckQualityIfCommonCut@8 @480 NONAME
CNS_SetCommonCutCheckQualityIfCommonCut@8 @481 NONAME
CNS_SetForceSmallPartsRenestingMode=CNS_SetForceSmallPartsRenestingMode@8 @482 NONAME
CNS_SetForceSmallPartsRenestingMode@8 @483 NONAME
CNS_GetActivationCodeEx=CNS_GetActivationCodeEx@8 @484 NONAME
CNS_GetActivationCodeEx@8 @485 NONAME
CNS_SetPartCommonCutMaxBlockSizeXY=CNS_SetPartCommonCutMaxBlockSizeXY@20 @486 NONAME
CNS_SetPartCommonCutMaxBlockSizeXY@20 @487 NONAME
CNS_AddUnloadingDefectToSheet=CNS_AddUnloadingDefectToSheet@12 @502 NONAME
CNS_AddUnloadingDefectToSheet@12 @503 NONAME
Binary file not shown.
+30
View File
@@ -300,6 +300,16 @@ EXPORTS
CNS_SetShearRowMode@8 @411 NONAME
CNS_SetShearColumnMode = CNS_SetShearColumnMode@8 @412 NONAME
CNS_SetShearColumnMode@8 @413 NONAME
CNS_ComputeShearSequence = CNS_ComputeShearSequence@4 @414 NONAME
CNS_ComputeShearSequence@4 @415 NONAME
CNS_DeleteShearSequence = CNS_DeleteShearSequence@4 @416 NONAME
CNS_DeleteShearSequence@4 @417 NONAME
CNS_DrawShearSequence = CNS_DrawShearSequence@12 @418 NONAME
CNS_DrawShearSequence@12 @419 NONAME
CNS_GetNumberOfElementsInShearSequence = CNS_GetNumberOfElementsInShearSequence@4 @420 NONAME
CNS_GetNumberOfElementsInShearSequence@4 @421 NONAME
CNS_GetElementInShearSequence = CNS_GetElementInShearSequence@24 @422 NONAME
CNS_GetElementInShearSequence@24 @423 NONAME
CNS_SetCommonCutPerfectAlignment = CNS_SetCommonCutPerfectAlignment@8 @424 NONAME
CNS_SetCommonCutPerfectAlignment@8 @425 NONAME
CNS_NewArrayHelper = CNS_NewArrayHelper@0 @426 NONAME
@@ -314,6 +324,10 @@ EXPORTS
CNS_ArrayHelperAddElement@28 @435 NONAME
CNS_ArrayHelperGetElements = CNS_ArrayHelperGetElements@4 @436 NONAME
CNS_ArrayHelperGetElements@4 @437 NONAME
CNS_GetNumberOfOffcutsInShearSequence = CNS_GetNumberOfOffcutsInShearSequence@4 @442 NONAME
CNS_GetNumberOfOffcutsInShearSequence@4 @443 NONAME
CNS_GetOffcutInShearSequence = CNS_GetOffcutInShearSequence@24 @444 NONAME
CNS_GetOffcutInShearSequence@24 @445 NONAME
CNS_SetShearMaxLength = CNS_SetShearMaxLength@12 @446 NONAME
CNS_SetShearMaxLength@12 @447 NONAME
CNS_GetNestedPartInternalStatus = CNS_GetNestedPartInternalStatus@16 @448 NONAME
@@ -332,3 +346,19 @@ EXPORTS
CNS_SetPartIgnorePriority@4 @467 NONAME
CNS_SetPartIgnoreStrictNoMixPreference = CNS_SetPartIgnoreStrictNoMixPreference@4 @468 NONAME
CNS_SetPartIgnoreStrictNoMixPreference@4 @469 NONAME
CNS_AddVariableSheet = CNS_AddVariableSheet@32 @472 NONAME
CNS_AddVariableSheet@32 @473 NONAME
CNS_ForcePartOutsideHole=CNS_ForcePartOutsideHole@4 @476 NONAME
CNS_ForcePartOutsideHole@4 @477 NONAME
CNS_RenestBadPartsInsideHole=CNS_RenestBadPartsInsideHole@4 @478 NONAME
CNS_RenestBadPartsInsideHole@4 @479 NONAME
CNS_SetCommonCutCheckQualityIfCommonCut=CNS_SetCommonCutCheckQualityIfCommonCut@8 @480 NONAME
CNS_SetCommonCutCheckQualityIfCommonCut@8 @481 NONAME
CNS_SetForceSmallPartsRenestingMode=CNS_SetForceSmallPartsRenestingMode@8 @482 NONAME
CNS_SetForceSmallPartsRenestingMode@8 @483 NONAME
CNS_GetActivationCodeEx=CNS_GetActivationCodeEx@8 @484 NONAME
CNS_GetActivationCodeEx@8 @485 NONAME
CNS_SetPartCommonCutMaxBlockSizeXY=CNS_SetPartCommonCutMaxBlockSizeXY@20 @486 NONAME
CNS_SetPartCommonCutMaxBlockSizeXY@20 @487 NONAME
CNS_AddUnloadingDefectToSheet=CNS_AddUnloadingDefectToSheet@12 @502 NONAME
CNS_AddUnloadingDefectToSheet@12 @503 NONAME
Binary file not shown.