int cvxCmHolderInsertAsTemplate
(
vxPath template_path,      /* I: template path */ 
vxName file_name,            /* I: file name */
vxName library_name,         /* I: library name */
vxName holder_name,            /* I: holder name */
int *idx_holder               /* O: holder index */
)
/*
DESCRIPTION:
Insert the holder from the library into CamPlan.

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

int cvxCmSpeedInsertAsTemplate
(
vxPath  template_path,   /* I: template path */ 
vxName  file_name,       /* I: file name */
vxName  library_name,    /* I: library name */
vxName  spdfd_name,      /* I: speed   name */
int    *idx_speed        /* O: speed index */
)
/*
DESCRIPTION:
Insert the speed from the library into CamPlan.

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

int cvxCmToolDelete
(
int idx_tool      /* I: index of the tool */
)
/*
DESCRIPTION:
Delete the tool in CamPlan.

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

int cvxCmToolGetAttr
(
int id,                  /* I: index of the tool */
evxCmToolAttr attr,      /* I: enumeration of tool attribute */
svxCmAttrValue *value   /* O: the values return; user needs to free the memory */
)
/*
DESCRIPTION:
Inquire the tool's attribute.
See cvxCmToolSetAttr.

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

int cvxCmToolInsert
(
evxCmToolType tltype,      /* I: tool type  */
evxCmToolSubType subtype,   /* I: sub type of tool */
int *idx_tool               /* O: index of the new tool */
)
/*
DESCRIPTION:
Insert a tool into active CamPlan.

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

int cvxCmToolInsertAsTemplate
(
vxPath template_path,      /* I: template path */ 
vxName file_name,            /* I: file name */
vxName library_name,         /* I: library name */
vxName tool_name,            /* I: tool name */
int *idx_tool               /* O: tool index */
)
/*
DESCRIPTION:
Insert the tool from the library into CamPlan.

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

int cvxCmToolSetAttr
(
int id,                  /* I: index of the tool */
evxCmToolAttr attr,      /* I: enumeration of tool attribute */
svxCmAttrValue *value   /* I: the values needed */
)
/*
DESCRIPTION:
Set the tool's attribute. 
"attr" can't be CM_TOOL_TYPE or CM_TOOL_SUBTYPE.
While "attr" is CM_TOOL_HOLDER, holder (depends on its name) is from active CAM plan 
or current Library or default Library in proper older.

"value->type"                 &     "value->cnt" depends on "attr", as follows:
ZW_CAM_ATTR_VALUE_TYPE_STRING       <=32     CM_TOOL_NAME
                                             CM_TOOL_ID
                                             CM_TOOL_HOLDER
ZW_CAM_ATTR_VALUE_TYPE_DOUBLE       1        CM_TOOL_LEN
                                             CM_TOOL_CUTTERDIAMETER
ZW_CAM_ATTR_VALUE_TYPE_INTEGER      1        CM_TOOLCHANGER_LOCATION
                                             CM_TOOLCHANGER_DIAMETER
                                             CM_TOOLCHANGER_HEIGHT

The following is a simple code to set tool name and length:

   void TestApi(void)
   -{
   svxCmAttrValue attr;
   int index=-1;
   char toolName[32]={"MillTool"};
   double toolLen=99.0;

   cvxCmToolInsert(CM_TOOL_TYPE_MILL, CM_TOOL_SUBTYPE_ENDNOSE, &index);
   if (index < 0) return;

   attr.type = ZW_CAM_ATTR_VALUE_TYPE_STRING;
   attr.cnt = 32;
   attr.data = (void *)toolName;
   cvxCmToolSetAttr(index, CM_TOOL_NAME, &attr);

   attr.type = ZW_CAM_ATTR_VALUE_TYPE_DOUBLE;
   attr.cnt = 1;
   attr.data = (void *)&toolLen;
   cvxCmToolSetAttr(index, CM_TOOL_LEN, &attr);

   return;
   -}

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________