#ifndef CNS_TOOLING_H_ #define CNS_TOOLING_H_ #include "cns.h" #ifdef __cplusplus extern "C" { #endif /** * 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 tool path. */ CNS_EXPORT void CNS_API CNS_AddHoleInToolPath(CNS_PartPtr part, unsigned number_of_elements, const CNS_Element * elements); /** * 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); /** * 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, const CNS_Element * elements, double tool_diameter); /** * 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 } #endif #endif /* CNS_TOOLING_H_ */