int cvxAsmUpdateCompRef ( const char *OldRootName, /*I: the old root name of the target part */ const char *NewRootName /*I: the new root name of the target part */ ) /* DESCRIPTION: Traverse the assembly of the active part, find components that reference BinName and OldRootName, then replace the old reference (OldRootName) with the new one (NewRootName). Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxAssemCompVisAll ( int *nSize, /* o: number of int in ppath_mode */ int **ppath_mode /* o: sum,cnt,pick_path,mode,cnt,pick_path ,mode...*/ ) /* DESCRIPTION: Get all the component object visibility of active part and encode the pick path and mode. The caller is responsible for releasing the memory. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxAxisGetData ( int idAxis, /* I: Axis id*/ svxAxisData *Axis /* O: Axis data */ ) /* DESCRIPTION: Get the Axis data associated with the specified idAxis. NOTES: This interface can only retrieve datum data created by interface cvxPartAxisNew(). Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxAxisInqDir ( int idAxis, /* I: index of axis */ svxPoint *pPnt, /* O: start point of axis */ svxPoint *pDir /* O: direction of axis */ ) /* DESCRIPTION: Get the direction associated with the specified object (idAxis). Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxCSYSGetData ( int idCSYS, /* I: CSYS id*/ svxCSYSData *CSYS /* O: CSYS data */ ) /* DESCRIPTION: Get the CSYS data associated with the specified idCSYS, contained frame and Entity path. NOTES: This interface can only retrieve datum data created by interface cvxPartCSYSNew(). Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCfgTblInfosSet ( int Id, /* I: configuration id */ svxPartCfgInfo* info /* I: config table info that changed */ ) /* DESCRIPTION: Set config table infos by info and Id. Get Id by cvxPartInqCfgList; Get info by cvxPartInqConfigTableInfos; Multiple values for each row of configuration can be set at once. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxCompAddAngularCons ( svxEntPath *Ent1, /* I: pick-path of first entity (edge,curve,face,datum,point,datum axis) */ svxEntPath *Ent2, /* I: pick-path of second entity (edge,curve,face,datum,point,datum axis) */ svxConsData *consData, /* I: constraint custom data (NULL to use default value) */ int *idCons /* O: index of new constraint (NULL to ignore) */ ) /* DESCRIPTION: Use the function to create a angular constraint. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompAddCoincidentCons ( svxEntPath *Ent1, /* I: pick-path of first entity (edge,curve,face,datum,point,datum axis) */ svxPoint *Pnt1, /* I: coordinate of the coincidence point on the first entity (NULL to ignore) */ svxEntPath *Ent2, /* I: pick-path of second entity (edge,curve,face,datum,point,datum axis) */ svxPoint *Pnt2, /* I: coordinate of the coincidence point on the second entity (NULL to ignore) */ svxConsData *consData, /* I: constraint custom data (NULL to use default value) */ int *idCons /* O: index of new constraint (NULL to ignore) */ ) /* DESCRIPTION: Use the function to create a coincident constraint, the components will remain coincident. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompAddConcentricCons ( svxEntPath *Ent1, /* I: pick-path of first entity (edge,curve,face,datum,point,datum axis) */ svxPoint *Pnt1, /* I: coordinate of the coincidence point on the first entity (NULL to ignore) */ svxEntPath *Ent2, /* I: pick-path of second entity (edge,curve,face,datum,point,datum axis) */ svxPoint *Pnt2, /* I: coordinate of the coincidence point on the second entity (NULL to ignore) */ svxConsData *consData, /* I: constraint custom data (NULL to use default value) */ int *idCons /* O: index of new constraint (NULL to ignore) */ ) /* DESCRIPTION: Use the function to create a concentric constraint. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompAddDistanceCons ( svxEntPath *Ent1, /* I: pick-path of first entity (edge,curve,face,datum,point,datum axis) */ svxPoint *Pnt1, /* I: coordinate of the coincidence point on the first entity (NULL to ignore) */ svxEntPath *Ent2, /* I: pick-path of second entity (edge,curve,face,datum,point,datum axis) */ svxPoint *Pnt2, /* I: coordinate of the coincidence point on the second entity (NULL to ignore) */ svxConsData *consData, /* I: constraint custom data (NULL to use default value) */ int *idCons /* O: index of new constraint (NULL to ignore) */ ) /* DESCRIPTION: Use the function to create a distance constraint. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompAddFrameCons ( svxEntPath *Datum1, /* I: pick-path of first datum (datum plane, datum CSYS) */ svxEntPath *Datum2, /* I: pick-path of second datum (datum plane, datum CSYS) */ svxConsData *consData, /* I: constraint custom data (NULL to use default value) */ int *idCons /* O: index of new constraint (NULL to ignore) */ ) /* DESCRIPTION: Use the function to create a frame constraint. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompAddLockCons ( svxEntPath *Comp1, /* I: pick-path of first component */ svxEntPath *Comp2, /* I: pick-path of second component */ svxConsData *consData, /* I: constraint custom data (NULL to use default value) */ int *idCons /* O: index of new constraint (NULL to ignore) */ ) /* DESCRIPTION: Use the function to create a lock constraint. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompAddMiddleCons ( svxEntPath *BaseEnt1, /* I: pick-path of first base entity (face,datum) */ svxEntPath *BaseEnt2, /* I: pick-path of second base entity (face,datum) */ int nCenter, /* I: number of center entities (1 or 2) */ svxEntPath *CenterEnts, /* I: list of center entities (edge,curve,face,datum) */ svxConsData *consData, /* I: constraint custom data (NULL to use default value) */ int *idCons /* O: index of new constraint (NULL to ignore) */ ) /* DESCRIPTION: Use the function to create a middle constraint. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompAddParallelCons ( svxEntPath *Ent1, /* I: pick-path of first entity (edge,curve,face,datum,point,datum axis) */ svxEntPath *Ent2, /* I: pick-path of second entity (edge,curve,face,datum,point,datum axis) */ svxConsData *consData, /* I: constraint custom data (NULL to use default value) */ int *idCons /* O: index of new constraint (NULL to ignore) */ ) /* DESCRIPTION: Use the function to create a parallel constraint. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompAddPerpendicularCons ( svxEntPath *Ent1, /* I: pick-path of first entity (edge,curve,face,datum,point,datum axis) */ svxEntPath *Ent2, /* I: pick-path of second entity (edge,curve,face,datum,point,datum axis) */ svxConsData *consData, /* I: constraint custom data (NULL to use default value) */ int *idCons /* O: index of new constraint (NULL to ignore) */ ) /* DESCRIPTION: Use the function to create a perpendicular constraint. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompAddSymmetryCons ( svxEntPath *Plane, /* I: pick-path of plane (face,datum) */ svxEntPath *SymEnt1, /* I: pick-path of first symmetric entity(edge,curve,face,datum,point,datum axis) */ svxEntPath *SymEnt2, /* I: pick-path of second symmetric entity(edge,curve,face,datum,point,datum axis) */ svxConsData *consData, /* I: constraint custom data (NULL to use default value) */ int *idCons /* O: index of new constraint (NULL to ignore) */ ) /* DESCRIPTION: Use the function to create a symmetry constraint. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompAddTangentCons ( svxEntPath *Ent1, /* I: pick-path of first entity (edge,curve,face,datum,point,datum axis) */ svxEntPath *Ent2, /* I: pick-path of second entity (edge,curve,face,datum,point,datum axis) */ svxConsData *consData, /* I: constraint custom data (NULL to use default value) */ int *idCons /* O: index of new constraint (NULL to ignore) */ ) /* DESCRIPTION: Use the function to create a tangent constraint. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompBomExcludedGet ( svxEntPath EntPath, /* I: component pick path */ int *exclude /* O: the component Exclude state */ ) /* DESCRIPTION: Outputs the Exclude state of specified component. 1-excluded 0-included. The 3D BOM table allows user to exclude and include components. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxCompCfgIdGet ( const svxEntPath* path, /* I: pick path of component */ int* idCfg /* O: config id */ ) /* DESCRIPTION: Get the id of the specified component configuration. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxCompCfgIdSet ( const svxEntPath* path, /* I: pick path of component */ int idCfg /* I: config id */ ) /* DESCRIPTION: Set the id of the specified component configuration. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxCompEditPart ( int idComp /* I: id of component in active file */ ) /* DESCRIPTION: Activate the part instanced by the specified component for editing. It is assumed the component (idComp) resides in the active assembly. Use cvxPartExit() to exit the part to its parent assembly part. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompEditPartByPath ( const svxEntPath *compPath /* I: id of component in active file */ ) /* DESCRIPTION: Activate the part instanced by the specified component path for editing. It is assumed the component (compPath) resides in the active assembly. Use cvxPartExit() to exit the part to its parent assembly part. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompExtract ( int idShape, /* I: id of shape to extract */ svxMatrix *Frame, /* I: local coordinate frame to map shape into part space */ vxLongName Name, /* I: name of new part/component */ int NewFile, /* I: 1 to put new part in a new file; 0 for active file */ evxResponse Overwrite, /* I: response to "overwrite existing part?" query */ int *idComp /* O: id of new component (NULL to ignore) */ ) /* DESCRIPTION: Extracts a shape from the active part into a new part that is instanced back into the active part as a component (i.e. converts a shape into a component). If the shape was merged from a pre-existing component, "Frame" and "Name" are ignored and the shape is extracted to the original component using its local frame and name. If "Frame" is input as NULL, the identity matrix is used. If "Name" is input as NULL, a default name is assigned to the component. If "idComp" is not NULL, the id of the new component is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompFaceAtGet ( const svxEntPath *CompPath, /* I: pick path of component */ svxFaceAt *At /* O: face attribute */ ) /* DESCRIPTION: Outputs display attributes of the specified component. Attributes are grabbed from the first face in the component. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxCompFaceAtSet ( int Count, /* I: number of component */ svxEntPath *CompPath, /* I: list of pick path of components */ svxFaceAt *At /* I: face attribute */ ) /* DESCRIPTION: Changes display attributes of the specified components. It is assumed the specified components reside in the active part. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxCompFind ( evxFaceTrim Trim, /* I: face trim option */ svxAxis *Ray, /* I: ray defined by a point and a direction */ double Dist, /* I: distance from start of ray along direction of ray */ int SkipBlank, /* I; 1 to skip blanked components; else 0 */ int *Count, /* O: number of components */ int **Comps /* O: list of component id's */ ) /* DESCRIPTION: Outputs a list of indices of the components that belong the active part and are intersected by the specified ray. Only intersections within "Dist" of the ray's start point (Ray->Pnt) are considered. The "Trim" option is used to determine what portions of the component faces are checked against the ray. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompGetRefPart ( int *Count, /* O: the number of names in each output array */ vxLongName **FileName, /* O: array of "*Count" files referenced by active part */ vxLongName **RootName /* O: array of "*Count" part names referenced by active part */ ) /* DESCRIPTION: Get the file names and part names in the active assembly or part. This function determines the number of unique parts referenced by the active assembly or part and assigns that value to *Count, then allocates arrays of that size for BinName and RootName, and fills them with the referenced parts' file names and root names, respectively. The caller is responsible for freeing the output arrays with the cvxMemFree function. Return 0 if successful, otherwise return 1 if an error occurs. If an error occurs, *Count will be 0, but either or both BinName and RootName might be a non-NULL pointer to an array that the caller must free. */ ________________________________________________________________________________ void cvxCompHighlight ( svxEntPath*CompPath, /* I: pick-path of component */ svxColor *color /* I: color of object to display (NULL to use default)*/ ) /* DESCRIPTION: Highlights the specified component. */ ________________________________________________________________________________ int cvxCompIferCheck ( svxEntPath *BaseComp, /* I: pick path of the first Component, can be NULL */ svxEntPath *ChkComp, /* I: pick path of the second Component, can be NULL */ int SubAsmAsWhole, /* I: 1:sub-assembly as a whole, don't check interference inside sub-assembly 0:check interference inside sub-assembly */ int IgnoreHidden, /* I: whether to ignore the hidden components within the sub-assembly */ int *IferCnt, /* O: number of interference */ svxIferChkResData **IferResults /* O: pointer to list of interference result data */ ) /* DESCRIPTION: Check if there is interference between the input components and output the interference result. all components in current assembly are checked when both of the input component paths are NULL. The memory referenced by "IferResults" is allocated by this function. The calling procedure is responsible to free it (cvxMemFree((void**)IferResults)). Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompInqConsState ( int idComp, /* I: index of component or shape */ evxConsState *consState /* O: constraint state of component */ ) /* DESCRIPTION: Get the constraint state of specified component. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompInqConstraints ( svxEntPath *CompPath, /* I: pick-path of component */ int *count, /* O: number of constraints */ int **cons /* O: list of constraint ids */ ) /* DESCRIPTION: Outputs a list of indices of the constraints associated with the specified component. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompInqOpenShapes ( svxEntPath *Comp, /* I: pick path of the component/shape in the component, NULL to check all components */ int IgnoreHide, /* I :whether to ignore hidden components and hidden shapes */ int *numOpenShps, /* O: number of open shapes */ svxEntPath **ShpPaths /* O: path of open shapes */ ) /* DESCRIPTION: Get the open shapes in input components or shape. return 1 if error, else 0. */ ________________________________________________________________________________ int cvxCompInqPart ( int idComp, /* I: id of component in active file */ char *File, /* O: name of the file instanced by the component */ int nFileBytes, /* I: string size of file name */ char *Part, /* O: name of the part instanced by the component */ int nPartBytes /* I: string size of part name */ ) /* DESCRIPTION: Gets the names of the file and part referenced by the specified component. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompInqPartByPath ( svxEntPath *CompPath, /* I: pick path of component in active file */ vxLongName fileName, /* O: name of the file instanced by the component */ vxLongName partName /* O: name of the part instanced by the component */ ) /* DESCRIPTION: Gets the names of the file and part referenced by the pick path of specified component. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompInqPaths ( svxEntPath *CompPath, /* I: pick-path to start traversal, NULL to traverse current active part */ int Depth, /* I: depth of traversing, -1 to traverse all pick paths */ int IgnoreHidden, /* I: whether to ignore the hidden and suppressed components */ int *PathCnt, /* O: number of component paths */ svxEntPath **lstPath /* O: list of component paths */ ) /* DESCRIPTION: Traverse all pick-paths of components start with CompPath and store them into lstPath. The memory referenced by "lstPath" is allocated by this function. The calling procedure is responsible to free it (cvxMemFree((void**)lstPath)). Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompInqRenderMode ( svxEntPath *CompPath, /* I: pick path of component */ evxRenderMode *RenderMode /* O: render mode */ ) /* DESCRIPTION: Get component render mode. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxCompIns ( svxCompData *Comp, /* I: component data */ int *idComp /* O: id of new component */ ) /* DESCRIPTION: Inserts a new component int the active part. If "idComp" is not NULL, the id of the new component is output. If this function is called from a custom history operation, the component will be associated with the custom operation and will be deleted automatically when the custom operation is regenerated and re-inserts the component. When this function is called from within a custom history operation, if "idComp" is not NULL and "*idComp" is a value greater than 0, that value will be encoded in the component's persistent label to differentiate it from other components added by the custom operation. After the value of "idComp" is used to label the new component, the database id of the new component will be output via "idComp". Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompIsUnplaced ( int idx_Comp, /* I: index of component id */ int* isUnplaced /* O: component unplaced state*/ ) /* DESCRIPTION: Get component unplaced state. return 1 if error, else 0. */ ________________________________________________________________________________ int cvxCompIsUnplacedByPath ( const svxEntPath* path, /* I: pick path of component */ int* isUnplaced /* O: 1 is unplaced, 0 is not unplaced */ ) /* DESCRIPTION: Get component unplaced state by pick-path. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxCompIsectShpChk ( svxEntPath *BaseShpPath, /* I: the first shape in a component */ svxEntPath *OpShpPath, /* I: the second shape in other component */ int *fInterfer /* O: if found interference, output V_TRUE, otherwise output V_FALSE */ ) /* DESCRIPTION: Determine exist or not exist intersection between the input two shapes which come from two components. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompIsectShpChk2 ( svxEntPath *BaseShpPath, /* I: the first shape in a component */ svxEntPath *OpShpPath, /* I: the second shape in other component*/ int fClosedChk, /* I: option to control whether check the open shell 1 is excluding the open shell. otherwise is 0 */ int *fInterfer /* O: if found interference, output V_TRUE, otherwise output V_FALSE */ ) /* DESCRIPTION: Determine exist or not exist intersection between the input two shapes which come from two components. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompIsectShpShp ( const svxEntPath* basePath, /* I: path of the first shape */ const svxEntPath* opPath, /* I: path of the second shape */ evxFaceTrim trim, /* I: face trim option */ int* count, /* O: count of "curves" */ svxCurve** curves /* O: list of intersection curves */ ) /* DESCRIPTION: Gets the intersecting curves of two shapes(comps). Return : 1 is error, 2 is basePath is the same as opPath. 3 is not intersect. 0 is success,intersection exists. */ ________________________________________________________________________________ int cvxCompMerge ( evxBoolType Combine, /* I: combination method */ int idComp, /* I: component id (0 for last feature) */ int *idShape /* O: shape id (pass in NULL to ignore) */ ) /* DESCRIPTION: Merges a component with the active part using the specified combination method. Only the component's top-level geometry is merged. Sub-components of the component are not merged. Use cvxCompShift() to merge the component and its sub-components. If "idShape" is not NULL, the id of the last shape created by merging the component is output. "isShape=0" is output if no shape was created by the merge. Note that merging a component could add multiple shapes, or other types of geometry, to the active part. If there is a possibility that the merge created more than a single shape, use cvxEntNewList() to retrieve the new entities created by the merge. This function can be overloaded to force merging of component dimensions by inputting the component id with a negative sign. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompMerge2 ( evxBoolType Combine, /* I: combination method */ int idComp, /* I: component id (0 for last feature) */ int MergeDim, /* I: 1 to merge component part dimensions into active part, else 0 */ int MergeWire, /* I: 1 to merge component part wireframe geometry into active part, else 0 */ int *idShape /* O: shape id (pass in NULL to ignore) */ ) /* DESCRIPTION: Merges a component with the active part using the specified combination method. Only the component's top-level geometry is merged. Sub-components of the component are not merged. Use cvxCompShift() to merge the component and its sub-components. If "idShape" is not NULL, the id of the last shape created by merging the component is output. "isShape=0" is output if no shape was created by the merge. Note that merging a component could add multiple shapes, or other types of geometry, to the active part. If there is a possibility that the merge created more than a single shape, use cvxEntNewList() to retrieve the new entities created by the merge. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompRegenSet ( int idComp, /* I: component entity id */ int Regen /* I: 1 to enable component regen; 0 to disable it */ ) /* DESCRIPTION: Flags the input component to regen (Regen=1) or not regen (Regen=0) the part it instances when the it's parent part is regenerated. The specified component (idComp) should belong to the active part. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompSetPart ( int idComp, /* I: id of component in active file */ vxLongName File, /* I: name of the file containing the part to instance */ vxLongName Part /* I: name of the part to instance from "File" */ ) /* DESCRIPTION: Changes the part instanced by the specified component in the active part. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompSetRenderMode ( svxEntPath *CompPath, /* I: pick path of component */ evxRenderMode RenderMode /* I: render mode */ ) /* DESCRIPTION: Set component render mode. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxCompShapeInqOpenEdges ( svxEntPath *ShpPath, /* I: pick path of the shape in the component */ int *numEdg, /* O: number of open edges */ svxEntPath **edgPaths /* O: path of open edges */ ) /* DESCRIPTION: Get the open edges of the input shape, return 1 if error, else 0. */ ________________________________________________________________________________ int cvxCompShift ( int idComp /* I: component id */ ) /* DESCRIPTION: Moves sub-components of a selected component up to the active part. Also merges top-level geometry and/or alignments associated with the specified component (idComp) into the active part. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompSuppress ( int idComp, /* I: component id */ int suppress /* I: 1-suppress, 0-unsuppress */ ) /* DESCRIPTION: Suppress or unsuppress the specified component. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompSuppressGet ( int idComp, /* I: component id */ int *suppress /* O: the component suppress state */ ) /* DESCRIPTION: Outputs the suppress state of specified component. 1-suppressed 0-unsuppressed. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ void cvxCompUnHighlight ( svxEntPath*CompPath /* I: pick-path of component */ ) /* DESCRIPTION: Un-Highlight the specified component. */ ________________________________________________________________________________ int cvxCompUserAtDel ( svxEntPath *Comp, /* I: pick path of component */ int Count, /* I: number of user attributes (0 to delete all user attributes) */ svxAttribute* UserAt /* I: list of user attributes (NULL to delete all user attributes) */ ) /* DESCRIPTION: Delete user attribute of the specified component in the current active file. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompUserAtGet ( svxEntPath *Comp, /* I: pick path of component */ int *Count, /* O: number of user attributes */ svxAttribute** UserAt /* O: list of user attributes */ ) /* DESCRIPTION: Retrieves user attribute data of the specified component in the current active file. The calling procedure MUST deallocate the output list with cvxMemFree. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompUserAtSet ( svxEntPath *Comp, /* I: pick path of component */ int Count, /* I: number of user attributes */ svxAttribute* UserAt /* I: list of user attributes */ ) /* DESCRIPTION: Set user attribute data of the specified component in the current active file. a new user attribute is inserted if the user attribute for the specified label does not exist. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompVisGet ( svxEntPath *CompPath, /* I: pick-path of component */ int *Vis /* O: 1-visible, 0-blank */ ) /* DESCRIPTION: Get the visibility of specified component. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxCompVisSet ( svxEntPath *CompPath, /* I: pick-path of component */ int Vis /* I: 1-visible, 0-blank */ ) /* DESCRIPTION: Set the visibility of specified component. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxConsInqConsData ( int idCons, /* I: index of common constraint */ svxConsData *ConsData /* O: data of common constraint */ ) /* DESCRIPTION: Get custom data of the specified constraint. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxConsInqRefEnts ( int idCons, /* I: index of constraint */ int *count, /* O: number of entities associated with constraint */ svxEntPath **entPaths /* O: list of entity paths associated with constraint */ ) /* DESCRIPTION: Outputs a list of pick path of entities associated with the specified constraint. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxConsInqType ( int idCons, /* I: index of constraint */ evxConsType *consType /* O: constraint type */ ) /* DESCRIPTION: Get the constraint type of specified constraint. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxConsRedefine ( int idCons /* I: index of constraint */ ) /* DESCRIPTION: Launches interactive redefinition of the specified assembly constraint. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxDimInqDimBundles ( int idDim, /* I: index of dimension */ int *Count, /* O: number of dimension bundles in dimension */ int **idBundles /* O: list of index of dimension bundles */ ) /* DESCRIPTION: Outputs a list of indices of dimension bundles in specified dimension. The calling procedure MUST deallocate the output list with cvxMemFree. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxDimInqPos ( int idDim, /* I: id of dimension */ svxPoint *pPos /* O: stretchable point coordinate */ ) /* DESCRIPTION: This function is to inquire the point which this dimension points to, The parent of dimension should be PMI in part. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxDimInqState ( int idDim, /* I: the index of dimension */ evxDimState *state /* O: the state of specified dimension */ ) /* DESCRIPTION: Get the state(evxDimState) of specified dimension. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxDimInqText ( int idDim, /* I: id of dimension */ int subDim, /* I: serial number of sub dimension(0,1,2...), refer to evxHoleDimDataItem for sub-data item of hole dimension */ char **pStr /* O: output destination text */ ) /* DESCRIPTION: This function is to inquire dimension text content for the dimension with index idDim. The calling procedure MUST deallocate the output string with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxDimInqTextType ( int idDim, /* I: index of dimension or dimension bundle */ int *Type /* O: text type (0-value, 1-user text, 2-override value) */ ) /* DESCRIPTION: Get current user text type of specified dimension. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxDimInqTxtPnt ( int idDim, /* I: index of dimension */ svxPoint *TextPnt /* O: dimension text origin */ ) /* DESCRIPTION: Get dimension text point location of specified dimension. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxDimInqType ( int idDim, /* I: the index of dimension */ evxDimType *type /* O: the type of specified dimension */ ) /* DESCRIPTION: Get the type(evxDimType) of specified dimension. It can't get the corresponding type if "*type = VX_DIM_LAST". Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxDimInqVar ( int idDim, /* I: id of dimension or dimension bundle to inquire */ svxVariable* Var /* O: the variable of specified dimension */ ) /* DESCRIPTION: Outputs the variable that belong to the specified id. The parent of dimension can be part,sketch or drawing. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxDimIsRadius ( int idDim, /* I: the index of dimension */ int* isRadius /* O: 1 is radius, 0 is diameter */ ) /* DESCRIPTION: Determine whether the label is diameter or radius. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxDimModTextType ( int idDim, /* I: index of dimension or dimension bundle */ int Type, /* I: text type (0-value, 1-user text, 2-override value) */ char* text /* I: text string or override expression (NULL to ignore when Type=0) */ ) /* DESCRIPTION: Set user text type and text string or override expression of specified dimension. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxDimModTxt ( int idDim, /* I: id of dimension */ int subDim, /* I: number to indicate which sub-dimension to be modified.*/ /* The first sub-dimension starts from 0 */ char *pStr /* I: new destination text */ ) /* DESCRIPTION: This function is to modify dimension text for the dimension with index idDim. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxDimModTxtPnt ( int idDim, /* I: index of dimension or dimension bundle */ int center, /* I: center flag (1-center, 0-not center) */ svxPoint *TextPnt /* I: new dimension text origin */ ) /* DESCRIPTION: This function is to modify dimension text point location of specified dimension. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxDimValMod ( int idDim, /* I: the index of the dimension object*/ char* exp /* I: the expression of the dimension object */ ) /* DESCRIPTION: Modify the value of the specified dimension. The parent of dimension can be part or sketch. If the dimension belongs to a block and the expression is referenced by another file or current part, you can not use the expression name as the second parameter directly, use the correct form of the expression reference(File Name:Root Name:Expression or Root Name:Expression). Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxDimValModNoUpdate ( int idDim, /* I: the index of the dimension object*/ char* exp /* I: the expression of the dimension object */ ) /* DESCRIPTION: Modify the value of the specified dimension. it is similar to cvxDimValMod, the difference is no update/eval/redraw in this function so as to speed up. It needs to call cvxDimValMod for the last dim for update all previous changes. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxEqGetDescById ( int idEqn, /* I: object id */ char* desc, /* I/O: output of description */ int size /* I: size of description */ ) /* DESCRIPTION: Looking for an equation object(VEQ) whose variable id matches the input id. Output description of the equation object with variable "desc". Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxEqGetExpByName ( char* name, /* I: object name */ char* exp, /* IO: output of expression */ int size /* I: size of expression */ ) /* DESCRIPTION: Looking for an equation object(VEQ) whose variable name matches the input name. Output expression of the equation object with variable "exp". Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxEqRegen ( int idEqn /* I: -1 to regen all equation; equation id to regen specified equation */ ) /* DESCRIPTION: Regenerate all/specified equations. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxEqSetDescById ( int idEqn, /* I: equation id */ char* desc /* I: description that defines the equation */ ) /* DESCRIPTION: Update the specified equation's description without regard for how the equation was generated. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxFtrIsSubPart ( int idFtr /* I: feature id */ ) /* DESCRIPTION: Determine whether the feature is a sub-part. Returns: -1 if function fails; 1 if the feature is sub-part; 0 if the feature is not sub-part. */ ________________________________________________________________________________ int cvxHistBackup ( void ) /* DESCRIPTION: Backs up the current model state in a history operation. Saving model states in the history can speed up history rollback and regen. Returns 1 if error, else 0. */ ________________________________________________________________________________ void cvxHistDisable (void) /* DESCRIPTION: Disable history tree update. The application that uses this function is ALWAYS responsible for re-enabling history tree update using cvxHistEnable(). */ ________________________________________________________________________________ void cvxHistEnable (void) /* DESCRIPTION: Re-enable history tree update. Calls to this function MUST ALWAYS be paired with a prior call to cvxHistDisable(). */ ________________________________________________________________________________ int cvxHistRedefine ( vxName Operation /* I: name of history operation */ ) /* DESCRIPTION: Launches interactive redefinition of the specified history operation. Returns 1 if error, else 0. */ ________________________________________________________________________________ int cvxHistSkipTo ( char *Expression, /* I: conditional expression (see documentation of "Skip To" command) */ vxName Operation, /* I: name of history operation */ int *idOp /* I: id of history operation created by this function (NULL to ignore) */ ) /* DESCRIPTION: Logs a history operation that will cause history replay to skip to the specified operation if the specified conditional expression evaluates to a non-zero number (i.e. TRUE). If it evaluates to zero (i.e. FALSE), history execution continues without skipping anything. Returns 1 if error, else 0. */ ________________________________________________________________________________ int cvxInstPartAsShp ( const svxCompData *Comp /* I: component data */ ) /* DESCRIPTION: Insert the specified part at the specified location as shape. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxInstShpGetMatrix ( int idShape, /* I: shape id */ svxMatrix *Matrix /* O: transformation matrix */ ) /* DESCRIPTION: Outputs the transformation matrix associated with the specified shape, which was inserted from a part by command "CdInstPartAsShp". Now this function is just used for Misumi modify shape. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxLibPartAdjust ( int idComp, /*I: the index of component*/ const vxLongName File, /*I: the file name (include the file path)*/ const vxLongName Part, /*I: the Root name*/ const char *ValStr, /*I: string for the selecet value, Like this A,20;B,30;C,40*/ const char *InstanceName /*I: the instance name, my be null*/ ) /* DESCRIPTION: Change component part use the method like part library Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxLibPartIns ( const svxCompData *Comp, /* I: component data */ const char *InstanceName, /* I: the instance name, my be null*/ const char *ValStr, /* I: string for the selecet value, Like this A,20;B,30;C,40*/ int fFileType, /* I: fFileType is the flag to create the part instance as new root(0) or new file(1, 2 if read-only), ignored if fInsShape is 1.*/ int fInsShape, /* I: insert as shape*/ int *idComp /* O: id of new component, or new feature(fInsShape is 1) */ ) /* DESCRIPTION: Insert the standard part from reuse library to the current assembly/part as component/shape. The "ValStr" given some parameter value to generate the instance. The name for the parameters can be the really name or the description name. The value should be the value in excel or in config table for the key and normal parameter. For custom value, it can be other value not in the excel or in config table. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartActiveAsLCS ( int id /* I: id of datum/CSYS*/ ) /* DESCRIPTION: Active the specified datum/CSYS as the LCS. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartAddAngleDim ( int idEnt1, /* I: id of the first entity */ int idEnt2, /* I: id of the second entity */ svxPoint *TextPnt, /* I: point coordinate of text placement point */ int idPlane, /* I: id of insertion plane (datum or planar face), 0 to use default view plane */ int *idDim /* O: id of the dimension created (input NULL to ignore) */ ) /* DESCRIPTION: Create a PMI angle dimension between the specified two entities in part. Supported entities include two points, a point and a line,two parallel lines, two parallel faces. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartAddArcDim ( int idEnt, /* I: id of the first entity */ const char *text, /* I: input user text */ svxPoint *TextPnt, /* I: point coordinate of text placement point */ int idPlane, /* I: id of insertion plane (datum or planar face), 0 to use default view plane */ int *idDim /* O: id of the dimension created (input NULL to ignore) */ ) /* DESCRIPTION: Create a PMI arc dimension between the specified entity in part. Supported entities include circle or face. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartAddChamferDim ( int idEnt1, /* I: id of the first entity */ int idEnt2, /* I: id of the second entity */ svxPoint *TextPnt, /* I: point coordinate of text placement point */ int idPlane, /* I: id of insertion plane (datum or planar face), 0 to use default view plane */ int *idDim /* O: id of the dimension created (input NULL to ignore) */ ) /* DESCRIPTION: Create a PMI chamfer dimension between the specified two entities in part. Supported entities include two points, a point and a line,two parallel lines, two parallel faces. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartAddCoorDim ( svxPoint *LeaderPnt, /* I: point coordinate of leader point, if idParent is a point, LeaderPnt set to NULL. */ int idParent, /* I: id of the parent entity of the leader point, if no parent entity, idParent is equal to 0 */ svxPoint *TextPnt, /* I: point coordinate of text placement point */ int idDatum, /* I: Specifies a datum plane to define a local coordinate frame. 0 to use default datum */ int idPlane, /* I: id of insertion plane (datum or planar face), 0 to use current view plane */ int *idDim /* O: id of the dimension created (input NULL to ignore) */ ) /* DESCRIPTION: Create a PMI coordinate dimension to specifies leader point. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartAddDatumDim ( int idEnt, /* I: id of the first entity */ svxPoint *leadPnt, /* I: point coordinate of text placement point */ svxPoint *TextPnt, /* I: point coordinate of text placement point */ char *text, /* I: datum label name */ int idPlane, /* I: id of insertion plane (datum or planar face), 0 to use default view plane */ int *idDim /* O: id of the dimension created (input NULL to ignore) */ ) /* DESCRIPTION: Create a PMI datum feature dimension for the specified entity in part. Supported entities include edge and face. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartAddDatumTargetDim ( int idEnt, /* I: id of the first entity */ int radRype, /* I: type of DatumT dimension */ double diameter, /* I: diameter */ double width, /* I: width */ double height, /* I: height */ svxPoint *leadPnt, /* I: point coordinate of text placement point */ svxPoint *TextPnt, /* I: point coordinate of text placement point */ char *text, /* I: datum label name */ int idPlane, /* I: id of insertion plane (datum or planar face), 0 to use default view plane */ int *idDim /* O: id of the dimension created (input NULL to ignore) */ ) /* DESCRIPTION: Create a PMI datum target dimension for the specified entity in part. Supported entities include edge and face. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartAddFcsDim ( int idEnt, /* I: id of the first entity */ svxPoint *leadPnt, /* I: point coordinate of text placement point */ svxPoint *TextPnt, /* I: point coordinate of text placement point */ char *text, /* I: datum label name */ int idPlane, /* I: id of insertion plane (datum or planar face), 0 to use default view plane */ int *idDim /* O: id of the dimension created (input NULL to ignore) */ ) /* DESCRIPTION: Create a PMI datum feature dimension for the specified entity in part. Supported entities include edge and face. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartAddLabelDim ( int idEnt, /* I: id of the first entity */ svxPoint *leadPnt, /* I: point coordinate of text placement point */ svxPoint *TextPnt, /* I: point coordinate of text placement point */ char *text, /* I: datum label name */ int idPlane, /* I: id of insertion plane (datum or planar face), 0 to use default view plane */ int *idDim /* O: id of the dimension created (input NULL to ignore) */ ) /* DESCRIPTION: Create a PMI label dimension for the specified entity in part. Supported entities include edge and face. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartAddLineDim ( int idEnt1, /* I: id of the first entity */ int idEnt2, /* I: id of the second entity */ svxPoint *TextPnt, /* I: point coordinate of text placement point */ int idPlane, /* I: id of insertion plane (datum or planar face), 0 to use default view plane */ int *idDim /* O: id of the dimension created (input NULL to ignore) */ ) /* DESCRIPTION: Create a PMI linear dimension between the specified two entities in part. Supported entities include two points, a point and a line,two parallel lines, two parallel faces. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartAddRadDim ( int idEnt, /* I: id of the first entity */ int radRype, /* I: type of radius dimension */ const char *text, /* I: input user text */ svxPoint *TextPnt, /* I: point coordinate of text placement point */ int idPlane, /* I: id of insertion plane (datum or planar face), 0 to use default view plane */ int *idDim /* O: id of the dimension created (input NULL to ignore) */ ) /* DESCRIPTION: Create a PMI radius dimension between the specified entity in part. Supported entities include circle or face. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartAddSymSrfDim ( int idEnt, /* I: id of the first entity */ svxPoint *leadPnt, /* I: point coordinate of text placement point */ svxPoint *TextPnt, /* I: point coordinate of text placement point */ svxRoughTexts *textGrp, /* I: Roughness PMI text define */ int idPlane, /* I: id of insertion plane (datum or planar face), 0 to use default view plane */ int *idDim /* O: id of the dimension created (input NULL to ignore) */ ) /* DESCRIPTION: Create a PMI surface finish dimension for the specified entity in part. Supported entities include edge and face. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartAddSymmetryDim ( svxPntOnEnt EntId, /* I: id of the entity */ svxPntOnEnt CenterLineId, /* I: id of the entity Center Line */ svxPntOnEnt TextPnt, /* I: point coordinate of text placement point */ int idPlane, /* I: id of insertion plane (datum or planar face), 0 to use default view plane */ int* idDim /* O: id of the dimension created (input NULL to ignore) */ ) /* Create a symmetric annotation based on entity and a center line. Supported entities include two points, a point and a line,two parallel lines, two parallel faces. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartAlign ( svxAlign *Align /* I: alignment constraint */ ) /* DESCRIPTION: Creates an alignment constraint between two shapes or components. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartAnchor ( int idEntity /* I: component or shape id in active part */ ) /* DESCRIPTION: Anchors the specified component or shape so that it does not move when alignment constraints are created between it and another component/shape. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartArc3pt ( svxPoint *Start, /* I: start point */ svxPoint *End, /* I: end point */ svxPoint *Mid, /* I: mid (i.e. through) point */ int *idEnt /* O: id of new 3D arc entity */ ) /* DESCRIPTION: Adds a 3D arc to the active part. If "idEnt" is not NULL, the id of the new arc entity is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartArcRad ( svxMatrix *Plane, /* I: insertion plane */ double Radius, /* I: radius (mm) */ double Start, /* I: start angle (deg) - CCW from X axis */ double End, /* I: end angle (deg) - CCW from X axis */ int *idEnt /* O: id of new 2D circle entity */ ) /* DESCRIPTION: Adds a 3D arc to the active part. The arc lies on the specified plane with its center at the plane's origin and its start/end angles measured CCW from the plane's X axis. If "idEnt" is not NULL, the id of the new entity is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartAtGet ( vxLongName Name, /* I: name of part in active file */ svxPartAttribute *At /* I: part attribute data */ ) /* DESCRIPTION: Retrieves attribute data from the specified part in the active file. If "Name" is NULL or an empty string, the active target part is used. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartAtItemDel ( evxAtItemId itemId, /* I: item id */ vxLongName label /* I: lable of item attribute */ ) /* DESCRIPTION: Delete the attribute of specified item. If the itemId = VX_AT_USER, the label can not be NULL and the attribute will be delete, otherwise it will set the data of At to NULL. The itemId includes part items of evxAtItemId(VX_AT_USER~VX_AT_HEIGHT). Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartAtItemDesGet ( evxAtItemId itemId, /* I: attribute item id */ char* AtLable, /* I: attribute item name */ char* AtDes, /* O: attribute item description */ int nBytes /* I: string size of attribute item description */ ) /* DESCRIPTION: Get the description of the specified attribute item. If the itemId = VX_AT_USER, the parameter AtLable can not be NULL. The itemId includes part items of evxAtItemId(VX_AT_USER~VX_AT_HEIGHT). Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartAtItemDesSet ( evxAtItemId itemId, /* I: attribute item id */ char* AtLable, /* I: attribute item name */ char* AtDes /* I: attribute item description */ ) /* DESCRIPTION: Set the description of the specified attribute item. If the itemId = VX_AT_USER, the parameter AtLable can not be NULL. The itemId includes part items of evxAtItemId(VX_AT_USER~VX_AT_HEIGHT). Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartAtItemGet ( evxAtItemId itemId, /* I: item id */ svxAttribute *At /* I/O: part item attribute */ ) /* DESCRIPTION: Outputs the specified attribute from the active part. The itemId includes part items of evxAtItemId (VX_AT_USER~VX_AT_HEIGHT). When itemId is VX_AT_USER, the name of the user-defined attribute must be assigned to At->label before calling this function. For all other itemId values, At->label can be an empty string (At->label[0]=0) when this function is called. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartAtItemGetInFile ( vxLongName File, /* I: object file name (File[0]=0 or NULL for active file) */ vxLongName Root, /* I: root object name (Root[0]=0 or NULL for active target object) */ evxAtItemId itemId, /* I: item id */ svxAttribute *At /* I/O: part item attribute */ ) /* DESCRIPTION: Outputs an attribute from a specified part. The itemId includes part items of evxAtItemId (VX_AT_USER~VX_AT_HEIGHT). When itemId is VX_AT_USER, the name of the user-defined attribute must be assigned to At->label before calling this function. For all other itemId values, At->label can be an empty string (At->label[0]=0) when this function is called. If the specified file is not already open, this function will open it to access the attribute, and will then close the file. If you want to keep the file open, use the cvxFileKeep function, before calling this function, to set a flag that prevents cvxPartAtItemSetInFile and cvxPartAtItemGetInFile from closing the files that they open. (Files that are already open before cvxPartAtItemSetInFile or cvxPartAtItemGetInFile is called are never closed by these functions.) Keeping files open is a more efficient way to access multiple attributes in a file, but you must remember to call cvxFileKeep again to reset the flag after you have finished your calls to cvxPartAtItemGetInFile and cvxPartAtItemSetInFile, and you also become responsible for closing the files, for example by using one of the cvxFileClose or cvxFileSave functions. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartAtItemLockGet ( char* AtLable, /* I: custom attribute name */ evxAtItemLockStatus* AtLockState /* O: locking state of attribute item */ ) /* DESCRIPTION: Get the locking state of the specified attribute item. only custom attribute item are supported. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartAtItemLockGetInFile ( vxLongName File, /* I: object file name (File[0]=0 or NULL for active file) */ vxLongName Root, /* I: root object name (Root[0]=0 or NULL for active target object) */ char* AtLable, /* I: custom attribute name */ evxAtItemLockStatus* AtLockState /* O: locking state of attribute item */ ) /* DESCRIPTION: Get the locking state of the specified attribute item. only custom attribute item are supported. If the specified file is not already open, this function will open it to access attributes, and will then close the file. If you want to keep the file open, use the cvxFileKeep function, before calling this function, to set a flag that prevents this function from closing the files that it opens. (Files that are already open before this function is called are never closed by this function.) If you will be calling several functions to access data in the same file, keeping the file open between calls is more efficient than letting each function open and close the file. However, you must remember to call cvxFileKeep again to reset the flag after you have finished all of the function calls that need to access the specified file, and you also become responsible for closing the file, for example by using one of the cvxFileClose or cvxFileSave functions. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartAtItemLockSet ( char* AtLable, /* I: custom attribute name */ evxAtItemLockStatus AtLockState /* I: locking state of attribute item */ ) /* DESCRIPTION: Set the locking state of the specified attribute item. only custom attribute item are supported. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartAtItemLockSetInFile ( vxLongName File, /* I: object file name (File[0]=0 or NULL for active file) */ vxLongName Root, /* I: root object name (Root[0]=0 or NULL for active target object) */ char* AtLable, /* I: custom attribute name */ evxAtItemLockStatus AtLockState /* I: locking state of attribute item */ ) /* DESCRIPTION: Set the locking state of the specified attribute item. only custom attribute item are supported. If the specified file is not already open, this function will open it to access attributes, and will then close the file. If you want to keep the file open, use the cvxFileKeep function, before calling this function, to set a flag that prevents this function from closing the files that it opens. (Files that are already open before this function is called are never closed by this function.) If you will be calling several functions to access data in the same file, keeping the file open between calls is more efficient than letting each function open and close the file. However, you must remember to call cvxFileKeep again to reset the flag after you have finished all of the function calls that need to access the specified file, and you also become responsible for closing the file, for example by using one of the cvxFileClose or cvxFileSave functions. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartAtItemSet ( evxAtItemId itemId, /* I: item id */ svxAttribute *At /* I: part item attribute */ ) /* DESCRIPTION: Sets the value of the specified attribute in the active part. The itemId includes part items of evxAtItemId (VX_AT_USER~VX_AT_HEIGHT). When itemId is VX_AT_USER, the name of the user-defined attribute must be assigned to At->label before calling this function. For all other itemId values, At->label can be an empty string (At->label[0]=0) when this function is called. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartAtItemSetInFile ( vxLongName File, /* I: object file name (File[0]=0 or NULL for active file) */ vxLongName Root, /* I: root object name (Root[0]=0 or NULL for active target object) */ evxAtItemId itemId, /* I: item id */ svxAttribute *At /* I: part item attribute */ ) /* DESCRIPTION: Sets an attribute value in a specified part. The itemId includes part items of evxAtItemId (VX_AT_USER~VX_AT_HEIGHT). When itemId is VX_AT_USER, the name of the user-defined attribute must be assigned to At->label before calling this function. For all other itemId values, At->label can be an empty string (At->label[0]=0) when this function is called. If the specified file is not already open, this function will open it to access the attribute, and will then close the file. If you want to keep the file open, use the cvxFileKeep function, before calling this function, to set a flag that prevents cvxPartAtItemSetInFile and cvxPartAtItemGetInFile from closing the files that they open. (Files that are already open before cvxPartAtItemSetInFile or cvxPartAtItemGetInFile is called are never closed by these functions.) Keeping files open is a more efficient way to access multiple attributes in a file, but you must remember to call cvxFileKeep again to reset the flag after you have finished your calls to cvxPartAtItemGetInFile and cvxPartAtItemSetInFile, and you also become responsible for closing the files, for example by using one of the cvxFileClose or cvxFileSave functions. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartAtMod ( vxLongName Name, /* I: name of part in active file */ svxPartAttribute *At /* I: part attribute data */ ) /* DESCRIPTION: Selectively updates attributes of the specified part with the fields in "At" that have valid ascii strings in their "data" variables. Any attribute whose "data" is a blank string is ignored. The "label" strings associated with modified fields are not reflected into the specified part's attribute info with the exception of user attributes and driving dimensions. For this function to update a user attribute, both "label" and "data" must be defined for "At->UserAttribute[n]". If a user attribute with the specified "label" already exists in the part's current attribute info, then the corresponding "data" is updated. If not, then a new user-attribute is added to part's attribute info. Entries in "At->Dimen[]" that have blank labels are skipped. Dimensions listed in "At->Dimen[]" that are not already listed in the part's attribute info are added. Entries in "At->Dimen[]" with blank labels are ignored. It is assumed that labels of driving dimensions listed in "At->Dimen[]" identify valid dimension or variables in the parent part. It is also assumed that dimension values stored in "At->Dimen[].data" fields are within valid ranges. No checking is done to ensure it. When driving dimension values are changed, the parent part is automatically regenerated by this function. You cannot use this function to delete pre-existing dimension names from a part's attribute info. To do that, you have to get the existing attribute data with cvxPartAtGet(), clear the "label" and "data" variables of the driving dimensions you no longer want recorded in the part attributes, then reset all attributes using cvxPartAtSet(). If "Name" is NULL or an empty string, the active target part is used. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartAtSet ( vxLongName Name, /* I: name of part in active file */ svxPartAttribute *At /* I: part attribute data */ ) /* DESCRIPTION: Assigns the specified part attribute data to the specified part. Existing part attribute data is replaced with the contents of the input attribute data structure. This function reflects back into the specified part all of the attribute data in "At", even the blank strings (excluding the part name field). So, generally speaking, you would want to initialize "At" by passing it to cvxPartAtGet(), modify select fields of "At", then pass "At" back into this function. It is assumed that labels of driving dimensions listed in "At->Dimen[]" identify valid dimension or variables in the parent part. It is also assumed that dimension values stored in "At->Dimen[].data" fields are within valid ranges. No checking is done to ensure it. When driving dimension values are changed, the parent part is automatically regenerated by this function. Use cvxPartAtMod() to selectively update part attribute data. If "Name" is NULL or an empty string, the active target part is used. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartAxisNew ( svxAxisData *Axis, /* I: Axis data (NULL to ignore) */ int *idAxis /* O: id of new datum Axis */ ) /* DESCRIPTION: This function add a new datum axis to the active part according to the *Axis. If "idAxis" is not NULL, the id of the new datum axis is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartBackup(void) /* DESCRIPTION: Inserts a "Backup" operation in the active part's history. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartBool ( evxBoolType Type, /* I: boolean combination method */ int idBase, /* I: id of base shape */ int Count, /* I: no. of shapes to combine with "idBase" */ int *Shapes, /* I: list of id's of shapes to combine with "idBase" */ int Keep /* I: 1 to keep "Shapes"; 0 to delete them */ ) /* DESCRIPTION: Combines one or more shapes with a base shape using a boolean operation. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartBool2 ( evxBoolType Type, /* I: boolean combination method */ int BaseCount, /* I: number of base shapes */ int *BaseList, /* I: list of base shape id's */ int OpCount, /* I: number of operator shapes */ int *OpList, /* I: list of operator shape id's */ int *ResultCount, /* O: number of resulting shapes (NULL to ignore) */ int **ResultList /* O: list of id's of resulting shapes (NULL to ignore) */ ) /* DESCRIPTION: Combines one or more operator shapes with one or more base shapes using the specified boolean combination method. The resulting shape(s) are output via "ResultList". The memory referenced by "ResultList" is allocated by this function. The calling procedure is responsible to free the memory referenced by "ResultList" (cvxMemFree((void**)ResultList)). If you do not need the list of output shapes, input NULL for "ResultCount" and "ResultList" and no list of results will be output by this function. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartBool3 ( evxBoolType Type, /* I: boolean combination method */ int BaseCount, /* I: number of base shapes */ int *BaseList, /* I: list of base shape id's */ int OpCount, /* I: number of operator shapes */ int *OpList, /* I: list of operator shape id's */ int FaceCount, /* I: number of bounding faces (0 if undefined) */ int *FaceList, /* I: list of bounding faces (NULL if undefined) */ int *ResultCount, /* O: number of resulting shapes (NULL to ignore) */ int **ResultList /* O: list of id's of resulting shapes (NULL to ignore) */ ) /* DESCRIPTION: Combines one or more operator shapes with one or more base shapes using the specified boolean combination method. If bounding faces are defined (FaceCount and FaceList), an attempt is made to limit the resulting shapes to the regions between the bounding faces. The resulting shape(s) are output via "ResultList". The memory referenced by "ResultList" is allocated by this function. The calling procedure is responsible to free the memory referenced by "ResultList" (cvxMemFree((void**)ResultList)). If you do not need the list of output shapes, input NULL for "ResultCount" and "ResultList" and no list of results will be output by this function. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartBox ( svxBoxData *Box, /* I: box definition */ int *idShape /* O: id of new shape */ ) /* DESCRIPTION: Creates a box shape and adds it to the active part using the specified combination method. If "idShape" is not NULL and "Box->Combine = V_BOOL_NONE", the id of the shape created by this function is output via "idShape". Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartCSYSNew ( svxCSYSData *CSYS, /* I: CSYS data */ int *idCSYS /* O: id of new CSYS (NULL to ignore) */ ) /* DESCRIPTION: This function add a new datum CSYS to the active part according to the Frame. If "idCSYS" is not NULL, the id of the new datum CSYS is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartCalcAttrGet ( int idPart, /*I: index of part in database*/ svxPartCalcAttrData* attr /*O: calculate attribute of part*/ ) /* DESCRIPTION: Calculate length,width,hight,volume,area,mass of part specified by index RETURN: Return 0 if success else return 1. */ ________________________________________________________________________________ int cvxPartCfgActivate ( int idCfg /* I: config id */ ) /* DESCRIPTION: Active the specified configuration to current part. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartChamAng ( int Count, /* I: number of edges to chamfer */ int *Edges, /* I: pointer to list of edge id's */ int idFace, /* I: id of face on first side of chamfer */ double Setback, /* I: setback (mm) on first side of chamfer */ double Angle /* I: angle of chamfer (deg) */ ) /* DESCRIPTION: Adds chamfers to the specified edges. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartChamAsym ( int Count, /* I: number of edges to chamfer */ int *Edges, /* I: pointer to list of edge id's */ int idFace, /* I: id of face on first side of chamfer */ double Setback1, /* I: setback (mm) on first side of chamfer */ double Setback2 /* I: setback (mm) on second side of chamfer */ ) /* DESCRIPTION: Adds chamfers to the specified edges. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartChamConst ( int Count, /* I: number of edges to chamfer */ int *Edges, /* I: pointer to list of edge id's */ double Setback /* I: setback (mm) */ ) /* DESCRIPTION: Adds chamfers to the specified edges. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartChamferAll ( const svxChamFlltData *Chamfer, /* I: chamfer data */ int *idChamfer /* O: index of new chamfer feature */ ) /* DESCRIPTION: Use the function to create symmetric and asymmetric chamfers. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartCir3pt ( svxPoint *P1, /* I: first point on circle */ svxPoint *P2, /* I: second point on circle */ svxPoint *P3, /* I: third point on circle */ int *idEnt /* O: id of new 3D circle entity */ ) /* DESCRIPTION: Adds a 3D circle to the active part. If "idEnt" is not NULL, the id of the new circle entity is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartCirRad ( svxMatrix *Plane, /* I: insertion plane */ double Radius, /* I: radius (mm) */ int *idEnt /* O: id of new 2D circle entity */ ) /* DESCRIPTION: Adds a 3D circle to the active part. The circle lies on the specified plane with its center at the plane's origin. If "idEnt" is not NULL, the id of the new entity is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartCone ( svxConeData *Cone, /* I: cone definition */ int *idShape /* O: id of new shape (NULL to ignore) */ ) /* DESCRIPTION: Creates a cone shape and adds it to the active part using the specified combination method. If "idShape" is not NULL and "Cyl->Combine = V_BOOL_NONE", the id of the shape created by this function is output via "idShape". Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartCopy ( const svxCopyData *Copy, /* I: Copy data */ int *idCopy /* O: Copy feature id (NULL to ignore) */ ) /* DESCRIPTION: Adds the specified Copy(s) to the active part and outputs the id of the corresponding history operation. Pass in NULL for "idCopy" if the output is not required. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartCopyDirDis ( int idEntity, /* I: id of geometry entity to copy */ svxVector *Dir, /* I: direction */ double Dis, /* I: distance */ int*idCopy /* O: id of copied entity (NULL to ignore) */ ) /* DESCRIPTION: Copies the specified geometry within the active part along specified direction "Dir" with distance "Dis". If "idCopy" is not NULL, the id of the new copy is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartCopyPntToPnt ( int idEntity, /* I: id of geometry entity to copy */ svxAxis *Start, /* I: start point and direction */ svxAxis *End, /* I: end point and direction */ int *idCopy /* O: id of copied entity (NULL to ignore) */ ) /* DESCRIPTION: Copies the specified geometry within the active part from one point "Start->Pnt" to another "End->Pnt". It also changes the orientation of the part based on "Start->Dir" and "End->Dir". If the directions are same, the orientation of the geometry is not changed -- it is simply translated. If "idCopy" is not NULL, the id of the new copy is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartCopyTransform ( int idEntity, /* I: id of geometry entity to copy */ const svxMatrix *Mat, /* I: transformation matrix */ int *idCopy /* O: id of new entity (NULL to ignore) */ ) /* Copies the specified geometry entity and applies the specified general transformation to the copy, moving the copy within the active part. If "idCopy" is not NULL, the id of the new copy is output. If "Mat" includes scaling, the scale factors are ignored. Returns 1 if the function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartCopyTransformList ( const int Count, /* I: number of entities to transform */ const int* Entities, /* I: list of geometry entity ids */ const svxMatrix *Mat, /* I: transformation matrix */ int* EntCnt, /* O: number of new entities (NULL to ignore) */ int **idList /* O: id of new entities (NULL to ignore) */ ) /* Copies the specified geometry entities and applies the specified general transformation to the copy, moving the copy within the active part.The calling procedure MUST deallocate the output list with cvxMemFree. If "Mat" includes scaling, the scale factors are ignored. Returns 1 if the function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartCosSkPlane ( const svxSketchData* SkData, /* I: sketch input data */ int isAddHatPtn, /* I: 1 if add hatch pattern ,else 0 */ const svxHatchPtnData* PatData, /* I: hatch pattern input data (NULL to use default) */ int *idSketch /* O: id of new sketch (NULL to ignore) */ ) /* DESCRIPTION: Adds a new cosmetic sketch to the active part, aligned with the specified insertion plane. The sketch is activated for editing. Exit the sketch edit mode (back to editing the parent part) using cvxRootExit() or cvxSkActivate(0,0). If "idSketch" is not NULL, the id of the new sketch is output. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartCrvInt ( svxCrvIntData *Crv, /* I: input data interpolated curve */ int *idEnt /* O: id of new 3D interpolated curve entity */ ) /* DESCRIPTION: Adds a 3D curve interpolated through through the input points with the specified degree to the active part. If "idEnt" is not NULL, the id of the new curve entity is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartCrvList ( int Count, /* I: number of curves in curve-list */ int *Curves, /* I: pointer to list of 3D curve id's */ int *idEnt /* O: id of new curve-list entity */ ) /* DESCRIPTION: Adds a 3D curve-list entity which groups the specified curves. Features like Sweep, Revolve and Extrude may be applied to 3D curve-lists as well as 2D sketches. If "idEnt" is not NULL, the id of the new entity is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartCrvSplitAtPnts ( int idCurve, /* I: curve id */ int CountPnts, /* I: number of points to split at */ svxPoint *Points, /* I: list of points to split at */ int *CountCrvs, /* O: number of curves after split (NULL to ignore) */ int **NewCrvs /* O: list of curves after split (NULL to ignore) */ ) /* DESCRIPTION: Split a curve at specified points. Outputs a list of indices of the new curves after split. The calling procedure MUST deallocate the internal memory of each element in the output list by calling cvxCurveFree, after which the output list MUST be deallocated with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartCurve ( svxCurve *Crv, /* I: curve data */ int *idEnt /* O: id of new curve entity */ ) /* DESCRIPTION: Adds a curve to the active part. If "idEnt" is not NULL, the id of the new curve entity is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartCurveChainFind ( int nSeeds, /* I: number of seed edges or curves */ int *idSeeds, /* I: list of id of seed edges or curves */ int type, /* I: type of edges, only effects the find result of the seed edge 0: find continuously tangent edges that may be bound by any number of faces 1: find connected open edges 2: find continuously tangent manifold edges that are shared by exactly two faces or are seams having the same face on both sides */ int *Count, /* O: number of curves found */ int **idCrvs /* O: list of curves found */ ) /* DESCRIPTION: Use the function to find connected chain of curves or edges and output a list of indices of the edges or curves. If the seed is a curve, the chain consists of curves that are connected end-to-end, but without any requirement for tangency between curve. If the seed is an edge, the chain consists of edges that are tangent, i.e. smoothly connected end-to-end. If type is 0, an edge may bound any number of faces. If type is 1, only open edges are included in the chain, the requirement for tangency between edges is suspended, so a chain of open edges may continue around sharp corners. If type is 2, only manifold edges are included in the chain, i.e. edges that are shared by exactly two faces, or edges that have seams with the same face on both sides. The calling procedure MUST deallocate the output list with cvxMemFree. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartCurveOffset ( int idCurve, /* I: curve id */ double Dis, /* I: offset distance */ int *idOut /* O: id of curve after offset*/ ) /* DESCRIPTION: Offset a curve with distance "Dis". Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartCurveSilh ( int idCurve, /* I: curve id */ svxPoint *dir, /* I: project direction */ int *iCnt, /* O: number of new curves */ int **idList /* O: id of new curves */ ) /* DESCRIPTION: Project a 2D curve along a direction, to find its silhouettes. This will split the curve on its self-intersections. Output new silhouette curves via "idList". Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartCyl ( svxCylData *Cyl, /* I: cylinder definition */ int *idShape /* O: id of new shape */ ) /* DESCRIPTION: Creates a cylinder shape and adds it to the active part using the specified combination method. If "idShape" is not NULL and "Cyl->Combine = V_BOOL_NONE", the id of the shape created by this function is output via "idShape". Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartDatum ( svxMatrix *Frame, /* I: transformation matrix */ int *idDatum /* O: id of new datum */ ) /* DESCRIPTION: Adds a datum plane to the active part, aligned with the specified local coordinate frame. If "idDatum" is not NULL, the id of the new datum is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartDatum2 ( svxMatrix *Frame, /* I: transformation matrix */ int iCode, /* I: position code ,1 add label to entity, 0 don't*/ int *idDatum /* O: id of new datum */ ) /* DESCRIPTION: Adds a datum plane to the active part, aligned with the specified local coordinate frame. If "idDatum" is not NULL, the id of the new datum is output.In addition to need input position code its function is same as cvxPartDatum ,1 as the default in cvxPartDatum. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartDelGrpFtr ( int idxFtr, /* I: parting face feature group */ int delFtrs /* I: delete the features in the folder or not */ ) /* DESCRIPTION: Delete the parting face feature group. delFtrs: 1-delete the features in the folder 0-just delete the folder Note: You need regen the history after deleting all the features. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartDivide ( svxDivideData *Divide, /* I: divide input data */ int *numShape, /* O: number of resulting shapes (NULL to ignore) */ int **idShapes /* O: list of id's of resulting shapes (NULL to ignore) */ ) /* DESCRIPTION: Use this function to divide a solid or open shape where it intersects with faces, shapes, or datum planes. The result will be two distinct solids or shapes. This function can also divide an open shape or result in one or more open shapes. The calling procedure MUST deallocate the output list with cvxMemFree. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartDraft ( const svxDraftData *Draft,/* I: Draft Data */ int *idDraft /* O: id of feature operation that created Draft (NULL to ignore) */ ) /* DESCRIPTION: Adds the specified draft(s) to the active part and outputs the id of the corresponding history operation. Pass in NULL for "idDraft" if the output is not required. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartEcadRgnCut ( int idSketch, /* I: id sketch to cut the tab shape */ int* idFtr /* O: id of feature(NULL to ignore) */ ) /* DESCRIPTION: Use the input sketch to cut the sheet metal shape. It likes Extrude_Remove command and the extrude length is the thickness of the tab shape in current part. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartEcadRgnSet ( const svxEcadRgnSetData* pRgnSetData, /* I: region set data */ int *idFtr /* O: id of feature(NULL to ignore) */ ) /* DESCRIPTION: ECAD "Region Set" command. The sketch must be cosmetic. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartEllipse ( svxRectangleData *ellipseData, /* I: ellipse input data */ int *idEnt /* O: id of new 3D ellipse entity */ ) /* DESCRIPTION: Add a 3D ellipse to the active part. The ellipse lies on the specified plane with the specified center. If "idEnt" is not NULL, the id of the new entity is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartEllipsoid ( svxEllsoData *Ellso, /* I: ellipsoid definition */ int *idShape /* O: id of new shape (NULL to ignore) */ ) /* DESCRIPTION: Creates a ellipsoid shape and adds it to the active part using the specified combination method. If "idShape" is not NULL and "Cyl->Combine = V_BOOL_NONE", the id of the shape created by this function is output via "idShape". Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartEncapsulate ( int Option, /* I: 0 to encapsulate according to active configuration options; ** I: 1 to force encapsulate to use StartData/ExplicitData; ** I: 2 to force encapsulate to use ExplicitData and explicit shape features; ** I: 3 to force encapsulate to use Explicit data with active config setting ** for explicit shape features. */ int KeepDimen /* I: 1 to save feature dimensions with encapsulated data; 0 to delete them */ ) /* DESCRIPTION: Encapsulates the active part's history. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartEqnDelete ( int idEqn /* I: equation id or equation set id*/ ) /* DESCRIPTION: Delete all equation if idEqn = -1. Delete equation set or equation by specified idEqn. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartEqnSet ( int Count, /* I: number of variables */ svxVariable *Variables /* I: list of variables */ ) /* DESCRIPTION: Create an equation set in active part, and add variables into this equation set. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartErase ( int Count, /* I: number of entities */ int *idEnts /* I: list of entity id's */ ) /* DESCRIPTION: Erase specified entities. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ void cvxPartExit (void) /* DESCRIPTION: Exits the active part to its parent part if it was activated from within an assembly, to its parent CAM plan if it was activated from within a CAM plan, to its parent drawing sheet if it was activated from a drawing sheet view, or to the root object level of its parent file, if it was activated from the level of the root object list. */ ________________________________________________________________________________ int cvxPartExplode ( const svxExplodeData *ExplodeData, /* I: explode_data definition */ int *numShape, /* O: number of resulting shapes (NULL to ignore) */ int **idShapes /* O: list of id's of resulting shapes (NULL to ignore) */ ) /* DESCRIPTION: Explode faces from the active topology table. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartExtendFace ( svxExtendData *data, /* I: extend face data */ int*newFtr /* O: index of new feature(NULL to ignore)*/ ) /* DESCRIPTION: Extend the specified face. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartExtrude ( svxExtrudeData *Ext, /* I: extrusion input data */ int *idShape /* O: id of new shape (NULL to ignore) */ ) /* DESCRIPTION: Creates an extruded shape and adds it to the active part using the specified combination method. If "idShape" is not NULL and "Ext->Combine = V_BOOL_NONE", the id of the shape created by this function is output via "idShape". If multiple shapes could be created, use cvxEntNewList() to get their id's. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartFace ( svxSurface *Srf, /* I: NURBS surface geometry */ int NumCurves, /* I: number of trim curves */ svxCurve *TrimCurves, /* I: list of 2D NURBS UV trim curves */ int Code, /* I: non-zero integer code for labeling the face */ int Sew, /* I: 1 to sew face to adjacent faces, else 0 */ double Tol, /* I: 3D proximity tolerance (mm) (0.0 for default) */ int *idFace /* O: database id of new face entity (or NULL) */ ) /* DESCRIPTION: Adds a face to the active part using the specified surface and trim curves. The face is sewn to adjacent faces with matching edges. It is assumed the trim curves are 2D NURBS curves defined in the UV space of the specified surface. If no trim curves are input (NumCurves=0), trim curves are automatically created around the "rectangular" surface boundary. The input 3D proximity tolerance (Tol) is used to match the endpoints of trim curves when they are sorted into loops, and to match edges of the new face to edges to existing faces if the "Sew" option is enabled. If "Tol" is input as 0.0, the active part's default proximity tolerance is used. If "idFace" is not NULL, the database id of the new face entity is output. This function copies data passed to it. The calling procedure is responsible for deallocating memory referenced by the input data structures. Note that faces will not add successfully to the active part unless there is an active feature (i.e. history operation) for them to link to. This is accomplished by putting your code inside the callback function associated with a command-template-defined custom history operation (see cvxTplInit). When the history is regenerated, ZW3D will expect the input parameters defined by the command template to provide sufficient input to the callback function to re-create (i.e. regenerate) the original geometry. The other option is to start your code with cvxPartHistStart(), which defines a "static" feature (i.e. history operation) for program-generated geometry (e.g. faces) to attach to. When you are done adding geometry, call cvxPartHistEnd(). This function will cause all existing part geometry and history to be bundled into a single static "StartData" history operation. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartFaceEdgesFind ( int nSeeds, /* I: number of seed faces */ int *idSeeds, /* I: list of id of seed faces */ evxEdgeLoopType type, /* I: type of boundary */ int *Count, /* O: number of edges found */ int **idEdges /* O: list of edges found */ ) /* DESCRIPTION: Use the function to find edges that bound one or more seed faces. The calling procedure MUST deallocate the output list with cvxMemFree. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartFaceFind ( svxFaceFind *findData, /* I: face search data */ int *Count, /* O: number of faces found */ int **idFaces /* O: list of faces found */ ) /* DESCRIPTION: Use the function to find connected groups of faces and output a list of indices of the faces. the function provides several methods for finding faces that form certain kinds of features, such as bosses, pockets, holes and fillets. also support custom method, please refer to the description of input variables for details. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartFaceOffset ( int idFace, /* I: face id */ double Dis, /* I: offset distance */ int Keep /* I: 1 to keep "Original surface"; 0 to delete it */ ) /* DESCRIPTION: Offset a face with distance "Dis". Original surface will be deleted if "Keep=0". Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartFacesOffset ( const svxFcsOffsetData* data, /* I: face offset data */ int* idFtr /* O: feature id (pass in NULL to ignore) */ ) /* DESCRIPTION: Use this function to create a new face offset from a face at a specified distance. Multiple faces can be offset at the same time. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartFacesetSew ( int count, /* I: count of shapes */ int *shapes, /* I: id list of shapes */ svxSewData* param, /* I: parameter value (NULL to use default)*/ int *newFtr /* O: id of new feature(NULL to ignore)*/ ) /* DESCRIPTION: Sew the specified shapes. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartFacets ( vxLongName Name, /* I: block name */ svxFacets *Facets, /* I/O: set of 3D triangular facets */ int *idBlock /* O: id of new 3D Block of triangular facets */ ) /* DESCRIPTION: Creates an explicit (i.e. non-historical) 3D Block containing the input 3D facet data and adds it to the active part. If "idBlock" is not NULL, the id of the 3D Block created by this function is output via "idBlock". If this function successfully creates the Block, the Block takes ownership of the memory referenced by the vertex data fields in the "Facets" structure (Vertex, Normal, etc.). This function assigns NULL to fields that refer to memory that has been transferred to the Block. After this function returns, use the cvxFacetsFree function to release any remaining memory still referenced by the "Facets" structure. Returns 1 if function fails; 0 if it succeeds. See cvxPartFacetsMod for a function that can modify the facet data of an existing 3D Block. */ ________________________________________________________________________________ int cvxPartFacetsMod ( int idBlock, /* I: id of 3D Block of triangular facets */ svxFacets *Facets /* I/O: set of 3D triangular facets */ ) /* DESCRIPTION: Modify an explicit (i.e. non-historical) 3D Block in the active part, replacing the Block's prior triangle and vertex data with data from the given "Facets" input. If this function successfully updates the Block, the Block takes ownership of the memory referenced by the vertex data fields in the "Facets" structure (Vertex, Normal, etc.). This function assigns NULL to fields that refer to memory that has been transferred to the Block. After this function returns, use the cvxFacetsFree function to release any remaining memory still referenced by the "Facets" structure. This function ignores the At, Tx and Sh fields in the "Facets" structure. It does not update the Block's display attributes, texture map attributes, or shader attributes. The cvxPartFacetsSetAt and cvxPartFacetsSetTx functions can be used to modify a Block's display attributes and texture map attributes. Shader attributes are not currently used by 3D Blocks. Returns 1 if function fails; 0 if it succeeds. See cvxPartFacets for a function that can create a 3D Block from facet data. */ ________________________________________________________________________________ int cvxPartFacetsSetAt ( int idBlock, /* I: id of 3D Block */ const svxFaceAt *At /* I: display attributes */ ) /* DESCRIPTION: Modifies display attributes of the specified block. It is assumed the specified block resides in the active part. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartFacetsSetTx ( int idBlock, /* I: id of 3D Block */ const svxTextureAt *Tx /* I: texture map attributes */ ) /* DESCRIPTION: Modifies texture map attributes of the specified block. It is assumed the specified block (idBlock) resides in the active part. If the "file" field of the svxTextureAt structure is empty (a zero-length string), the texture map attributes are not saved and any prior texture map assigned to the block is removed. The "opt" field of the svxTextureAt structure is not currently supported. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartFillet ( int Count, /* I: number of edges to fillet */ int *Edges, /* I: pointer to list of edge id's */ double Radius /* I: fillet radius */ ) /* DESCRIPTION: Adds fillets to the specified edges. Use cvxPartPartialResults() to disable/enable the prompt to calculate/display partial results for failed fillets. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartFilletAll ( const svxChamFlltData *Fillet, /* I: fillet data */ int *idFillet /* O: index of new fillet feature */ ) /* DESCRIPTION: Use the function to create symmetric and asymmetric fillets. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartFittingCrv ( int iCnt, /* I: number of points */ svxPoint *pnts, /* I: points */ double tol, /* I: tolerance value */ double smth, /* I: smooth value */ int *idEnt /* O: id of new curve entity */ ) /* DESCRIPTION: Add a curve to the active part from fitting some points and smooth it. If "idEnt" is not NULL, the id of the new curve entity is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartFlagExtThread ( const svxFlagExtThreadData* data, /* I: flag ext thread data */ int* idFtr /* O: feature id (pass in NULL to ignore) */ ) /* DESCRIPTION: Use the Flag Ext Thread command to assign hole attributes so drawing sheets will recognize these features as holes.but only visible in 3D. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartFlagHoles ( const svxFlagHoleData* data, /* I: flag hole data */ int* idFtr /* O: feature id (pass in NULL to ignore) */ ) /* DESCRIPTION: Use the Flag Hole command to assign hole attributes so drawing sheets will recognize these features as holes. Return 1 if error, else 0. */ ________________________________________________________________________________ void cvxPartFreeCfgTbl ( svxPartCfgInfo** cfginfo /* I/O: list of config table info */ ) /* DESCRIPTION: Frees memory associated with the input config table infos list. The input memory pointer (*cfginfo) is set to NULL. */ ________________________________________________________________________________ void cvxPartFreeHoles ( int Count, /* I: number of holes */ svxHoleData **Holes /* I/O: list of holes */ ) /* DESCRIPTION: Frees memory associated with the input hole list. The input memory pointer (*Holes) is set to NULL. */ ________________________________________________________________________________ int cvxPartFtrInqAuxFtrs ( int idFtr, /* I: id feature */ int* count, /* O: count of idAuxFtrs */ int** idAuxFtrs /* O: list of auxiliary feature id */ ) /* DESCRIPTION: Gets a list of auxiliary features for the specified feature. The memory referenced by "idAuxFtrs" is allocated by this function. The calling procedure is responsible to free it (cvxMemFree((void**)idAuxFtrs)). Returns 1 if function fails; 0 if it succeeds; -1 if not found auxiliary feature. */ ________________________________________________________________________________ int cvxPartFtrInqInpEnts ( int idFeature, /* i: index of feature in active bin */ evxEntType type, /* i: entity type id */ int *cnt, /* o: no. of specified entities */ int **list /* o: list of entities */ ) /* DESCRIPTION: Get the specified entities of the specified feature. These entities are in the VDATA of the feature. Note: usually we need to call cvxPartFtrPlayTo to rollback to "idFeature" first, and then call this function to get the input entities. The feature list (list) is allocated by this function and must be deallocated by the calling procedure. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartFtrIsMissRef ( int idFeature, /* I: reference feature id */ char* status /* O: feature status. 1 is miss reference, 0 is no miss reference. */ ) /* DESCRIPTION: Determines whether a reference feature has lost external references. Returns: 1 if function fails; -1 if idFeature is not a external reference feature; else 0. */ ________________________________________________________________________________ int cvxPartFtrIsUDF ( int idFtr, /* I: index of feature */ int* isUDF /* O: 1 - is a UDF feature, 0 - is not a UDF feature, -1 - is not a feature */ ) /* DESCRIPTION: Get the type of the feature: UDF or not. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartFtrPlayTo ( int idxFtrPlayTo, /* I: id of feature play to */ int state /* I: state of feature(1-has played, 0-not) */ ) /* DESCRIPTION: Play the feature history to the top of specified feature. If the state is 1, rollback to the specified feature, else play to this feature. Return 1 if error, else return 0. */ ________________________________________________________________________________ int cvxPartFtrSuppress ( int count, /* I: count of idFeatures */ int* idFeatures, /* I: list of feature id */ char suppress /* I: 1-suppress, 0-unSuppress */ ) /* DESCRIPTION: Suppress or unSuppress the specified feature (including assembly feature). Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartFtrUserAtDel ( int idFeature, /* I: index of feature */ int Count, /* I: number of user attributes (0 to delete all user attributes) */ svxAttribute* UserAt /* I: list of user attributes (NULL to delete all user attributes) */ ) /* DESCRIPTION: Delete user attribute of the specified feature in the current active part. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartFtrUserAtGet ( int idFeature, /* I: index of feature */ int *Count, /* O: number of user attributes */ svxAttribute** UserAt /* O: list of user attributes */ ) /* DESCRIPTION: Retrieves user attribute data of the specified feature in the current active part. The calling procedure MUST deallocate the output list with cvxMemFree. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartFtrUserAtSet ( int idFeature, /* I: index of feature */ int Count, /* I: number of user attributes */ svxAttribute* UserAt /* I: list of user attributes */ ) /* DESCRIPTION: Set user attribute data of the specified feature in the current active part. a new user attribute is inserted if the user attribute for the specified label does not exist. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartGeomExport ( svxGeomExport *Data /* I: data that defines geometry to be exported */ ) /* DESCRIPTION: Exports the specified geometry from the active target part to an external part. If the destination part does not exist, it is created. If the destination part already exists, the geometry is added to it. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartGeomExportII ( svxGeomExport *Data /* I: data that defines geometry to be exported */ ) /* DESCRIPTION: Exports the specified geometry from the active target part to an external part. If the destination part does not exist, it is created. If the destination part already exists, the geometry is added to it. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartGetCustomStr ( int idEnt, /* I: part id */ int *idStr, /* O: custom string id, can be NULL */ char **CustomString /* O: custom string */ ) /* DESCRIPTION Get custom string attached to a entity. The calling procedure MUST deallocate the output string with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartGetFlatSolids ( int* cnts, /* O: count of "solids" */ int** solids /* O: list of sheet metal flat solid id */ ) /* DESCRIPTION: Gets a list of sheet metal flat solid id in the active part. The memory referenced by "solids" is allocated by this function. The calling procedure is responsible to free it (cvxMemFree((void**)solids)). Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartHistClip ( int Cut, /* I: 1 to cut; 0 to copy */ int Count, /* I: number of history operations to cut or copy */ int *Operations /* I: list of history operation id's */ ) /* DESCRIPTION: Cuts or copies the specified operations from the history of the active part to the clipboard, replacing operations previously stored on the clipboard. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartHistDel ( int Count, /* I: number of history operations to delete */ int *Operations /* I: list of history operation id's */ ) /* DESCRIPTION: Deletes the specified operations from the history of the active part. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartHistDelUtil ( int Count, /* I: number of history operations to delete */ int *Operations, /* I: list of history operation id's */ int OpType /* I: OpType=0 : prompt to the user OpType=1 : auto delete associated history operations OpType=2 : auto suppress failed feature */ ) /* DESCRIPTION: Deletes the specified operations from the history of the active part. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartHistEnd ( void ) /* DESCRIPTION: Used in conjunction with cvxPartHistStart() to bundle all existing part geometry and history to be bundled into a single static "StartData" history operation. It is the equivalent of cvxPartEncapsulate(1, 0). Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartHistGroup ( int idFirst, /* I: id of first history operation */ int idLast, /* I: id of last history operation */ vxName Name, /* I: group name (input NULL for default name) */ int Close /* I: 1 to close new group, else 0 */ ) /* DESCRIPTION: Group the specified history operations. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartHistList ( int Option, /* I: Option=0 : get history operations that have been played Option=1 : get history operations that have not been played Option=2 : get played and unplayed history operations */ int *Cnts, /* O: number of history operations */ int **HistList /* O: list of history operations */ ) /* DESCRIPTION: Gets a list of history operations in the active part as specified by the input "Option". The memory referenced by "HistList" is allocated by this function. The calling procedure is responsible to free it (cvxMemFree((void**)HistList)). Returns 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartHistPaste(void) /* DESCRIPTION: Paste operations currently on the clipboard into the history of the active part. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartHistRename ( int idOp, /* I: id of history operation (i.e. feature) */ vxName Name, /* I: new operation name */ char *Descript /* I: new description (NULL if undefined) */ ) /* DESCRIPTION: Renames an operation in the history of the active part and assigns the specified description to it (if defined). Passing in a blank string for "Descript" will clear the description currently assigned to "idOp". Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartHistStart ( vxName Name /* I: history operation (i.e. feature) name */ ) /* DESCRIPTION: Defines a "static" feature (i.e. history operation) for program-generated geometry (e.g. faces) to attach to. When you are done adding geometry, call cvxPartHistEnd(). This function will cause all existing part geometry and history to be bundled into a single static "StartData" history operation. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartHole ( svxHoleData *Hole, /* I: hole data */ int *idOp /* O: id of feature operation that created hole */ ) /* DESCRIPTION: Adds the specified hole(s) to the active part and outputs the id of the corresponding history operation. Pass in NULL for "idOp" if the output is not required. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInlay ( svxInlayData *Inlay, /* I: inlay input data */ int *idInlay /* O: id of inlay feature (NULL to ignore) */ ) /* DESCRIPTION: The function is used to embed a set of closed loops of curves, as it would be generated by an outline text font, into a face and then offset the new interior faces created by the desired distance, giving a raised or sunken text effect. it will create new faces, edges, vertices, etc., allowing for sharp transitions from the raised surfaces to the base surface. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqActiveCfg ( int *idCfg /* O: the id of current active configuration */ ) /* DESCRIPTION: Outputs the active configuration id of current active part. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqAnnoTexts ( int *Count, /* O: number of curves */ int **Texts /* O: list of text id's */ ) /* DESCRIPTION: Outputs a list of indices of the text that belong to the active part. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqAsmFldChildEnts ( vxLongName File, /* I: object file name (File[0]=0 or NULL for active file) */ vxLongName Part, /* I: root object name (Part[0]=0 or NULL for active target object) */ int idFolder, /* I: index of assembly folder */ int incSubFld, /* I: 0 exclude sub folders; 1 include sub folders; 2 only sub folders */ int *count, /* O: number of entities in specified assembly folder */ int **Ents /* O: list of entities in specified assembly folder */ ) /* DESCRIPTION: Outputs a list of indices of the entities in the specified assembly folder. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqAsmFolders ( vxLongName File, /* I: object file name (File[0]=0 or NULL for active file) */ vxLongName Part, /* I: root object name (Part[0]=0 or NULL for active target object) */ int type, /* I: folder type (0: component folder; 1: constraint folder; 2: feature folder) */ int *count, /* O: number of assembly folders */ int **Folders /* O: list of assembly folders */ ) /* DESCRIPTION: Outputs a list of indices of the assembly folders in the specified assembly file. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqAsmFtrList ( vxLongName File, /* I: object file name (File[0]=0 or NULL for active file) */ vxLongName Part, /* I: part object name (Part[0]=0 or NULL for active target object) */ int *Count, /* O: number of assembly features in the specified part */ int **Features /* O: list of id's of assembly features in the specified part */ ) /* DESCRIPTION: Outputs a list of database id's of assembly features in the specified part. If there are no features, "*Count" is output as zero and "*Features" as NULL. This function allocates memory for the array output via "Features". The calling procedure is responsible for deallocating the memory. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqAsmIsFlex ( int idComp, /* I: index of component */ int* isFlexible /* O: 1 if flexible; 0 if not */ ) /* DESCRIPTION: Determine whether the component is flexible. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqAsmIsFlexByPath ( svxEntPath AsmPath, /* I: pick-path of component */ int* isFlexible /* O: 1 if flexible; 0 if not */ ) /* DESCRIPTION: Determine whether the component is flexible. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqAxis ( int *Count, /* O: number of axis */ int** Axis /* O: list of index of axises */ ) /* DESCRIPTION: Outputs a list of axis that belong to the current part. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqBlockPnts ( int idBlock, /* I: id of point block in active part */ int *Count, /* O: number of points */ svxPointf **Points /* O: list of points */ ) /* DESCRIPTION: Outputs a list of points in the specified 3D Point Block. Memory for the point list is allocated by this function and output via "Points". It must be deallocated by the calling procedure with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqBlockType ( int idBlock, /* I: 3D block id */ evxBlockType *Type /* O: block type */ ) /* DESCRIPTION: Outputs the id of the parent feature of the specified entity in the active part. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqBlocks ( int *Count, /* O: number of 3D blocks in the active part */ int **Blocks /* O: list of id's of 3D blocks in the active part */ ) /* DESCRIPTION: Outputs a list of database id's of 3D blocks of the specified type within the active part. If there are no blocks, "*Count" is output as zero and "*Blocks" as NULL. This function allocates memory for the array output via "Blocks". The calling procedure is responsible for deallocating the memory. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqCfgList ( int *Count, /* O: the number of part configuration */ int **CfgList /* O: the list of part configuration id */ ) /* DESCRIPTION: Outputs the configuration id list of current active part. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqCfgTblInfos ( int Id, /* I: configuration id */ svxPartCfgInfo** partcfg /* O: configuration infos */ ) /* DESCRIPTION: Get specified id configuration table infos. Get Id by cvxPartInqCfgList; The memory referenced by "partcfg" is allocated by this function. The calling procedure is responsible to free it (cvxPartFreeCfgTbl(partcfg)). Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartInqComps ( vxLongName File, /* I: part file name (File[0]=0 or NULL for active file) */ vxLongName Part, /* I: part name (Part[0]=0 or NULL for active part) */ int *Count, /* O: number of components */ int **Comps /* O: list of component id's */ ) /* DESCRIPTION: Outputs a list of indices of the components that belong to the specified part. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqComps2 ( vxLongName File, /* I: part file name (File[0]=0 or NULL for active file) */ vxLongName Part, /* I: part name (Part[0]=0 or NULL for active part) */ int Option, /* I: 1 for filter suppressed components, otherwise for 0 */ int *Count, /* O: number of components */ int **Comps /* O: list of component id's */ ) /* DESCRIPTION: According to the Option to output a list of indices of the components that belong to the specified part. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqCompsInfo ( vxPath Path, /* I: full file path (Null to the active file) */ vxLongName Name, /* I: root object name (Null to all root objects) */ int* Count, /* O: number of components */ vxPath** Paths, /* O: list of components' path */ vxLongName** Names /* O: list of components' root object name */ ) /* DESCRIPTION: Outputs 2 lists of path and root object name of the components that belong to the specified part. The difference between cvxPartInqComps and cvxPartInqCompsInfo is cvxPartInqComps just get the file name and part name, and cvxPartInqCompsInfo get the path(include file name) and part name. The calling procedure MUST deallocate the output lists. cvxMemFree((void**)Paths); cvxMemFree((void**)Names); Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqConstraints ( vxLongName File, /* I: object file name (File[0]=0 or NULL for active file) */ vxLongName Part, /* I: root object name (Part[0]=0 or NULL for active target object) */ int *count, /* O: number of constraints */ int **cons /* O: list of constraint ids */ ) /* DESCRIPTION: Outputs a list of indices of the constraints in the specified component. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqCrvList ( int idCrvList, /* I: id of curve-list entity in active part */ int *Count, /* O: number of curves (0 if there are no curves) */ svxEntPick **Curves /* O: list of curves (NULL if there are no curves) */ ) /* DESCRIPTION: Outputs a list of the curve or edge entities referenced by the specified curve-list entity within the active part. The curve references are output using the "svxEntPick" data structure so that parent sketches can be identified for sketch curves instanced by the curve list. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqCrvLists ( int *Count, /* O: number of curves */ int **CrvLists /* O: list of curve list id's */ ) /* DESCRIPTION: Outputs a list of indices of the curve list that belong to the active part. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqCsys ( int *Count, /* O: number of CSYS */ int** Csys /* O: list of index of CSYS */ ) /* DESCRIPTION: Outputs a list of CSYS that belong to the current part. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqCurve ( int idEntity, /* I: id of curvilinear entity (includes edges) */ int Nurb, /* I: 1=get NURBS data for all curve types; else 0 */ svxCurve *Crv /* O: curve data */ ) /* DESCRIPTION: Gets curve geometry for the specified curvilinear entity, including face edges. If "Nurb" is input as 1, NURBS data is output for analytic curve types (e.g. line, arc, circle). NURBS data is output via "Crv" using memory allocated by this function. The memory MUST be deallocated by the calling procedure using cvxCurveFree(). It is assumed the curve geometry resides in the active part. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqCurves ( int *Count, /* O: number of curves */ int **Curves /* O: list of curve id's */ ) /* DESCRIPTION: Outputs a list of indices of the curves that belong to the active part. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqDefaultCSYS ( int *CSYS /* O: Default CSYS/Datum id */ ) /* DESCRIPTION: Get the Default CSYS/Datum ID which Uid is three 10. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqDimIdxs ( vxLongName File, /* I: part file name (File[0]=0 or NULL for active file) */ vxLongName Part, /* I: part name (Part[0]=0 or NULL for active part) */ int *Count, /* O: number of dimensions */ int** IdList /* O: list of the dimension's index */ ) /* DESCRIPTION: Outputs a list of dimensions' id that belong to the specified part. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqDims ( vxLongName File, /* I: part file name (File[0]=0 or NULL for active file) */ vxLongName Part, /* I: part name (Part[0]=0 or NULL for active part) */ int *Count, /* O: number of variables */ svxVariable **Variables /* O: list of variables */ ) /* DESCRIPTION: Outputs a list of dimensions that belong to the specified part. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqEdgeCrv ( int idEdge, /* I: edge id */ int idParent, /* I: optional face or loop id for retrieving UV geometry (else 0) */ svxCurve *Crv /* O: edge's curve geometry */ ) /* DESCRIPTION: Outputs the NURBS curve geometry of the specified edge in the active part. If "idParent <= 0", the 3D definition of the edge is output. If "idParent > 0", the UV definition of the edge corresponding to the specified face or loop is output. The calling procedure is responsible for deallocating the memory assigned by this function to the "Crv" structure using cvxCurveFree(). The direction of UV curves output by this function follow the direction of their parent loops. 3D curves are not given a specific orientation. Outer loops proceed counterclockwise relative to the natural normal of the parent surface. Inner loops are clockwise. It is assumed the specified edge (idEdge) resides in the active part. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqEdgeFaces ( int idEdge, /* I: edge id */ int *Count, /* O: number of faces */ int **Faces /* O: list of face id's */ ) /* DESCRIPTION: Outputs a list of indices of the faces connected to an edge in the active file. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqEdgeLoop ( int idFace, /* I: face id */ int idEdge, /* I: edge id */ int *idLoop /* O: loop id */ ) /* DESCRIPTION: Get the id of the parent loop of the specified edge on the specified face. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqEdgeOpen ( int idEdge /* I: edge id (in active file) */ ) /* DESCRIPTION: Check if the specified edge is an open edge. RETURN: 0: the specified edge is not an open edge 1: the specified edge is an open edge -1: the id is not an edge or function fails */ ________________________________________________________________________________ int cvxPartInqEdgePreEdges ( int idEdge, /* I: edge id */ int *Count, /* O: number of pre-edges associated with the specified edge */ int **PreEdges /* O: list of pre-edges associated with the specified edge */ ) /* DESCRIPTION: Gets a list of the pre-edges associated with the specified edge. Memory for the list is allocated by this function and must be freed by the calling procedure. Returns 1 if error or no pre-edges found, else 0. */ ________________________________________________________________________________ int cvxPartInqEdgeShape ( int idEdge, /* I: index of edge */ int *idShape /* O: index of shape */ ) /* DESCRIPTION: Outputs the shape connected to an edge in the active file. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqEntBox ( int idEnt, /* I: entity id (supported entity: shape,face,component) */ svxMatrix *Mat, /* I: optional local frame (or NULL) */ svxBndBox *Box /* O: shape bounding box */ ) /* DESCRIPTION: Gets the bounding box of the specified entity in the active part. currently, only shape, face and component are support. If "*Mat = NULL", initializes "Mat" to the identity matrix. a bounding box relative to the specified local coordinate frame is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqEntByLabel ( int *Label, /* I: persistent label as null-terminated array of integers */ int Exact, /* I: 1 for exact match; 0 if partial match is okay */ int *idEntity /* O: entity id (0 is output if no entity is found) */ ) /* DESCRIPTION: Searches the active part for an entity with the specified label. Returns 1 if function fails or entity is not found; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqEntFtr ( int idEntity, /* I: entity id */ int *idFeature /* O: parent feature id (0 if undefined) */ ) /* DESCRIPTION: Outputs the id of the parent feature of the specified entity in the active part. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqEntLabel ( int idEntity, /* I: entity id */ int **Label /* O: persistent label as null-terminated array of integers */ ) /* DESCRIPTION: Outputs the persistent label of the specified entity in the active part. The label is a null-terminated list of integers. The calling procedure is responsible for deallocating the memory out via "Label". Example: int *Label=NULL; int idEntity = 99; cvxPartInqEntLabel(idEntity, &Label); cvxMemFree((void**)&Label); See also cvxLabelSame() and cvxPartInqEntByLabel(). Returns 1 if function fails or entity does not have a label; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqEntShape ( int idEntity, /* I: entity id (in active file) */ int *idShape /* O: shape id (0 if undefined) */ ) /* DESCRIPTION: Outputs the id of the shape that the specified face or edge (idEntity) belongs to. It is assumed the entity resides in the active object. If "idShape = 0" is output, the entity could not be located or didn't belong to a faceset. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqEqnAllId ( int* cntList, /* O: number of idList */ int** idList, /* O: list of equation id */ int* cntSets, /* O: number of idSets */ int** idSets /* O: list of equation set id */ ) /* DESCRIPTION: Output all equations and equation sets. If no equation,*cntList=0 and *idList=NULL. If no equation set,*cntSets=0 and *idSets=NULL. The calling procedure MUST deallocate the output list with cvxMemFree. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartInqEqnAssociatedSet ( int idEqn, /* I: equation id */ int* idSet /* O: equation set id */ ) /* DESCRIPTION: Get equation set containing specified equation. If cannot find, *idSet = -1. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartInqEqnSetMembers ( int idSet, /* I: equation set id */ int* count, /* O: number of idList */ int** idList /* O: list of equation id */ ) /* DESCRIPTION: Output all the equations of equation set. In specified equation set,if no equation, *count=0 and *idList=NULL. The memory referenced by "idList" is allocated by this function. The calling procedure is responsible to free it (cvxMemFree((void**)idList)). Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartInqFaceAt ( int idFace, /* I: face or shape id */ svxFaceAt *At /* O: face/shape display attributes */ ) /* DESCRIPTION: Outputs display attributes of the specified face or shape. Attributes for a shape are grabbed from the first face in the shape. It is assumed the specified face or shape (idFace) resides in the active part. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqFaceBox ( int idFace, /* I: face id */ svxBndBox *Box /* O: face bounding box */ ) /* DESCRIPTION: Gets the bounding box of the specified face in the active file. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqFaceCrvs ( int idFace, /* I: face id */ int *Count, /* O: number of trim curves */ svxCurve **TrimCurves /* O: list of trim curves */ ) /* DESCRIPTION: Outputs a list of the trim curves that bound a face in the active part. The calling application must sort these curves into inner and outer loops as desired. To get the them in sorted order, you must traverse the face and its loops using cvxPartInqFaceLoops(), cvxPartInqLoopEdges() and cvxPartInqEdgeCrv(). The calling procedure MUST deallocate the internal data in each element of the output list by calling cvxCurveFree, after which the output list MUST be deallocated using cvxMemFree((void**)TrimCurves). Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqFaceEdges ( int idFace, /* I: face id */ int *Count, /* O: number of edges */ int **Edges /* O: list of edge id's */ ) /* DESCRIPTION: Outputs a list of indices of the edges that bound a face in the active file. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqFaceFacets ( int idFace, /* I: face id */ int *Count, /* O: number of triangular facets */ svxTriangle **Facets /* O: list of triangular facets */ ) /* DESCRIPTION: Outputs a list of the triangular facets used to display the specified face. Memory for "Facets" is allocated by this function. It MUST be deallocated by the calling procedure with cvxMemFree. It is assumed the specified face (idFace) resides in the active part. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqFaceFacets2 ( int idFace, /* I: face id */ svxFacets *Facets /* O: facet data set */ ) /* DESCRIPTION: Outputs the facets used to display the specified face along with display, texture or shader attributes that may be defined for the face. This function allocates memory for lists inside the input "Facets" structure. The calling procedure is responsible to free the lists using cvxFacetsFree(Facets). It is assumed the specified face (idFace) resides in the active part. This function returns 1 if it fails, 0 if it succeeds. The following is sample code for retrieving and traversing a face's facet data: void TestApi(void) ________________________________________________________________________________ int cvxPartInqFaceFillet ( int idFace, /* I: face id */ int *isFilletFace /* O: fillet flag (1 is fillet face, else is 0) */ ) /* DESCRIPTION: Get the flag indicating if the specified face is a fillet face. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartInqFaceLoops ( int idFace, /* I: face id */ int Inner, /* I: 1 to include inner loops; 0 for just the outer loops */ int *Count, /* O: number of loops */ int **Loops /* O: list of loop id's */ ) /* DESCRIPTION: Outputs a list of indices of the loops (outer and inner) that belong to a face in the active file. Outer loops proceed counterclockwise relative to the natural normal of the parent surface. Inner loops are clockwise. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqFaceSh ( int idFace, /* I: face id */ svxShaderAt *Sh /* O: face shader attributes */ ) /* DESCRIPTION: Outputs shader attributes of the specified face. "Sh->name[0]" is set to "0" (i.e. empty string) if no shader is defined for the face. Checkerboard Shader: Sh->name = "Checker" Sh->color[0] = first checkerboard square color Sh->color[1] = second checkerboard square color Sh->param[0] = scale factor for checkerboard squares Chrome Shader: Sh->name = "Chrome" Sh->image = optional image file reflected on chrome finish Sh->param[0] = reflectance (0.0 - 1.0) Granite Shader: Sh->name = "Granite" Sh->param[0] = scale factor (0.0 - 2.0) Sh->param[1] = noise (0.0 - 10.0) Marble Shader: Sh->name = "Marble" Sh->color[0] = marble base color Sh->color[1] = marble vein color Sh->param[0] = scale factor (0.0 - 200.0) Wood Shader: Sh->name = "Wood" Sh->color[0] = light wood color Sh->color[1] = dark wood color Sh->param[0] = frequency of wood rings (0.0 - 10.0) Sh->param[1] = overall noisiness of wood grain (0.0 - 6.0) Sh->param[2] = noise in X direction (0.0 - 1.0) Sh->param[3] = noise in Y direction (0.0 - 1.0) Sh->param[4] = noise in Z direction (0.0 - 1.0) Sh->param[5] = scale factor (0.0 - 4.0) It is assumed the specified face (idFace) resides in the active part. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqFaceShape ( int idFace, /* I: face id */ int *idShape /* O: id out face's parent shape */ ) /* DESCRIPTION: Gets the id of the specified face's parent shape (within the active file). Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqFaceSrf ( int idFace, /* I: face id */ svxSurface *Srf /* O: face's untrimmed NURBS surface geometry */ ) /* DESCRIPTION: Outputs the untrimmed NURBS surface geometry of the specified face. The calling procedure is responsible for deallocating the memory assigned by this function to the "Srf" structure using cvxSurfaceFree(). It is assumed the specified face (idFace) resides in the active part. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqFaceSrfPrim ( int idFace, /* I: face id */ svxSrfPrim *SrfPrim /* O: face's untrimmed NURBS surface geometry */ ) /* DESCRIPTION: Gets surface geometry for the specified face entity. It is assumed the specified face (idFace) resides in the active part. The calling procedure is responsible for deallocating the memory assigned by this function to the "SrfPrim" structure using cvxSurfaceFree(&SrfPrim->srfData.srf) when SrfPrim->srfType = VX_SF_PRIM_NURB. Returns 1 when the function fails; Returns 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqFaceTx ( int idFace, /* I: face id */ svxTextureAt *Tx /* O: face texture attributes */ ) /* DESCRIPTION: Outputs texture attributes of the specified face. If a texture image file is embedded in a Z3 file, it is automatically extracted to a "temp" sub-folder in the Z3 runtime folder. The path the temp file is output via "Tx->file". It is assumed the specified face (idFace) resides in the active part. Returns 1 if function fails; 0 if it succeeds. See also the cvxPartInqFaceTxFile function. */ ________________________________________________________________________________ int cvxPartInqFaceTxFile ( int idFace, /* I: face id */ vxPath Path /* O: path to texture map's original image file */ ) /* DESCRIPTION: Outputs path to the original image file if a texture map has been applied to a face. Unlike cvxPartInqFaceTx(), which may output the path to a copy of the original image file that ZW3D has put in its temp directory, this function outputs the path that was originally used to create the texture map. The file might no longer exist, although the image may still exist as an embedded object. It is assumed the specified face (idFace) resides in the active part. ZW3D's native texture map command (!CdTMap) does not save the path to the original image file when a texture map is applied to a face with the embed option selected. For faces that have been assigned a texture map using the texture map command rather than the cvxPartSetFaceTx() function, this function outputs the path that the texture map command saves with the face, which will be the path to a copy of the image file in ZW3D's temp directory. Returns 1 if function fails; 0 if it succeeds. See cvxPartInqFaceTx for a function that outputs all texture map attributes. */ ________________________________________________________________________________ int cvxPartInqFacets ( int idBlock, /* I: STL id */ svxSTL *Stl /* O: STL facets */ ) /* DESCRIPTION: Outputs a list of triangular facets of the specified STL. Memory for the STL facets is allocated by this function and assigned to the input data structure (Stl). It MUST be deallocated by the calling procedure using cvxStlFree(). Returns 1 if function fails, 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqFacets2 ( int idBlock, /* I: 3D block id */ svxFacets *Facets /* O: facet data set */ ) /* DESCRIPTION: Outputs the facets stored in the specified 3D block. This function allocates memory for lists inside the input "Facets" structure. The calling procedure is responsible to free the lists using cvxFacetsFree(Facets). It is assumed the specified 3D block (idBlock) resides in the active part. See the description of cvxPartInqFaceFacets2() for additional information. This function returns 1 if it fails, 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqFacetsTxFile ( int idBlock, /* I: 3D block id */ vxPath Path /* O: path to texture map's original image file */ ) /* DESCRIPTION: Outputs path to the original image file if a texture map has been applied to a facet block. Unlike cvxPartInqFacets2(), which outputs the path to a copy of the original image file that ZW3D has put in its temp directory, this function outputs the path that was originally used to create the texture map. The file might no longer exist, although the image may still exist as an embedded object. It is assumed the specified block (idBlock) resides in the active part. Returns 1 if function fails; 0 if it succeeds. See cvxPartInqFacets2 for a function that outputs all texture map attributes. */ ________________________________________________________________________________ int cvxPartInqFlattens ( int* count, /* O: count of idFlattens(flattenNames). */ int** idFlattens, /* O: list of flatten id */ vxLongName** flattenNames /* O: list of flatten name */ ) /* DESCRIPTION: Gets a list of sheet metal flatten id and flatten name in the active part. At least one of idFlattens and flattenNames must exist. The memory referenced by "idFlattens" is allocated by this function. The calling procedure is responsible to free it (cvxMemFree((void**)idFlattens)). The memory referenced by "FlattenNames" is allocated by this function. The calling procedure is responsible to free it (cvxMemFree((void**)FlattenNames)). Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqFlexAsmMat ( svxEntPath AsmPath, /* I: pick-path of assembly */ svxMatrix* AsmMat /* O: transformation matrix of assembly */ ) /* DESCRIPTION: Output specified transformation matrix by pick-path. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqFtrAssoPart ( int idFeature, /* I: index of external feature in active part */ vxLongName fileName, /* O: associated external file name (NULL to ignore) */ vxLongName rootName /* O: associated external root name (NULL to ignore) */ ) /* DESCRIPTION: Get information about the source file associated with the specified external reference feature, including file name, root name. Return value: 1 if function fails; 0 if function succeeds; -1 if feature is not an external reference feature. */ ________________________________________________________________________________ int cvxPartInqFtrChildFtrs ( int idFeature, /* I: index of feature in active part */ int *cnt, /* O: no. of children */ int **list /* O: list of indices of feature's children */ ) /* DESCRIPTION: Get the child features of specified feature. The feature list (list) is allocated by this function and must be deallocated by the calling procedure. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartInqFtrData ( int idFeature, /* I: feature id */ int iNoEval, /* I: 1 to get unevaluated data; else 0 */ int *idData /* O: id of feature data container */ ) /* DESCRIPTION: Outputs the id of a copy of the specified feature's data container. The calling procedure MUST deallocate "idData" using cvxDataFree() after it is done querying "idData" with the cvxDataXXX() functions. The data associated with a feature is stored in a "persistent" format. Entity references in the data are stored in a format that uses entity labels that were current at the time the feature operation was executed. Before the data can be queried for current entity id's, it must be re-evaluated. This can fail if it references entities that no longer exist. Point selections that reference entities (e.g. entity endpoint) can also fail to re-evaluate if the referenced entities no longer exist. Re-evaluation of the feature data is done without rolling the history back to the specified feature. For this reason, the success or failure of this function is very sensitive to whether the current state of the model contains all of the geometry that existed at the time that the feature was originally executed. If you know that the feature data will not re-evaluate based on the current state of the model, you can get the last evaluated state of point and numeric inputs by calling this function with "iNoEval=1". In this case, you will not be able to successfully query any entity data fields in "idData". Returns value: 1 if function fails; 0 if it succeeds; -1 if feature data is undefined. */ ________________________________________________________________________________ int cvxPartInqFtrEnts ( int idFeature, /* I: feature id */ evxEntType EntType, /* I: entity type id */ int *Count, /* O: number of entities */ int **Ents /* O: list of the entity IDs */ ) /* DESCRIPTION: Outputs a list of indices of the entity IDs that belong to the specified feature in the active file. The calling procedure MUST deallocate the output list with cvxMemFree. Right now, this function only support to get shape, face, curve, point, dimension form the feature. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqFtrGroup ( int idFeature, /* I: feature id */ int *idGroup /* O: feature group id */ ) /* DESCRIPTION: Output the index of the feature group where the specified feature is located. Output -1 if the specified feature is not in any feature group. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqFtrList ( int *Count, /* O: number of features in the active part */ int **Features /* O: list of id's of features (i.e. operations) in the active part history */ ) /* DESCRIPTION: Outputs a list of database id's of features (i.e. operations) in the active part's history in the order they are listed there (including hidden operations). If there are no features, "*Count" is output as zero and "*Features" as NULL. This function allocates memory for the array output via "Features". The calling procedure is responsible for deallocating the memory. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqFtrParentFtrs ( int idFeature, /* I: index of feature in active part */ int getAll, /* I: 1 to get all parent features (parents and grandparents) 0 to get just the immediate parent features */ int *cnt, /* O: no. of parent features */ int **list /* O: list of indices of parent features */ ) /* DESCRIPTION: Get a list of parent features upon with the specified feature is dependent. The feature list (list) is allocated by this function and must be deallocated by the calling procedure. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartInqFtrRegenStat ( int idFeature, /* I: feature index */ char *stat /* O: feature regen status as below: 0, regen the feature without suppression 1, feature is manually suppressed 2, feature is automatically suppressed due to the failure of regen 4, feature have suppress condition */ ) /* DESCRIPTION: Outputs the regen state of a feature. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqFtrTemplate ( int idFeature, /* I: feature id */ vxName Template /* O: feature command template name */ ) /* DESCRIPTION: Outputs the name of the command template that defines the input parameters of the specified feature. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqFtrTol ( int idFeature, /* I: feature id */ double *Tolerance /* O: feature tolerance */ ) /* DESCRIPTION: Outputs tolerance used by the specified feature. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqFtrVersion ( int idFeature, /* I: feature id */ int *Version /* O: feature version number */ ) /* DESCRIPTION: Outputs the product version number associated with the specified feature. If "idFeature < 1", outputs the version number of the "active" feature (i.e. the feature currently regenerating). Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqGroupFtrs ( int idGroup, /* I: feature group id */ int* count, /* O: number of elements in the Feature list */ int** ftrList /* O: list of feature id */ ) /* DESCRIPTION: Output all feature_id within the specified feature group. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqGroupList ( int* count, /* O: number of features in the active part */ int** groups /* O: list of id's of groups in the active part history */ ) /* DESCRIPTION: Outputs a list of database id's of feature groups in the active part's history in the order they are listed there. If there are no groups, "*count" is output as zero and "*groups" as NULL. This function allocates memory for the array output via "groups". The calling procedure is responsible for deallocating the memory. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqHoles ( vxLongName File, /* I: part file name (File[0]=0 or NULL for active file) */ vxLongName Part, /* I: part name (Part[0]=0 or NULL for active part) */ int *Count, /* O: number of holes */ svxHoleData **Holes /* O: list of holes */ ) /* DESCRIPTION: Outputs a list of holes that belong to the specified part. The calling procedure MUST deallocate the output list using cvxPartFreeHoles(Count, Holes); The "idInsFace" and "idUntilFace" fields of the "svxHoleData" structure are not currently supported. They are always output as zero. "ThreadType" is always output as VX_THREAD_CUSTOM. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqLoopEdges ( int idLoop, /* I: loop id */ int *Count, /* O: number of edges */ int **Edges /* O: list of edge id's */ ) /* DESCRIPTION: Outputs a list of indices of the edges that belong to a loop on a face in the active file. Edges are output in the order they occur in the loop. The calling procedure MUST deallocate the output list with cvxMemFree. Outer loops proceed counterclockwise relative to the natural normal of the parent surface. Inner loops are clockwise relative to the natural surface normal. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqLoopFace ( int idLoop, /* I: loop id */ int *idFace /* O: id of loop's parent face */ ) /* DESCRIPTION: Outputs the id of the parent face of the specified loop within the active file. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqLoopInner ( int idLoop, /* I: loop id */ int *isInner /* O: inner loop flag (1=inner, 0=outer) */ ) /* DESCRIPTION: Determine whether a given loop is an outer or inner loop. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartInqLoopPreEdges ( int idLoop, /* I: loop id */ int *Count, /* O: number of PreEdges */ int **PreEdges /* O: list of PreEdge id's */ ) /* DESCRIPTION: Outputs a list of indices of the PreEdges that belong to a loop on a face in the active file. PreEdges are output in the order they occur in the loop. The calling procedure MUST deallocate the output list with cvxMemFree. Outer loops proceed counterclockwise relative to the natural normal of the parent surface. Inner loops are clockwise relative to the natural surface normal. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqPMIDimEnts ( int idDim, /* I: id of PMI dimension */ int *Count, /* O: number of entities associated with the dimension */ svxEntPath **EntPaths /* O: pick path of entities associated with the dimension */ ) /* DESCRIPTION: Outputs the pick path list of entities associated with the specified PMI dimension. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqPoints ( int *count, /* O: number of points */ int **pointIdx /* O: list of points' indices */ ) /* DESCRIPTION: Outputs a list of indices of point objects that belong to the active part. The calling procedure MUST deallocate the output list with cvxMemFree. Returns value: 1: function fails; 0: it succeeds. */ ________________________________________________________________________________ int cvxPartInqPreEdgeInfo ( int idPreEdge, /* I: id of PreEdge within a loop on a face in the active part */ svxPreEdge *PreEdge /* O: information about the PreEdge */ ) /* DESCRIPTION: Outputs information about the specified PreEdge (idPreEdge) to the structure referenced by the input pointer (PreEdge). Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqPreEdgeStartPnt ( int idPreEdge, /* I: id of PreEdge within a loop on a face */ int *idEdge, /* O: id of PreEdge's parent edge */ svxPoint2 *StartPnt /* O: coordinates of PreEdge start point */ ) /* DESCRIPTION: Gets the coordinates of the specified PreEdge's start point relative to its parent loop direction. Also, outputs the id of the PreEdge's parent edge. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqShapeBox ( int idShape, /* I: shape or face id */ svxMatrix *Mat, /* I: optional local frame (or NULL) */ svxBndBox *Box /* O: shape bounding box */ ) /* DESCRIPTION: Gets the bounding box of the specified shape in the active file. If "*Mat = NULL" && the target object class isn't VX_ROOT_PART(evxRootType), the bounding box coordinates are given relative to the global frame of the parent part. If the target object class is VX_ROOT_PART && "*Mat = NULL", initializes "Mat" to the identity matrix. The "idShape" must belong to the active part, a bounding box relative to the specified local coordinate frame is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqShapeComp ( int idShape, /* I: shape id (in active file) */ int *idComp /* O: shape's parent component (0 if undefined) */ ) /* DESCRIPTION: Outputs the id of the component from which the specified shape was merged. Outputs "idComp = 0" if the shape was not merged from a component. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqShapeEdges ( int idShape, /* I: shape id */ int *Count, /* O: number of edges */ int **Edges /* O: list of edge id's */ ) /* DESCRIPTION: Outputs a list of indices of the edges that belong to the specified shape in the active file. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqShapeFaces ( int idShape, /* I: shape id */ int *Count, /* O: number of faces */ int **Faces /* O: list of face id's */ ) /* DESCRIPTION: Outputs a list of indices of the faces that belong to the specified shape in the active file. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqShapeFtrs ( int idShape, /* I: shape id */ int Option, /* I: 0-get all dependencies; 1-get just shape generating features */ int *Count, /* O: number of features */ int **Features /* O: list of feature id's */ ) /* DESCRIPTION: Outputs a list of indices of the features associated with the specified shape in the active part. By default (Option = 0), this includes features that generate the shape, features on which the generative features are dependent for their definition and features that modify attributes of the shape. If "Option=1", only features that generate shape geometry are output, insofar as that classification can be made. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqShapeMass ( int idShape, /* I: id of shape in active part */ double Density, /* I: density (kg/mm^3) */ svxMassProp *Prop /* O: mass properties for specified shape */ ) /* DESCRIPTION: Calculates mass properties for the specified shape in the active part. If Density = 0, the shape's default density is used. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqShapeOpen ( int idShape, /* I: shape id (in active file) */ int *isOpen /* O: open flag for shape (1=open, 0=closed) */ ) /* DESCRIPTION: Get the flag indicating if shape is open. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartInqShapes ( vxLongName File, /* I: part file name (File[0]=0 or NULL for active file) */ vxLongName Part, /* I: part name (Part[0]=0 or NULL for active part) */ int *Count, /* O: number of shapes */ int **Shapes /* O: list of shape id's */ ) /* DESCRIPTION: Outputs a list of indices of the shapes that belong to the specified part. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqShtMetalThick ( int idShape, /* I: index of shape */ double *thick /* O: thick */ ) /* DESCRIPTION: Get thickness of the specified sheet metal. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartInqSmdPairFaces ( int idFace, /* I: index of face */ int *count, /* O: number of opposite faces */ int **faces /* O: list of opposite face id's */ ) /* DESCRIPTION: Outputs a list of indices of the face opposite to the input face in a sheet metal solid. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqSmdSrfType ( int idFace, /* I: face id */ evxSmdSurfaceType* type /* O: sheet metal surface type */ ) /* DESCRIPTION: Get surface type of sheet metal. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqSmdStatFace ( int idShape, /* I: id of sheet metal solid */ int* idFace /* O: id of stationary face */ ) /* DESCRIPTION: Get the stationary face of the shape specified by idFace. Returns 1 if error happens, else return 0. */ ________________________________________________________________________________ int cvxPartInqSmdStatFcs ( int idShape, /* I: shape id */ int* countStat, /* O: count of "statFcs" (NULL to ignore) */ int** statFcs, /* O: see description(NULL to ignore) */ int* countPair, /* O: count of "pairStatFcs" (NULL to ignore) */ int** pairStatFcs /* O: see description(NULL to ignore) */ ) /* DESCRIPTION: Get the faces on the same side as the stationary face(statFaces). Get the faces opposite the stationary face(pairStatFaces). NOTES: Sheet metal must have a stationary face to call this interface. The memory referenced by "statFcs" is allocated by this function. The calling procedure is responsible to free it (cvxMemFree((void**)statFcs)). The memory referenced by "pairStatFcs" is allocated by this function. The calling procedure is responsible to free it (cvxMemFree((void**)pairStatFcs)). Returns 1 if function fails; 0 if it succeeds; -1 if not found stationary face. */ ________________________________________________________________________________ int cvxPartInqTagNames ( int *Count, /* O: number of tag names */ vxLongName** Names /* O: list of tag names */ ) /* DESCRIPTION: Outputs a list of tag names that belong to the current active part. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqTempData ( int idPart, /* I: part id (-1 to use the active part)*/ int* count, /* O: count of datas */ int** datas /* O: temp datas */ ) /* DESCRIPTION: Get the temp data of the specified part or active part. Such as the curves' id of the Section View. The memory referenced by "datas" is allocated by this function. The calling procedure is responsible to free it (cvxMemFree((void**)datas)). Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqVars ( vxLongName File, /* I: part file name (File[0]=0 or NULL for active file) */ vxLongName Part, /* I: part name (Part[0]=0 or NULL for active part) */ int *Count, /* O: number of variables */ svxVariable **Variables /* O: list of variables */ ) /* DESCRIPTION: Outputs a list of variables that belong to the specified part. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqVertexEdges ( int idEdge, /* I: the index of edge */ int EndPnt, /* I: 0 to use the starting vertex of the edge, 1 to use the end vertex of the edge */ int *Count, /* O: the count of edges */ int **Edges /* O: the list of edges */ ) /* DESCRIPTION: Gets all associated edges of the specified vertex of edge in the active file. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqView ( int idView, /* I: database id of view saved in the active part */ svxView *View /* O: view information */ ) /* DESCRIPTION: Outputs the parameters of the specified view saved in the active part. This function returns 1 if it fails, 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartInqViews ( int *Count, /* O: number of 3D views saved in the active part */ int **Views /* O: list of id's of 3D views saved in the active part */ ) /* DESCRIPTION: Outputs all view ids under the view manager for the current part,including standard views,custom views, and sectional views. This function allocates memory for the array output via "Views". The calling procedure is responsible for deallocating the memory. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartIns ( svxPartInstData *Part, /* I: component data */ int *Count, /* O: number of shapes (NULL to ignore) */ int **ShapeList /* O: list of shape id's (NULL to ignore) */ ) ________________________________________________________________________________ int cvxPartInterXCurve ( const svxInterCrvData* pFaces, /* I: faces to intersect */ int* idFtr /* O: id of new curves list (pass in NULL to ignore) */ ) /* DESCRIPTION: Use this function to create a curve or curves at the intersection of two or more faces, open shapes, or solids. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartIsectShpChk ( int idBaseShape, /* I: the need check intersection shape 1 */ int idOpShape /* I: the need check intersection shape 2 */ ) /* DESCRIPTION: Determine exist or not exist intersection between the input two shapes. Returns 1 if found shape isect; 0 if it no shape isect or error occurs. */ ________________________________________________________________________________ int cvxPartIsectShpChk2 ( int idBaseShape, /* I: the need check intersection shape 1 */ int idOpShape, /* I: the need check intersection shape 2 */ int fClosedChk /* I: option to control whether check the open shell 1 is excluding the open shell. otherwise is 0 */ ) /* DESCRIPTION: Determine exist or not exist intersection between the input two shapes. If should check the two shapes are closed, it will return 0 if any shape of them is not closed. Returns 1 if found shape isect; 0 if it no shape isect or error occurs. */ ________________________________________________________________________________ int cvxPartLine2pt ( svxPoint *Start, /* I: start point */ svxPoint *End, /* I: end point */ int *idEnt /* O: id of new 3D line entity */ ) /* DESCRIPTION: Adds a 3D line to the active part. If "idEnt" is not NULL, the id of the new line entity is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartLip ( svxLipData *Lip, /* I: lip input data */ int *idLip /* O: id of lip feature (NULL to ignore) */ ) /* DESCRIPTION: Use this function to create a constant lip feature along selected edges based on two offset distances. The required inputs include the face edges to feature and the 1st and 2nd offsets. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartLoft ( svxLoftData *Loft, /* I: loft input data */ int *idShape /* O: id of new shape (NULL to ignore) */ ) /* DESCRIPTION: Use this function to create a loft feature. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartMassProp(void) /* DESCRIPTION: Appends an operation to the history of the active part to calculate mass properties for the part, assigning the results to the variables named Part_Area, Part_Volume and Part_Mass. Returns 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartMirrorFtr ( svxMirrorFtr *Mirror, /* I: mirror feature input data */ int *idFtr /* O: id of mirror feature (NULL to ignore) */ ) /* Use this function to mirror features. Returns 1 if the function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartMirrorGeom ( svxMirrorGeom *Mirror,/* I: mirror geomtry input data */ int *NumNewEnts, /* O: number of new entities (NULL to ignore) */ int **idNewEnts /* O: list of id's of new entities (NULL to ignore) */ ) /* Use this function to mirror any combination of shapes, components, curves, points, sketches and datum planes. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if the function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartMkEntExternal ( int idEnt, /* I: index of the profile/datum to make internal/external */ int external /* I: 1-make external, else 0 */ ) /* DESCRIPTION: Make the specified profile/datum internal/external. Note: The profile/datum must be used by only one feature. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartMove ( const svxMoveData *Move,/* I: Move data */ int *idMove /* O: Move feature id (NULL to ignore)*/ ) /* DESCRIPTION: Adds the specified Move(s) to the active part and outputs the id of the corresponding history operation. Pass in NULL for "idMove" if the output is not required. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartMovePntToPnt ( int idEntity, /* I: id of geometry entity to move */ svxAxis *Start, /* I: start point and direction */ svxAxis *End /* I: end point and direction */ ) /* DESCRIPTION: Moves the specified geometry within the active part from one point "Start->Pnt" to another "End->Pnt". It also changes the orientation of the part based on "Start->Dir" and "End->Dir". If the directions are same, the orientation of the geometry is not changed -- it is simply translated. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartMoveTransform ( int idEntity, /* I: id of geometry entity to move */ const svxMatrix *Mat /* I: transformation matrix */ ) /* Applies the specified general transformation to a geometry entity, moving the entity within the active part. If "Mat" includes scaling, the scale factors are ignored. Returns 1 if the function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartMoveTransformList ( int Count, /* I: number of entities to transform */ const int *Entities, /* I: list of geometry entity ids */ const svxMatrix *Mat /* I: transformation matrix */ ) /* Applies the specified general transformation to a list of geometry entities, moving the entities within the active part. "Entities" may be NULL only if "Count" is 0. If "Mat" includes scaling, the scale factors are ignored. Returns 1 if the function fails; 0 if it succeeds. It is not an error if "Count" is 0. */ ________________________________________________________________________________ int cvxPartNSided ( const svxNSidedData * NSidedData, /* I: input boundary */ int *idShape /* O: id of new shape */ ) /* DESCRIPTION: This API is to do the N-sided function for entities. The id of entity newly created is output by idShape. Return 0 if successful. */ ________________________________________________________________________________ int cvxPartNameLastOp ( vxName NewName /* I: new name for last history operation */ ) /* DESCRIPTION: If history regen is not active, the input name is assigned to the last operation in the active part's history. The name is forced to be unique within the active history by appending an id to it if necessary. The seed name should be short enough that a 4 character id can be appended to it without making the name longer than 31 single-byte characters. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartNewDatum ( svxMatrix *Frame, /* I: transformation matrix */ int *idDatum /* O: id of new datum */ ) /* DESCRIPTION: This function add a new datum plane to the active part according to the Frame. It is different to cvxPartDatum(). If "idDatum" is not NULL, the id of the new datum is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ void cvxPartPartialResults ( int Disable /* I: 1 to disable partial results, 0 to re-enable it */ ) /* DESCRIPTION: Passing 1 to this function disables the prompt for partial fillet results and causes a failed fillet to exit rather than attempt to generate partial results. Passing 0 to this function re-enables the prompt for partial fillet results. This function MUST be called in pairs, first with "iDisable=1", then with "iDisable=0". Otherwise partial results could become permanently disabled during the active session. */ ________________________________________________________________________________ int cvxPartPatternFtr ( int Count, /* I: number of entities for pattern */ int *idFtrs, /* I: list of id's of features */ const svxPtnFtr *Pattern,/* I: pattern input data */ int *idPattern /* O: id of pattern feature (NULL to ignore) */ ) /* DESCRIPTION: Use this function to pattern any combination of features. eight different methods of patterning are available, each method requires different types of input. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartPatternGeom ( int Count, /* I: number of entities for pattern */ int *idEnts, /* I: list of id's of entities (supported entities include: shape,face,curve,point,sketch,datum plane,datum axis,datum CSYS) */ const svxPtnGeom *Pattern, /* I: pattern input data */ int *idPattern /* O: id of pattern feature (NULL to ignore) */ ) /* DESCRIPTION: Use this function to pattern any combination of shapes, faces, curves, points, text, sketches, datum planes and patterns of patterns. eight different methods of patterning are available, each method requires different types of input. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartPhyAttrCalc ( vxLongName Name /* I: part name */ ) /* DESCRIPTION: Calculate physical attributes of the specified part. If Name = "" or NULL, it will calculate current active part's physical attributes. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartPlaneAdd ( const svxNewPlaneData* plane, /* I: new plane data */ int* idPlane /* O: id of new plane (pass in NULL to ignore) */ ) /* DESCRIPTION: This function add a new datum Plane to the active part according to the svxNewPlaneData. If "idPlane" is not NULL, the id of the new datum Plane is output. This function is similar to cvxPartPlaneNew. This interface uses a different command template than cvxPartPlaneNew. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartPlaneNew ( svxPlaneData *Plane, /* I: Plane data */ int *idPlane /* O: id of new Plane (NULL to ignore) */ ) /* DESCRIPTION: This function add a new datum Plane to the active part according to the svxPlaneData. If "idPlane" is not NULL, the id of the new datum Plane is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartPlnCrv ( int idCrv, /* I: id of curve entity */ svxPoint *Origin, /* I: point at or near plane origin on curve */ svxPoint *Xaxis, /* I: point lying on plane of new datum's X axis (or NULL) */ int *idPln /* O: id of new datum plane (or NULL) */ ) /* DESCRIPTION: Adds a datum plane to the active part that is normal to the specified curve "idCrv", with its origin located at the point on "idCrv" that lies closest to the input "Origin" point. If the reference point "Xaxis" is specified (i.e. not NULL), the new datum plane is oriented so that its X axis lies in the plane that contains "Xaxis" and the new datum's Z axis. That is, the point "Xaxis" specifies the XZ plane of the new datum. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartPlnCrv2 ( int idCrv, /* I: id of curve entity */ svxData *Origin, /* I: point at or near plane origin on curve */ svxData *Xaxis, /* I: point lying on plane of new datum's X axis (or NULL) */ int Flip, /* I: 0-ignore this input; 1-flip plane 180 degrees about X axis; 2-flip plane about Y axis; 3-flip about Z axis */ int *idPln /* O: id of new datum plane (or NULL) */ ) /* DESCRIPTION: Adds a datum plane to the active part that is normal to the specified curve "idCrv", with its origin located at the point on "idCrv" that lies closest to the input "Origin" point. If the reference point "Xaxis" is specified (i.e. not NULL), the new datum plane is oriented so that its X axis lies in the plane that contains "Xaxis" and the new datum's Z axis. That is, the point "Xaxis" specifies the XZ plane of the new datum. If "Flip" is non-zero, flip the datum plane 180 degrees about the specified axis. Besides the "Flip" argument, the difference between this function and cvxPartPlnCrv() is that "Origin" and "Xaxis" can be defined more flexibly using the parameters available in "svxData". The calling procedure is responsible for defining "svxData" correctly. Note - Make sure you zero the entire "svxData" structure before initializing specific parameters {svxData Origin; cvxMemZero(&Origin,sizeof(Origin);}. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartPlnSrf ( int idFace, /* I: id of face entity */ svxPoint *Origin, /* I: point at or near plane origin on face */ int *idPln /* O: id of new datum plane (or NULL) */ ) /* DESCRIPTION: Adds a datum plane to the active part that is tangent to the surface of the specified face "idFace", with its origin located at the point on "idFace" that lies closest to the input "Origin" point. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartPlnSrf2 ( int idFace, /* I: id of face entity */ svxPoint *Origin, /* I: point at or near plane origin on face */ svxPoint *XZ, /* I: point on XZ plane (NULL to ignore) */ int Flip, /* I: flip plane about an axis (see DESCRIPTION) */ int *idPln /* O: id of new datum plane (NULL to ignore) */ ) /* DESCRIPTION: Adds a datum plane to the active part that is tangent to the surface of the specified face "idFace", with its origin located at the point on "idFace" that lies closest to the input "Origin" point and its Z axis pointing along the face's outward normal at "Origin". If "XZ" is a non-NULL pointer to a 3D point, the point is used to control the plane's orientation by rotating the plane about its Z axis (face's outward normal) until its XZ plane intersects the point. If "Flip" is non-zero, the plane is flipped 180 degrees about its X axis (Flip=1), Y axis (Flip=2) or Z axis (Flip=3). Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartPnt ( svxPoint *Point, /* I: point coordinates */ int *idEnt /* O: id of new point entity */ ) /* DESCRIPTION: Adds a 3D point entity to the active part. If "idEnt" is not NULL, the id of the new point entity is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartPntBlock ( vxLongName Name, /* I: point block name */ int Count, /* I: number of points */ svxPointf *Points, /* I: list of points */ int *idEnt /* O: id of new point block (input NULL to ignore this output) */ ) /* DESCRIPTION: Adds a 3D point block to the active part. If "idEnt" is not NULL, the id of the new block is output. The active point attribute color is assigned to the new point block. This function will only add point blocks to parts for which explicit (i.e. history free) point cloud management is enabled (the default mode for parts created with version 18 or later). Returns 1 if function fails; 0 if it succeeds; -1 if explicit mode is not enabled. */ ________________________________________________________________________________ int cvxPartPnts ( int Count, /* I: number of points */ svxPoint *Points /* I: list of points */ ) /* DESCRIPTION: Adds a list 3D point entities to the active part. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartPntsOnCrv ( int idCrv, /* I: id of curve entity in active object */ svxPoint *Pnt, /* I: reference point that specifies which end of the curve to start from; this input is only necessary if "Dist" is defined (i.e. non-zero); if this argument is NULL, the geometric start point of the curve will be used if needed. */ int Num, /* I: the number of points to create along the curve; if "Dist" is zero, then the specified number of points will be created along the curve with equal spacing between them; if "Dist" is "non-zero", then "Num" points will be created along the curve with "Dist" as the spacing between each point; in this case, "Pnt" should be input and an extension option should be defined in case the specified number of points at the specified distance exceeds the length of the curve; if "Num" is input as zero, then "Dist" must be specified; in this case, points are created the specified distance apart, beginning at the end of the curve closest to "Pnt" and ending at/before the other end of the curve. */ double Dist, /* I: the distance (mm) between points (see description of "Num" argument) */ evxExtendOpt Opt, /* I: extension option is "Dist" is non-zero */ int *Count, /* I: if this argument is not NULL, output the number of points created */ int **idEnts /* I: if "Count" is not NULL, and this argument is not NULL, a list of the database id's of the point entities created by this function is output. Memory for the list is allocated by this function. The calling procedure is responsible to free the memory. */ ) /* DESCRIPTION: Creates point entities spaced on and along a curve based on the specified input parameters. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartProjStl ( int idStl, /* I: STL id */ int idPln, /* I: plane id */ double tol, /* I: refit tolerance */ double smth, /* I: refit smooth */ int *idCurve /* O: id of STL boundary curve */ ) /* DESCRIPTION: Project the STL to a plane, to get its boundary curve. Output new boundary curve via "idCurve". Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartRectangle ( svxRectangleData *rectData, /* I: rectangle input data */ int *iCnt, /* O: number of output entities */ int **idEnt /* O: id of new 3D rectangle entities */ ) /* DESCRIPTION: Add a 3D rectangle to the active part. The rectangle lies on the specified plane with the specified center. Commonly, the output number "iCnt" should be 4. If "idEnt" is not NULL, the id of 4 lines of the rectangle is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartRedefineIsActive(void) /* DESCRIPTION: Returns 1 if a part feature is currently being redefined. Otherwise, returns 0. */ ________________________________________________________________________________ int cvxPartRefGeom ( svxEntPath *GeomPath, /* I: pick-path of external geometry relative to top-level parent file */ int AssociativeCopy, /* I: 0 for static copy; 1 for associative copy; 2 for time-stamped associative copy; 3 for time-stamped associative copy - assembly position independent. */ int *idGeom /* O: id of new geometry (NULL to ignore) */ ) /* DESCRIPTION: Creates a copy of the specified external geometry (face, shape, curve or edge) in the active target part. The input pick-path must give the full traversal path to the external geometry relative to the top-level part of the parent assembly of the active target part. The id of the new geometry created in the active part is output via "idGeom". Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartRegenFacets ( int Count, /* I: number of faces */ int *idFaces, /* I: list of face id's in active part */ int Assembly, /* I: 1 to regenerate facets for active assembly, else 0 */ int LOD, /* I: 1 to generate level-of-detail, else 0 */ double Tol /* I: chord-height tolerance for facet generation (0.0 for default) */ ) /* DESCRIPTION: Regenerates triangle facet data used to display the specified faces (Count and idFaces). If no faces are specified (Count=0 and idFaces=NULL), all faces in the active part are retessellated at the specified tolerance (Tol). If "Assembly != 0", all faces in the active assembly are retessellated. If "Tol" is input as zero, a tolerance based on the active view extent is used. If "LOD != 0", levels of detail are calculated for faces that are retessellated. That means that facet data is generated at a tight tolerance, then organized into several levels of detail from coarse to fine. Level-of-Detail generates more data for each face, but the speed and quality of face display can be optimized based on the size of a face relative to the active view extent. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartRegenIsActive(void) /* DESCRIPTION: Returns 1 if a part feature is currently regenerating. Otherwise, returns 0. */ ________________________________________________________________________________ int cvxPartRevolve ( svxRevolveData *Rev, /* I: input data */ int *idShape /* O: id of new shape */ ) /* DESCRIPTION: Creates a revolved shape and adds it to the active part using the specified combination method. If "idShape" is not NULL and "Ext->Combine = V_BOOL_NONE", the id of the shape created by this function is output via "idShape". If multiple shapes could be created, use cvxEntNewList() to get their id's. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartRib ( svxRibData *Rib, /* I: rib input data */ int *idRib /* O: id of rib feature (NULL to ignore) */ ) /* DESCRIPTION: Use this function to create a rib feature using an open profile sketch, curve, edge or curve list. The required inputs include the profile, rib thickness, draft angle, boundary faces and the draft plane. The boundary faces can limit or expand the extent of the rib feature. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartScale ( int Count, /* I: number of entities */ int *idEnts, /* I: list of entity id's */ double X_scale, /* I: X scale factor */ double Y_scale, /* I: Y scale factor */ double Z_scale, /* I: Z scale factor */ int idDatum /* I: optional datum plane entity (input 0 to ignore) */ ) /* DESCRIPTION: Scales the specified entities in the active part by the input scale factors relative to the X, Y, Z axes and origin of the active part. If "idDatum > 0", the entities(idEnts) are scaled relative to the origin and the X, Y, Z axes of the reference plane. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartScale2 ( int Count, /* I: number of entities */ int *idEnts, /* I: list of entity id's */ double X_scale, /* I: X scale factor */ double Y_scale, /* I: Y scale factor */ double Z_scale, /* I: Z scale factor */ int idDatum, /* I: optional datum plane entity (input 0 to ignore) */ svxPoint *CentPnt /* I: optional center point entity (input NULL to ignore) */ ) /* DESCRIPTION: Scales the specified entities in the active part by the input scale factors relative to the X, Y, Z axes and origin of the active part. If "idDatum > 0", the entities(idEnts) are scaled relative to the origin and the X, Y, Z axes of the reference plane. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSetCustomStr ( int idEnt, /* I: part id */ const char *CustomString, /* I: custom string */ int *idStr /* O: custom string id, NULL to ignore */ ) /* DESCRIPTION Set custom string attached to a entity. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSetFaceAt ( int Count, /* I: number of faces (or shapes) */ int *idFaces, /* I: list of face or shape id's */ const svxFaceAt *At /* I: face display attributes */ ) /* DESCRIPTION: Changes display attributes of the specified faces or shapes. It is assumed the specified faces or shapes reside in the active part. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSetFaceTx ( int idFace, /* I: face id */ const svxTextureAt *Tx /* I: face texture attributes */ ) /* DESCRIPTION: Set texture attributes of the specified face. It is assumed the specified face (idFace) resides in the active part. The 'opt' field of svxTextureAt structure is not supported now. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSew ( double Tol, /* I: 3D proximity tolerance (mm) (0.0 for default) */ int *OpenEdges, /* O: number of unmatched/open edges after sew (or NULL) */ double *MaxGap /* O: maximum gap between all unmatched edges (or NULL) */ ) /* DESCRIPTION: Matches and sews free edges in the active part using the input proximity tolerance. If "Tol" is input as 0.0, the active part's default proximity tolerance is used. Input NULL for "OpenEdges" and/or "MaxGap" if you are not interested in the information returned via those variables. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSewForce ( double Tol /* I: 3D proximity tolerance (mm) (0.0 for default) */ ) /* DESCRIPTION: Matches and sews free edges in the active part using the input proximity tolerance. If "Tol" is input as 0.0, the active part's default proximity tolerance is used. Unlike cvxPartSew(), this function attempts to "force" open edges to sew to adjacent edges that are "close" but not within tolerance. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartShapeFaceOffset ( svxFaceOffData *Offset, /* I: face offset input data */ int *idOffset /* O: id of offset feature (NULL to ignore) */ ) /* DESCRIPTION: Use this function to offset one or more faces of a shape. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartShapeStructGet ( int idShape, /* I: entity id*/ svxWeldAttr *at /* O: structural attributes */ ) /* DESCRIPTION: Outputs the structural attributes of specified shape. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartShell ( const svxShellData *Shell, /* I: Shell data */ int *idShell /* O: id of feature operation that created Shell (NULL to ignore) */ ) /* DESCRIPTION: Adds the specified shell(s) to the active part and outputs the id of the corresponding history operation. Pass in NULL for "idShell" if the output is not required. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ void cvxPartShowAll(void) /* DESCRIPTION: Set the scope of display traversal to include all objects, originating with the root object. This affects operations such as drawing and picking in all views. */ ________________________________________________________________________________ int cvxPartShowPreview ( vxLongName fileName, /* I: file name */ vxLongName rootName /* I: root name */ ) /* DESCRIPTION: This interface opens a small window to preview the contents of a file. NOTES: The fileName cannot be equal to the active file name. The rootName cannot be equal to the active root name. If the small window is open, the small window is not refreshed. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ void cvxPartShowTarg(void) /* DESCRIPTION: Limit the scope of display traversal to only the active target object. This affects operations such as drawing and picking in all views. For example, when the root object is an assembly and the active target is one of its components, this function prevents other components in the assembly from being drawn. If the root object is the active target, this function and cvxPartShowAll() produce the same results. */ ________________________________________________________________________________ int cvxPartSimplify ( int numEnts, /* I: number of face or feature to remove and gap edges to fill */ int *idEnts, /* I: list of id's of face or feature to remove and gap edges to fill */ int *idSimplify /* O: id of simplify feature (NULL to ignore) */ ) /* DESCRIPTION: Use this function to simplify a part by removing specified faces. The function will attempt to extend and reconnect faces to close the resulting gaps in the part. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSkIns ( vxLongName File, /* I: name of ZW3D file that contains the sketch as root object */ vxLongName Name, /* I: name of sketch root object */ svxMatrix *Plane, /* I: sketch insertion plane */ int *idSketch /* O: id of new sketch (NULL to ignore) */ ) /* DESCRIPTION: Inserts a copy of the specified sketch in the active part on the specified insertion plane. It is assumed that "File" resides in one of the default search directorie. If "idSketch" is not NULL, the id of the new sketch is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSkIns2 ( vxLongName File, /* I: name of ZW3D file that contains the sketch as root object */ vxLongName Name, /* I: name of sketch root object */ int idPlane, /* I: datum plane id */ int iAsso, /* I: option of associate copy*/ int *idSketch /* O: id of new sketch (NULL to ignore)*/ ) /* DESCRIPTION: Inserts a copy of the specified sketch in the active part on the specified datum plane. The sketch location will be associatively linked to the datum plane -- if the datum plane is moved (via history redefine/regen), the sketch will move with it. It is assumed that "File" resides in one of the default search directorie. If "idSketch" is not NULL, the id of the new sketch is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSkNew ( svxMatrix *Plane, /* I: sketch insertion plane */ int *idSketch /* O: id of new sketch */ ) /* DESCRIPTION: Adds a new sketch to the active part, aligned with the specified insertion plane. The sketch is activated for editing. Exit the sketch edit mode (back to editing the parent part) using cvxRootExit() or cvxSkActivate(0,0). If "idSketch" is not NULL, the id of the new sketch is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSkPlane ( svxSketchData *SkData, /* I: sketch input data */ int *idSketch /* O: id of new sketch (NULL to ignore) */ ) /* DESCRIPTION: Adds a new sketch to the active part, aligned with the specified insertion plane. The sketch is activated for editing. Exit the sketch edit mode (back to editing the parent part) using cvxRootExit() or cvxSkActivate(0,0). If "idSketch" is not NULL, the id of the new sketch is output. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSmdAtGet ( svxSmdAt* at /* O: sheet metal attribute */ ) /* DESCRIPTION: Get the sheet metal attribute values. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSmdAtSet ( const svxSmdAt* at /* I: sheet metal attribute */ ) /* DESCRIPTION: Set the sheet metal attribute values. If there is no sheet metal, it will create one. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSmdCloseCorner ( const svxCloseCornerData* CornerData, /* I: close corner data */ int *idSmdCorner /* O: index of close corner (NULL to ignore) */ ) /* DESCRIPTION: Adds the specified close corner feature to the active part and outputs the id of the corresponding history operation. Pass in NULL for "idSmdCorner" if the output is not required. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSmdDimple ( svxDimpleData *Dimple, /* I: dimple input data */ int *idDimple /* O: id of dimple feature (NULL to ignore) */ ) /* DESCRIPTION: Use this function to create a raised dimple feature in a sheet metal part. The dimple(s) can be placed on any flat face including flanges and will be extended in the direction of the face. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSmdExtrudeFlange ( const svxExtrudeFlangeData* data, /* I: smd extrude flange data */ int* idExtFlange /* O: id of smd extrude flange (NULL to ignore) */ ) /* DESCRIPTION: Use this function to create sheet metal flange feature, can create flange feature. Extrude a close or open profile to be a flange, it will offset the thick and add the bend. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartSmdExtrudeTab ( const svxSmdExtrudeTabData* data, /* I: Smd Extrude Tab data */ int* idExtTab /* O: id of tab (NULL to ignore) */ ) /* DESCRIPTION: Use this function to create sheet metal flange feature, can create tab feature. Extrude a close profile to be a base tab. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartSmdFold ( const svxFoldData *Fold, /* I: Smdfold data */ int *idSmdFold /* O: Smdfold id */ ) /* DESCRIPTION: Adds the specified fold(s) to the active part and outputs the id of the corresponding history operation. Pass in NULL for "idSmdFold" if the output is not required. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSmdFullFlange ( const svxSmdFullFlangeData* data, /* I: Smd Full Flange data */ int* idFull /* O: id of full flange ,NULL to ignore */ ) /* DESCRIPTION: Use this function to add full face flanges to the multi-edges of a sheet metal part. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSmdHemFlange ( const svxSmdHemFlangeData* data, /* I: Smd Hem Flange data */ int* idHem /* O: id of hem flange , NULL to ignore */ ) /* DESCRIPTION: Use this function to add various curly shape on edges of the sheet metal model, the thickness are same as the sheet metal model. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSmdLouver ( const svxLouverData *LouverData, /* I: louver data */ int *idSmdLouver /* O: index of louver (NULL to ignore) */ ) /* DESCRIPTION: Adds the specified louver feature to the active part and outputs the id of the corresponding history operation. Pass in NULL for "idSmdLouver" if the output is not required. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSmdNormalCut ( const svxNormalCutData* pData, /* I: NormalCut data */ int* numShape, /* O: number of resulting shapes (NULL to ignore) */ int** idShapes /* O: list of id's of resulting shapes (NULL to ignore) */ ) /* DESCRIPTION: Use this function to create Normal Cut at shapes by Profile P. Pass in NULL for "idShapes" and "numShape" if the output is not require, or it will return the new shapes. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSmdPartialFlange ( const svxSmdPartialFlangeData* data, /* I: Smd Partial Flange data */ int* idPartial /* O: id of Partial Flange, NULL to ignore */ ) /* DESCRIPTION: Use this function to add a partial flange to the edge of a sheet metal part. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSmdProfFlange ( const svxSmdFlangeProfData* data, /* I: Smd Flange with profile data */ int* idFlange /* O: id of Flange with profile ,NULL to ignore */ ) /* DESCRIPTION: Use this function to create a sheet metal profile flange. This function is similar to cvxPartSmdFullFlange(), but the shape of the bend and flanges is controlled by the profile. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSmdPunch ( const svxPunchData* pData, /* I: Punch data */ int* idShape /* O: id's of resulting shape (NULL to ignore) */ ) /* DESCRIPTION: Use this function to act on the sheet metal, which can be completed punching forming. Pass in NULL for "idShape" if the output is not require, or it will return the new shape. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSmdStatFaceSet ( int idFace, /* I: id of face */ int* idFtr /* O: id of feature(NULL to ignore) */ ) /* DESCRIPTION: Set the stationary face of a sheet metal part. Returns 1 if error happens, else return 0. */ ________________________________________________________________________________ int cvxPartSmdUnfold ( const svxUnfoldData *Unfold, /* I: SmdUnfold data */ int *idSmdUnfold /* O: SmdUnfold id */ ) /* DESCRIPTION: Adds the specified unfold(s) to the active part and outputs the id of the corresponding history operation. Pass in NULL for "idSmdUnfold" if the output is not required. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSphere ( svxSphereData *Sphere, /* I: sphere definition */ int *idShape /* O: id of new shape (NULL to ignore) */ ) /* DESCRIPTION: Creates a sphere shape and adds it to the active part using the specified combination method. If "idShape" is not NULL and "Cyl->Combine = V_BOOL_NONE", the id of the shape created by this function is output via "idShape". Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSpline ( const svxSplineData* PntData, /* I: spline data*/ int *idEnt /* O: id of new 2D spline entity (NULL to ignore) */ ) /* DESCRIPTION: Adds a 3D curve interpolated through through the input points/control points with the specified data to the active part. If "idEnt" is not NULL, the id of the new curve entity is output. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartStock ( svxStockData *Stock, /* I: stock input data */ int *idShape /* O: id of stock shape (NULL to ignore) */ ) /* DESCRIPTION: Use this function to create an extruded stock feature that completely encloses faces, shapes or blocks. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartSweep ( svxSweepData *Swp, /* I: sweep input data */ void *Options, /* I: data pointer reserved for future use (input NULL) */ int *idShape /* O: id of new shape (NULL to ignore) */ ) /* DESCRIPTION: Creates a swept shape and adds it to the active part using the specified combination method. If "idShape" is not NULL and "Ext->Combine = V_BOOL_NONE", the id of the shape created by this function is output via "idShape". If multiple shapes could be created, use cvxEntNewList() to get their id's. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartThicken ( svxThickenData *Thicken, /* I: thicken input data */ int *idShape /* O: id of thicken shape (NULL to ignore) */ ) /* DESCRIPTION: Use this function to create a thicken feature. Return 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartThreadAt ( int idFace, /* I: face id */ svxPoint *Pnt, /* I: point on or near face identifying thread location */ svxThreadData *Thread /* I: thread definition */ ) /* DESCRIPTION: Adds thread attribute data (Thread) to the specified face (idFace) of the active part. The thread is placed on the end of the face nearest the input reference point (Pnt). A cosmetic representation of the thread displayed. Actual geometry representing the thread is not created. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartTrim ( svxTrimData *Trim, /* I: trim input data */ int *numShape, /* O: number of resulting shapes (NULL to ignore) */ int **idShapes /* O: list of id's of resulting shapes (NULL to ignore) */ ) /* DESCRIPTION: Trim a shape by the input trimming data. The trimming face/faceset should extend outside the boundaries of the base face/faceset. The calling procedure MUST deallocate the output list with cvxMemFree. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartTrimToCrvs ( const svxTrimToCurvesData* trimData, /* I: trim to curves data */ int* idTrim /* O: trim feature id (pass in NULL to ignore) */ ) /* DESCRIPTION: Use this function to trim a face or shape to a curve or set of curves. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartTrimToFaces ( const svxTrimToFacesData * data, /* I: trimtofaces_data definition */ int *idTrim /* O: trim id */ ) /* DESCRIPTION: Trim away part of a face or shape where it intersects with Trimming. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartTrimmedPlane ( svxTrimPlnData *data, /* I: input data*/ int *newShp /* O: id of new shape(NULL to ignore)*/ ) /* DESCRIPTION: Use this command to create a planar face trimmed to a set of bounding curves. Required inputs include the boundary curves to trim to. Optional inputs include a datum plane or planar face to project to. This function can output the new surface if data->sew is 0 and *newShp is not null. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartUDFExplode ( int idFtr /* I: index of UDF feature*/ ) /* DESCRIPTION: Explode custom feature into the operations that define it. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartUDFInit ( vxPath udfPath /* I: path of UDF model */ ) /* DESCRIPTION: Initialize the specified UDF model, it will create a UDF command template. If it successes, you can execute this command by follow steps: 1. cvxDataInit("CdUDFCmd", &idData); 2. calls cvxPartUDFInqFlds() to get field parameters; 3. calls cvxDataSet(idData, idFld, data) to set the data; 4. calls cvxCmdExec(idData) to execute the UDF command; 5. calls cvxPartUDFTerm to free the UDF template data. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartUDFInqFlds ( int *cnt, /* O: count of fields */ svxUDFParam** fldParams /* O: value of field parameters */ ) /* DESCRIPTION: Get the field parameters of current UDF command. Note: you must call the function cvxPartUDFInit first. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartUDFInqPath ( int idFtr, /* I: index of UDF feature */ vxPath file /* O: source file path of UDF feature */ ) /* DESCRIPTION: Get source file full path of specified UDF feature. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartUDFInqSubFtrs ( int idFtr, /* I: index of UDF feature */ int* count, /* O: number of sub-feature in UDF feature */ int** ftrList /* O: list of sub-feature in UDF feature */ ) /* DESCRIPTION: Get sub-feature list in specified UDF feature. This function allocates memory for the array output via "ftrList". The calling procedure is responsible for deallocating the memory. Return 1 if error, else 0. */ ________________________________________________________________________________ int cvxPartUDFInsPathSet ( const vxPath path /* I: full path of UDF */ ) /* DESCRIPTION: Set the default open directory for the Insert UDF. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartUDFReplace ( int idFtr, /* I: index of UDF feature */ const vxPath file /* I: the file path of UDF to replace */ ) /* DESCRIPTION: Replace the specified UDF to the new one by the path of UDF file. It requires that the new UDF has the same references as the old one, or it will fail. Return 1 if error, else 0. */ ________________________________________________________________________________ void cvxPartUDFTerm( ) /* DESCRIPTION: Destruct data after execute a user define feature command. */ ________________________________________________________________________________ int cvxPartUDFWizardPathSet ( const vxPath path /* I: full path of UDF */ ) /* DESCRIPTION: Set the default open directory for the wizard UDF. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartUserAtExport ( vxLongName filePath /* I: path of excel file to export */ ) /* DESCRIPTION: Export the part user attribute data to the specified file 'filePath'. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartUserAtGet ( vxLongName File, /* I: object file name (File[0]=0 or NULL for active file) */ vxLongName Root, /* I: root object name (Root[0]=0 or NULL for active target object) */ int *Count, /* O: number of user attributes */ svxAttribute** UserAt /* O: list of user attributes */ ) /* DESCRIPTION: Retrieves user attribute data from the specified part in the specified file. The calling procedure MUST deallocate the output list with cvxMemFree. If the specified file is not already open, this function will open it to access attributes, and will then close the file. If you want to keep the file open, use the cvxFileKeep function, before calling this function, to set a flag that prevents this function from closing the files that it opens. (Files that are already open before this function is called are never closed by this function.) If you will be calling several functions to access data in the same file, keeping the file open between calls is more efficient than letting each function open and close the file. However, you must remember to call cvxFileKeep again to reset the flag after you have finished all of the function calls that need to access the specified file, and you also become responsible for closing the file, for example by using one of the cvxFileClose or cvxFileSave functions. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartUserAtSet ( vxLongName File, /* I: object file name (File[0]=0 or NULL for active file) */ vxLongName Root, /* I: root object name (Root[0]=0 or NULL for active target object) */ int DelOrgAt, /* I: whether to clear original user attribute */ int Count, /* I: number of user attributes */ svxAttribute* UserAt /* I: list of user attributes */ ) /* DESCRIPTION: Assigns the specified part attribute data to the specified part. Existing part attribute data is replaced with the contents of the input attribute data structure. If the specified file is not already open, this function will open it to access attributes, and will then close the file. If you want to keep the file open, use the cvxFileKeep function, before calling this function, to set a flag that prevents this function from closing the files that it opens. (Files that are already open before this function is called are never closed by this function.) If you will be calling several functions to access data in the same file, keeping the file open between calls is more efficient than letting each function open and close the file. However, you must remember to call cvxFileKeep again to reset the flag after you have finished all of the function calls that need to access the specified file, and you also become responsible for closing the file, for example by using one of the cvxFileClose or cvxFileSave functions. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartVarAdd ( svxVariable *Variable /* I: definition of a variable */ ) /* DESCRIPTION: Adds the specified variable to the active part. Expression format of string type :"\"str\""; Expression format of point type :"Point(1,2,3)"; Expression format of vector type :"Vector(1,2,3)"; If the type of variable is set to 0,then the sub_type must be set,else ignore. If the sub_type of variable is set to 1 or 2,then the unit_type must be set,else ignore. evxUnitType for length unit and evxAngUnitType for angle unit. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartVarGet ( svxVariable *Variable /* I/O: variable data */ ) /* DESCRIPTION: Searches the active part for the variable named "Variable->Name". The value of the specified variable is output via "Variable->Value" in database units (mm, deg). If "Variable->Name" is a string variable, the associated text is output via "Variable->Expression". Strings longer than 256 bytes are truncated. NOTE that "Variable->Expression" is not used to output the expression that defines a variable. It is used to output text associated with a "string" variable. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartVarGetById ( int idEqn, /* I: equation id */ svxVariable* Variable /* O: variable data */ ) /* DESCRIPTION: Searches the active part for the equation id. NOTE that "Variable->Expression" is not used to output the expression that defines a variable. It is used to output text associated with a "string" variable. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartVarSet ( int Count, /* I; number of variables */ svxVariable *Variables, /* I: list of variables */ int Working /* I: 1 to display "Working..." message, else 0 */ ) /* DESCRIPTION: Updates the part variables (e.g. dimensions, parameters) specified by "Variables" and regenerates the active part with the modified values. You can disable the object regeneration normally performed by this function by inputing "Working = -1". See the description of "cvxRootVarSet()" for the names used to identify various part parameters and attributes. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartVarSubstitute ( char *Str, /* I/O: null-terminated string, may be NULL */ int nBytes, /* I: maximum size of Str array in bytes */ int *Truncated /* O: 1 if string was truncated, 0 if not; may be NULL */ ) /* DESCRIPTION: Substitute variable values into a string for all occurrences of variable references. The syntax for each variable reference is [$VAR] where VAR is the name of a variable in the active target. References for which the variable cannot be found are left in the string. This function is not limited to parts, but can be used when the active target is any type of root object in which variables may exist. The maximum number of bytes allowed in the "Str" character array is "nBytes" including a terminating '\0' byte. When this function returns, "Truncated" is set to 0 if the string with variable substitutions fits within this maximum size. If a variable substitution would cause the string to exceed this size, the string is truncated and "Truncated" is set to 1. The caller may pass NULL in place of the "Truncated" argument if this result is not of interest. Returns 0 if successful. Returns non-zero if an error occurs. It is not an error if "Str" is NULL or empty, nor is it an error if the string has no [$VAR] references, but it is an error if a variable specified in such a reference cannot be found in the active target. See cvxPartVarSubstituteResize for a similar function that never truncates, but instead resizes a string. */ ________________________________________________________________________________ int cvxPartVarSubstituteResize ( char **Str /* I/O: null-terminated string, may be NULL */ ) /* DESCRIPTION: Substitute variable values into a string for all occurrences of variable references. The syntax for each variable reference is [$VAR] where VAR is the name of a variable in the active target. References for which the variable cannot be found are left in the string. This function is not limited to parts, but can be used when the active target is any type of root object in which variables may exist. The string will be reallocated (if necessary) to insert the variable values. Returns 0 if successful. Returns non-zero if an error occurs. It is not an error if "Str" is NULL or empty, nor is it an error if the string has no [$VAR] references, but it is an error if a variable specified in such a reference cannot be found in the active target. The string is reallocated if substituting the variable values produces a longer string. The string is not reallocated if it becomes shorter or stays the same length. If the block of memory used for the string is larger than needed for the string (i.e. larger than the number of bytes in the string plus 1), this function might make the block smaller. That is because reallocation requests only the amount of memory needed for the string, and might not consider unused space in the block. There is no need to allocate more memory than the string needs before calling this function. See cvxPartVarSubstitute for a similar function that truncates a string instead of resizing it. */ ________________________________________________________________________________ int cvxPartViewAdd ( svxView *View, /* I: view definition */ int *idView /* O: id of new view (NULL to ignore)*/ ) /* DESCRIPTION: Creates a new view with the specified definition and adds it to the active part. Outputs the id of the new view via "idView". Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPartVolumAndMassGet ( vxLongName Name, /* I: name of part in active file */ double *dVolume, /* O: volume of part,unit:mm^3 */ double *dMass /* O: mass of part,unit:kg */ ) /* DESCRIPTION: Output volume and mass data from the specified part in the active file. Before you use it, you need to use function cvxPartPhyAttrCalc to calculate physical attributes. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxPlaneGetData ( int idPlane, /* I: Plane id*/ svxPlaneData *Plane /* O: Plane data */ ) /* DESCRIPTION: Get the Plane data associated with the specified idPlane, contained frame and Entity path. NOTES: This interface can only retrieve datum data created by interface cvxPartPlaneNew(). Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxShellAtGet ( int idx_shl, /* I:the shell index */ svxPartAttribute *At /* O: shell attribute data */ ) /* DESCRIPTION: Retrieves attribute data from the specified shell in the active file. If index is small than 1 or an inactive object, return 1. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxShellAtItemGet ( int idx_shl, /* I: the shell index */ evxAtItemId itemId, /* I: item id */ svxAttribute *At /* I/O: attribute item data */ ) /* DESCRIPTION: Outputs the attribute of specified item for the specified shell. The itemId includes part items of evxAtItemId (VX_AT_USER~VX_AT_HEIGHT). When itemId is VX_AT_USER, the name of the user-defined attribute must be assigned to At->label before calling this function. For all other itemId values, At->label can be an empty string (At->label[0]=0) when this function is called. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxShellAtItemSet ( int idx_shl, /* I: the shell index */ evxAtItemId itemId, /* I: item id */ svxAttribute *At /* I: attribute item data to set */ ) /* DESCRIPTION: Sets the attribute of specified item for the specified shell. The itemId includes part items of evxAtItemId (VX_AT_USER~VX_AT_HEIGHT). When itemId is VX_AT_USER, the name of the user-defined attribute must be assigned to At->label before calling this function. For all other itemId values, At->label can be an empty string (At->label[0]=0) when this function is called. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxSubPartFlag ( vxLongName File, /* I: part file name (File[0]=0 or NULL for active file) */ vxLongName Part, /* I: part name (Part[0]=0 or NULL for active part) */ int isSubPart /* I: 1=sub-part; 0=ordinary part; -1=ordinary part hidden in root object list */ ) /* DESCRIPTION: If "isSubPart = 1", the specified part is flagged as a sub-part. It will be skipped when gathering parts for a BoM or assembly-part-list. It will not be displayed in the parent file's root object list. If "isSubPart = -1", the specified part is flagged as a pseudo sub-part. It is hidden in the root object list, but is still counted as a free-standing part for BoM or assembly-part-list purposes. If "isSubPart = 0", the part is assumed to be a standalone part (i.e. not a sub-part inextricably linked to its parent part). Generally speaking, this function should not be used to change the status of a genuine sub-part unless you 100% know what you are doing, but it may be used to suppress display of a regular part in the root object list (isSubPart = -1). Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________ int cvxSubPartIns ( vxLongName Name, /* I: sub-part name */ int AutoRegen, /* I: 1 to tag sub-part for automatic regeneration, else 0 */ int MergeOption /* I: 1 to merge sub-part dimensions, 2 to merge sub-part wireframe entities, 3 to merge both (0 to merge neither dimensions nor wireframe) */ ) /* DESCRIPTION: Inserts and activates a sub-part in the active part. If "Name" is a blank string, a default name is assigned to the new sub-part. Use cvxPartExit() to exit the sub-part, re-activating its parent part. Note that if "Name" is the name of an existing sub-part in the active part, the existing sub-part is activated. Returns 1 if function fails; 0 if it succeeds. */ ________________________________________________________________________________