#ifndef PROFEATURE_H #define PROFEATURE_H /* Creo Parametric TOOLKIT declarations for ProFeature-related actions */ #include <ProObjects.h> #include <ProSelection.h> #include <ProItemerr.h> #include <ProElement.h> #include <ProSection.h> #include <ProAsmcomppath.h> #include <ProVerstamp.h> #include <ProDimension.h> #include <ProFeatForm.h> PRO_BEGIN_C_DECLS typedef int ProFeattype; /* See ProFeatType.h for the allowed types. */ typedef enum pro_feat_status { PRO_FEAT_INVALID = -1, /* input was invalid */ PRO_FEAT_ACTIVE = 0, /* feature is active */ PRO_FEAT_INACTIVE = 1, /* feature is inactive */ PRO_FEAT_FAMTAB_SUPPRESSED = 2, /* feature is suppressed by family */ /* table functionality */ PRO_FEAT_SIMP_REP_SUPPRESSED = 3, /* feature is suppressed by */ /* simplified reps functionality */ PRO_FEAT_PROG_SUPPRESSED = 4, /* feature is suppressed by */ /* Pro/PROGRAM functionality */ PRO_FEAT_SUPPRESSED = 5, /* feature is suppressed */ PRO_FEAT_UNREGENERATED = 6 /* feature is active but */ /* unregenerated */ } ProFeatStatus; #define PRO_FEAT_STAT_INVALID 0 /* input was invalid */ #define PRO_FEAT_STAT_INACTIVE (1<<0) /* feature is inactive, if the bit 0 then active */ #define PRO_FEAT_STAT_ACTIVE (1<<1) /* feature is active */ #define PRO_FEAT_STAT_FAMTAB_SUPPRESSED (1<<2) /* feature is suppressed by family */ /* table functionality */ #define PRO_FEAT_STAT_SIMP_REP_SUPPRESSED (1<<3) /* feature is suppressed by */ /* simplified reps functionality */ #define PRO_FEAT_STAT_PROG_SUPPRESSED (1<<4) /* feature is suppressed by */ /* Pro/PROGRAM functionality */ #define PRO_FEAT_STAT_SUPPRESSED (1<<5) /* feature is suppressed */ #define PRO_FEAT_STAT_UNREGENERATED (1<<6) /* feature is active but */ /* unregenerated */ #define PRO_FEAT_STAT_FAILED (1<<7) /* Failed feature */ #define PRO_FEAT_STAT_CHILD_OF_FAILED (1<<8) /* Child of failed feature */ #define PRO_FEAT_STAT_CHILD_OF_EXT_FAILED (1<<9) /* Child of external failed feature */ typedef enum pro_pattern_status { PRO_PATTERN_INVALID = -1, /* input was invalid */ PRO_PATTERN_NONE = 0, /* not part of a pattern */ PRO_PATTERN_LEADER = 1, /* regular pattern leader */ PRO_PATTERN_MEMBER = 2, /* regular pattern member */ PRO_PATTERN_HEADER = 3 /* regular pattern header */ } ProPatternStatus; typedef enum pro_pattern_class { PRO_FEAT_PATTERN = 0, /* request info from a feat pattern */ PRO_GROUP_PATTERN = 1 /* request info from a group pattern */ } ProPatternClass; typedef enum pro_pat_dir { PRO_PAT_DIR_ONE = 1, PRO_PAT_DIR_TWO = 2 } ProPatDir; typedef enum pro_group_status { PRO_GROUP_INVALID = -1, /* input was invalid */ PRO_GROUP_NONE = 0, /* not part of a group */ PRO_GROUP_MEMBER = 1 /* is part of a group */ } ProGroupStatus; typedef enum pro_grppattern_status { PRO_GRP_PATTERN_INVALID = -1, /* input was invalid */ PRO_GRP_PATTERN_NONE = 0, /* not part of a group pattern */ PRO_GRP_PATTERN_LEADER = 1, /* is group pattern leader */ PRO_GRP_PATTERN_MEMBER = 2, /* is group pattern member */ PRO_GRP_PATTERN_HEADER = 3 /* is group pattern header */ } ProGrppatternStatus; typedef enum pro_feature_create_options { PRO_FEAT_CR_NO_OPTS = 0, /* no options */ PRO_FEAT_CR_DEFINE_MISS_ELEMS = 1, /* prompt user interface upon */ /* creation/redefinition if some */ /* of the required elements are */ /* missing */ PRO_FEAT_CR_INCOMPLETE_FEAT = 2, /* allow incomplete feature to be */ /* created */ PRO_FEAT_CR_FIX_MODEL_ON_FAIL = 3, /* if there is a feature failure */ /* then prompt fix model interface */ PRO_FEAT_CR_DO_NOT_DISPLAY = 4, /* Do not redisplay model and model */ /* tree after feature creation or */ /* redefinition. */ PRO_FEAT_CR_CALLED_FROM_TK = 5, /* Some features open for Toolkit, */ /* but still not open for UI */ /* pass check flag in availability */ /* function */ /* ****INTERNAL only - Creo Parametric TOOLKIT */ /* users ignore */ PRO_FEAT_CR_UNDO_IF_FAIL = 6, /* do not create if failure occurs */ /* ****INTERNAL only - Creo Parametric TOOLKIT */ /* users ignore */ PRO_FEAT_CR_ALLOW_CONFIRM = 7 /* allows confirmation fail dialog */ /* ****INTERNAL only - Creo Parametric TOOLKIT */ /* users ignore */ } ProFeatureCreateOptions; typedef enum pro_feat_elemtree_extract_opts { PRO_FEAT_EXTRACT_NO_OPTS = 0 /* no options */ } ProFeatureElemtreeExtractOptions; typedef enum pro_feature_delete_opts { PRO_FEAT_DELETE_NO_OPTS = 0, /* delete/suppress features without */ /* deleting/suppressing their */ /* dependent children features. */ /* Please note that this may result */ /* in regeneration failures. */ /* PTC recommends using the option */ /* PRO_FEAT_DELETE_FIX or one of the*/ /* CLIP options unless your */ /* application deals with the */ /* feature's dependent children */ /* in another way before */ /* regeneration takes place. */ PRO_FEAT_DELETE_CLIP = 1, /* delete/suppress features along */ /* with deleting/suppressing their */ /* dependent children features. */ PRO_FEAT_DELETE_FIX = 2, /* delete/suppress features without */ /* deleting/suppressing their */ /* dependent children features. */ /* The fix model user interface */ /* will be prompted in case of */ /* regeneration failure. */ PRO_FEAT_DELETE_RELATION_DELETE = 3, /* delete relations with obsolete */ /* dimensions. */ PRO_FEAT_DELETE_RELATION_COMMENT = 4, /* change relations with obsolete */ /* dimensions into comments. */ PRO_FEAT_DELETE_CLIP_ALL = 5, /* delete/suppress features along */ /* with deleting/suppressing all */ /* the following features. */ PRO_FEAT_DELETE_INDIV_GP_MEMBERS = 6, /* If this option is included, */ /* features to be deleted or */ /* suppressed, if they are members */ /* of groups, will be individually */ /* deleted out of the groups they */ /* belong to. If this option is not */ /* included, the entire group */ /* containing the feature will be */ /* deleted. */ PRO_FEAT_DELETE_CLIP_INDIV_GP_MEMBERS = 7, /* If this option is included, */ /* children of features to be */ /* deleted or suppressed, if they */ /* are members of groups, will be */ /* individually deleted out of the */ /* groups they belong to. If this */ /* option is not included, the */ /* entire group containing the child*/ /* will be deleted. */ /* For this option to work */ /* PRO_FEAT_DELETE_INDIV_GP_MEMBERS */ /* also has to be supplied. */ PRO_FEAT_DELETE_KEEP_EMBED_DATUMS = 8 /* This option will cause */ /* Creo Parametric to keep the embedded*/ /* datums stored in a feature when */ /* using ProFeatureDelete() to */ /* delete the feature. If not used, */ /* embedded datums will be deleted */ /* along with the parent feature. */ } ProFeatureDeleteOptions; typedef enum pro_feature_resume_opts { PRO_FEAT_RESUME_NO_OPTS = 0, /* no options */ PRO_FEAT_RESUME_INCLUDE_PARENTS = 1, /* suppressed parents of the feats */ /* to be resumed will also be */ /* resumed */ PRO_FEAT_RESUME_ADD_TO_BUFFER = 2 /* Add the resumed features to the selection buffer. */ } ProFeatureResumeOptions; typedef enum pro_featcopy_type { PRO_FEATCOPY_NEWREFS = 1, /* feats were copied with new refs */ PRO_FEATCOPY_SAMEREFS = 2, /* feats were copied with same refs */ PRO_FEATCOPY_MIRROR = 3, /* feats were mirrored */ PRO_FEATCOPY_MOVE = 4 /* feats were moved */ } ProFeatcopyType; typedef enum { PRO_USER_PARAM = 0, PRO_DIM_PARAM = 1, PRO_PATTERN_PARAM = 2, PRO_DIMTOL_PARAM = 3, PRO_REFDIM_PARAM = 4, PRO_ALL_PARAMS = 5, PRO_GTOL_PARAM = 6, PRO_SURFFIN_PARAM = 7 } ProParamType; typedef enum pro_feat_copy_type { PRO_FEATCOPY_NORMAL = 1, /* feat was copied by new or same refs */ PRO_FEATCOPY_BY_MIRROR = 2, /* feat was copied by mirroring */ PRO_FEATCOPY_BY_MOVE = 3 /* feat was copied by moving */ } ProFeatureCopyType; typedef enum pro_feat_copy_dependency { PRO_FEATCOPY_INDEPENDENT = 1, /* feat was copied independently */ PRO_FEATCOPY_DEPENDENT = 2 /* feat was copied dependently */ } ProFeatureCopyDependency; typedef enum pro_surf_trans_type { PRO_SURF_TRANS_TYPE_UNDEF = 0, PRO_SURF_TRANS_TYPE_MIRROR = 1, /*For Geom Mirror */ PRO_SURF_TRANS_TYPE_MOVE = 2, /*For Geom Move */ PRO_SURF_TRANS_TYPE_PART_MIRROR = 4 /* For Part Mirror */ } ProSurfTransType; /* Below flags to be used specifically for ProFeatureReferenceEditRefsGet() */ #define PRO_EDITREF_REF_TYPE_NONE 0 /* Invalid value */ #define PRO_EDITREF_REF_TYPE_ALL 1 /* Get all types of references */ /*===========================================================================*/ extern ProError ProFeatureInit (ProSolid p_owner_handle, int feat_id, ProFeature *p_feat_handle); /* Purpose: Initializes the <I>ProFeature</I> handle. Input Arguments: p_owner_handle - The solid owner of the feature feat_id - The feature identifier. Cannot be NULL Output Arguments: p_feat_handle - The handle to initialize. Cannot be NULL Return Values: PRO_TK_NO_ERROR - The function successfully initialized the handle. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. PRO_TK_NOT_EXIST - Feature with such identifier does not exist. */ extern ProError ProFeatureSolidGet (ProFeature *p_feat_handle, ProSolid *p_mdl_handle); /* Purpose: Retrieves the solid owner of the feature. Input Arguments: p_feat_handle - The feature handle Output Arguments: p_mdl_handle - The solid owner of the feature Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the owner. PRO_TK_BAD_INPUTS - The input argument is invalid. */ extern ProError ProFeatureCreate (ProSelection model, ProElement elemtree, ProFeatureCreateOptions options[], int num_opts, ProFeature *p_feature, ProErrorlist *p_errors); /* Purpose: Creates a feature from the element tree. <p><b> NOTE: <p></b> This function is deprecated. Use ProFeatureWithoptionsCreate() with flags equal to PRO_REGEN_NO_FLAGS for equivalent behavior. Refer to the Creo Parametric Toolkit Release Notes for more information on restrictions of using this function with Multi-CAD models. Input Arguments: model - A selection object representing the part or assembly on which the feature is being created. The selection object must be constructed using a valid assembly component path to the top level assembly if: <ul> <li>the feature contains external references to geometry located outside of the solid model where it will be constructed. <li>or, the solid model in which the feature will be constructed is a member of the active Creo Parametric assembly. </ul> elemtree - The element tree. options - An array of user options. num_opts - The number of options in the <I>options</I> array. Output Arguments: p_feature - The feature handle. p_errors - The list of errors. Return Values: PRO_TK_NO_ERROR - The function successfully created the feature. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. PRO_TK_GENERAL_ERROR - The feature was not created. See p_errors for the list of problems. See Also: ProAnalysis.h() ProAsmcomp.h() ProBeltFeat.h() ProChamfer.h() ProContact3dFeat.h() ProDamperFeat.h() ProDesignatedArea.h() ProDraft.h() ProDtmAxis.h() ProDtmCrv.h() ProDtmCsys.h() ProDtmPln.h() ProDtmPnt.h() ProElemId.h() ProExtrude.h() ProFeatIntr.h() ProFixture.h() ProFlatSrf.h() ProForeignCurve.h() ProHole.h() ProMfgoper.h() ProMerge.h() ProMirror.h() ProMove.h() ProNcseq.h() ProNcseqElem.h() ProPattern.h() ProProcstep.h() ProReplace.h() ProRevolve.h() ProRib.h() ProRound.h() ProShell.h() ProSmtFlangeWall.h() ProSmtFlatWall.h() ProSmtForm.h() ProSolidify.h() ProSmtPunchQuilt.h() ProStdSection.h() ProSurfReg.h() ProSweep.h() ProThicken.h() ProTrim.h() ProToolElem.h() ProValue.h() ProWcell.h() */ extern ProError ProFeatureRedefine (ProAsmcomppath *comp_path, ProFeature *feature, ProElement elemtree, ProFeatureCreateOptions options[], int num_opts, ProErrorlist *p_errors); /* Purpose: Redefines the feature from the element tree. <p><b> NOTE: <p></b> This function is deprecated. Use ProFeatureWithoptionsRedefine() with flags equal to PRO_REGEN_NO_FLAGS for equivalent behavior. Input Arguments: comp_path - The path to the part to which the feature belongs. This can be NULL when you are redefining in Part mode, or when the feature belongs to the top-level assembly. feature - The feature. elemtree - The element tree. options - An array of user options. num_opts - The number of options. Output Arguments: p_errors - The list of errors. Return Values: PRO_TK_NO_ERROR - The function successfully redefined the feature. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. See Also: ProAnalysis.h() ProAsmcomp.h() ProBeltFeat.h() ProChamfer.h() ProContact3dFeat.h() ProDamperFeat.h() ProDesignatedArea.h() ProDraft.h() ProDtmAxis.h() ProDtmCrv.h() ProDtmCsys.h() ProDtmPln.h() ProDtmPnt.h() ProElemId.h() ProExtrude.h() ProFeatIntr.h() ProFixture.h() ProFlatSrf.h() ProForeignCurve.h() ProHole.h() ProMfgoper.h() ProMerge.h() ProMirror.h() ProMove.h() ProNcseq.h() ProNcseqElem.h() ProPattern.h() ProProcstep.h() ProReplace.h() ProRevolve.h() ProRib.h() ProRound.h() ProShell.h() ProSmtFlangeWall.h() ProSmtFlatWall.h() ProSmtForm.h() ProSolidify.h() ProSmtPunchQuilt.h() ProStdSection.h() ProSurfReg.h() ProSweep.h() ProThicken.h() ProTrim.h() ProToolElem.h() ProValue.h() ProWcell.h() */ extern ProError ProFeatureWithoptionsCreate (ProSelection model, ProElement elemtree, ProFeatureCreateOptions *options, int flags, ProFeature *p_feature, ProErrorlist *p_errors); /* Purpose: Creates a feature from the element tree. <p><b> NOTE: <p></b> Refer to the Creo Parametric Toolkit Release Notes for more information on restrictions of using this function with Multi-CAD models. Input Arguments: model - A selection object representing the part or assembly on which the feature is being created. The selection object must be constructed using a valid assembly component path to the top level assembly if: <ul> <li>the feature contains external references to geometry located outside of the solid model where it will be constructed. <li>or, the solid model in which the feature will be constructed is a member of the active Creo Parametric assembly. </ul> elemtree - The element tree. options - A ProArray array of user options. flags - The regeneration control flags. Pass as bitmask containing one or more of the bit flags PRO_REGEN* defined in ProSolid.h Output Arguments: p_feature - The feature handle. p_errors - The list of errors. Return Values: PRO_TK_NO_ERROR - The function successfully created the feature. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. PRO_TK_GENERAL_ERROR - The feature was not created. See p_errors for the list of problems. PRO_TK_UNSUPPORTED - If creating embedded component feature in different owner asm or sub-asm. */ extern ProError ProFeatureWithoptionsRedefine (ProAsmcomppath *comp_path, ProFeature *feature, ProElement elemtree, ProFeatureCreateOptions *options, int flags, ProErrorlist *p_errors); /* Purpose: Redefines the feature from the element tree. Input Arguments: comp_path - The path to the part to which the feature belongs. This can be NULL when you are redefining in Part mode, or when the feature belongs to the top-level assembly. feature - The feature. elemtree - The element tree. options - A ProArray of user options. flags - The regeneration control flags. Pass as bitmask containing one or more of the bit flags PRO_REGEN defined in ProSolid.h Output Arguments: p_errors - The list of errors. Return Values: PRO_TK_NO_ERROR - The function successfully redefined the feature. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. PRO_TK_UNSUPPORTED - If redefining embedded component feature in different owner asm or sub-asm. */ extern ProError ProFeatureElemtreeSet (ProAsmcomppath *comp_path, ProFeature *feature, ProElement elem_tree, ProErrorlist *p_errors); /* Purpose: <B>NOTE:</B> <p> This function is <B>deprecated</B>. It does not properly set up the model to a point where it can accept a modification to its feature element tree. To properly modify a feature tree, use ProFeatureWithoptionsRedefine. <p> Assigns the information from the feature's definition (<I>elem_tree</I>) into the feature database. <p> Input Arguments: comp_path - The path to the part to which the feature belongs. This can be NULL when you are redefining in Part mode, or when the feature belongs to the top-level assembly. feature - The feature whose database is to be altered. elem_tree - The modified feature element tree to be assigned to the feature. Output Arguments: p_errors - The list of errors. Return Values: PRO_TK_NO_ERROR - The function successfully assigned the specified data to the feature. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. See Also: ProAnalysis.h() ProAsmcomp.h() ProBeltFeat.h() ProChamfer.h() ProContact3dFeat.h() ProDamperFeat.h() ProDesignatedArea.h() ProDraft.h() ProDtmAxis.h() ProDtmCrv.h() ProDtmCsys.h() ProDtmPln.h() ProDtmPnt.h() ProElemId.h() ProExtrude.h() ProFeatIntr.h() ProFixture.h() ProFlatSrf.h() ProForeignCurve.h() ProHole.h() ProMfgoper.h() ProMerge.h() ProMirror.h() ProMove.h() ProNcseq.h() ProNcseqElem.h() ProPattern.h() ProProcstep.h() ProReplace.h() ProRevolve.h() ProRib.h() ProRound.h() ProShell.h() ProSmtFlangeWall.h() ProSmtFlatWall.h() ProSmtForm.h() ProSolidify.h() ProSmtPunchQuilt.h() ProStdSection.h() ProSurfReg.h() ProSweep.h() ProThicken.h() ProTrim.h() ProToolElem.h() ProValue.h() ProWcell.h() */ extern ProError ProFeatureDelete (ProSolid solid, int *feat_ids, int feat_count, ProFeatureDeleteOptions *delete_opts, int num_opts); /* Purpose: Deletes the specified features from the solid. <p><b> NOTE: <p></b> This function is deprecated. Use ProFeatureWithoptionsDelete() with flags equal to PRO_REGEN_NO_FLAGS for equivalent behavior. Input Arguments: solid - The part or assembly to which the features belong feat_ids - An array of feature identifiers to be deleted feat_count - The size of the <I>feat_ids</I> array delete_opts - An array of options for deleting features num_opts - The size of the <I>delete_opts</I> array Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully deleted the features. PRO_TK_BAD_INPUTS - One or more of the arguments are invalid. PRO_TK_GENERAL_ERROR - The delete operation failed. */ extern ProError ProFeatureSuppress (ProSolid solid, int *feat_ids, int feat_count, ProFeatureDeleteOptions *suppress_opts, int num_opts); /* Purpose: Suppresses the specified features in the solid. <p><b> NOTE: <p></b> This function is deprecated. Use ProFeatureWithoptionsSuppress() with flags equal to PRO_REGEN_NO_FLAGS for equivalent behavior. Input Arguments: solid - The part or assembly to which the features belong feat_ids - The array of feature identifiers to be suppressed feat_count - The size of the <I>feat_ids</I> array suppress_opts - The array of options for suppressing features num_opts - The size of the <I>suppress_opts</I> array Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully suppressed the features. PRO_TK_BAD_INPUTS - One or more of the arguments are invalid. PRO_TK_NOT_VALID - One or more input features is not permitted to be suppressed. PRO_TK_GENERAL_ERROR - The suppress operation failed. */ extern ProError ProFeatureResume (ProSolid solid, int *feat_ids, int feat_count, ProFeatureResumeOptions *resume_opts, int num_opts); /* Purpose: Resumes the specified features in the solid. <p><b> NOTES: <p></b> If the input feature array contains features that are already resumed, ProFeatureResume returns an error and does not resume suppressed features. This function is deprecated. Use ProFeatureWithoptionsResume() with flags equal to PRO_REGEN_NO_FLAGS for equivalent behavior. Input Arguments: solid - The part or assembly to which the features belong feat_ids - The array of feature identifiers to be resumed feat_count - The size of the <I>feat_ids</I> array resume_opts - The array of options for resuming features num_opts - The size of the <I>resume_opts</I> array Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully resumed the features. PRO_TK_SUPP_PARENTS - Suppressed parents were found. PRO_TK_BAD_INPUTS - One or more of the arguments are invalid. */ extern ProError ProFeatureWithoptionsDelete(ProSolid solid, int *feat_list, ProFeatureDeleteOptions *opts, int flags ); /* Purpose: Deletes the specified features from the solid. <p><b>NOTE:</b>Features of non-native models may or may not get deleted. Input Arguments: solid - The part or assembly to which the features belong feat_list - A ProArray of feature identifiers to be deleted opts - A ProArray of options for deleting features flags - The regeneration control flags. Pass as bitmask containing one or more of the bit flags PRO_REGEN* defined in ProSolid.h Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully deleted the features. PRO_TK_BAD_INPUTS - One or more of the arguments are invalid. PRO_TK_BAD_CONTEXT - Invalid regeneration flag(s) for this function. PRO_TK_GENERAL_ERROR - The delete operation failed. See Also: ProArrayAlloc() ProArrayObjectAdd() ProArrayFree() */ extern ProError ProFeatureWithoptionsSuppress(ProSolid solid, int *feat_list, ProFeatureDeleteOptions *opts, int flags ); /* Purpose: Suppresses the specified features in the solid. <p><b>NOTE:</b>Features of non-native models may or may not get suppressed. Input Arguments: solid - The part or assembly to which the features belong feat_list - The ProArray of feature identifiers to be suppressed opts - The ProArray of options for suppressing features flags - The regeneration control flags. Pass as bitmask containing one or more of the bit flags PRO_REGEN* defined in ProSolid.h Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully suppressed the features. PRO_TK_BAD_INPUTS - One or more of the arguments are invalid. PRO_TK_BAD_CONTEXT - Invalid regeneration flag(s) for this function. PRO_TK_NOT_VALID - One or more input features is not permitted to be suppressed. PRO_TK_GENERAL_ERROR - The suppress operation failed. See Also: ProArrayAlloc() ProArrayObjectAdd() ProArrayFree() */ extern ProError ProFeatureWithoptionsReorder( ProSolid pro_solid, int *feat_ids, int new_feat_num, int flags ); /* Purpose: Reorders the supplied set of features such that the location of the first feature will be the <I>new_feat_num</I> after the reorder. Input Arguments: pro_solid - The part or assembly that owns the features to be reordered. feat_ids - The ProArray of feature identifiers that represents a contiguous set of features in the model tree. If reordering a group, all the features in the group (including the Group Header feature) must be included in this array. new_feat_num - The intended location of the first feature in the specified set, upon reorder. flags - The regeneration control flags. Pass as bitmask containing one or more of the bit flags PRO_REGEN* defined in ProSolid.h Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully reordered the features. PRO_TK_BAD_INPUTS - The specified feature is invalid, or the location to which the reordering is requested is not valid. PRO_TK_BAD_CONTEXT - Invalid regeneration flag(s) for this function. See Also: ProArrayAlloc() ProArrayObjectAdd() ProArrayFree() */ extern ProError ProFeatureWithoptionsResume (ProSolid solid, int *feat_list, ProFeatureResumeOptions *opts, int flags); /* Purpose: Resumes the specified features in the solid. <p><b>NOTE:</b> <p> If the input feature array contains features that are already resumed, ProFeatureResume returns an error and does not resume suppressed features. Input Arguments: solid - The part or assembly to which the features belong feat_list - The ProArray of feature identifiers to be resumed opts - The ProArray of options for resuming features flags - The regeneration control flags. Bitmask containing one or more of the bit flags PRO_REGEN_* defined in ProSolid.h. PRO_REGEN_UNDO_IF_FAIL and PRO_REGEN_ALLOW_CONFIRM are not supported. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully resumed the features. PRO_TK_SUPP_PARENTS - Suppressed parents were found. PRO_TK_BAD_INPUTS - One or more of the arguments are invalid. PRO_TK_BAD_CONTEXT - Invalid regeneration flag(s) for this function. See Also: ProArrayAlloc() ProArrayObjectAdd() ProArrayFree() */ extern ProError ProInsertmodeWithoptionsCancel (ProSolid solid, ProBoolean resume, int flags); /* Purpose: Cancels insert mode in the specified part or assembly. Input Arguments: solid - The part or assembly. resume - Set this to PRO_B_TRUE if the suppressed features are to be resumed once you cancel insert mode. flags - The regeneration control flags.Bitmask containing one or more of the bit flags PRO_REGEN_* defined in ProSolid.h. PRO_REGEN_UNDO_IF_FAIL and PRO_REGEN_ALLOW_CONFIRM are not supported. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully cancelled insert mode. PRO_TK_BAD_INPUTS - The specified feature is invalid. PRO_TK_BAD_CONTEXT - Invalid regeneration flag(s) for this function. See Also: ProFeatureInsertmodeWithoptionsActivate() ProInsertModeIsActive() */ extern ProError ProFeatureInsertmodeWithoptionsActivate(ProFeature *p_last_feat, int flags); /* Purpose: Activates insert mode such that the specified feature becomes the last feature. Input Arguments: p_last_feat - The feature that will be the last feature. All the features after this feature will be detached. Any features created after the activation of insert mode will be created after this feature. When you cancel the insert mode, the detached features will be reappended at the end. flags - The regeneration control flags. Pass as bitmask containing one or more of the bit flags PRO_REGEN* defined in ProSolid.h Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully activated insert mode. PRO_TK_BAD_INPUTS - The specified feature is invalid. PRO_TK_BAD_CONTEXT - Invalid regeneration flag(s) for this function. See Also: ProInsertModeIsActive() ProInsertModeCancel() */ extern ProError ProFeatureInsertmodeWithoptionsUpdate(ProFeature *p_last_feat, int flags); /* Purpose: Updates insert mode such that the specified feature becomes the last feature. Input Arguments: p_last_feat - The feature that will be the last feature. All the features after this feature will be detached. Any features created after the update of insert mode will be created after this feature. When you cancel the insert mode, the detached features will be reappended at the end. flags - The regeneration control flags. Pass as bitmask containing one or more of the bit flags PRO_REGEN* defined in ProSolid.h Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully activated insert mode. PRO_TK_BAD_INPUTS - The specified feature is invalid. PRO_TK_BAD_CONTEXT - Invalid regeneration flag(s) for this function. See Also: ProFeatureInsertmodeWithoptionsActivate() ProInsertModeIsActive() ProInsertModeCancel() */ extern ProError ProFeatureGeomitemVisit (ProFeature *p_feat_handle, ProType item_type, ProGeomitemAction action, ProGeomitemFilter filter, ProAppData app_data); /* Purpose: Visits all the geometry items created by the specified feature. <p> The valid item types are as follows: <ul> <li>PRO_TYPE_UNUSED -- Visit all geometry. <li>PRO_SURFACE -- Visit surfaces only. <li>PRO_EDGE -- Visit edges only. <li>PRO_QUILT -- Visit quilts only. <li>PRO_CURVE -- Visit curves only. <li>PRO_POINT -- Visit points only. <li>PRO_AXIS -- Visit axes only. <li>PRO_CSYS -- Visit coordinate systems only. <li>PRO_ANNOTATION_ELEM -- Visit annotation elements only. </ul> Input Arguments: p_feat_handle - The feature handle. item_type - The type of items to visit. action - The visiting function. If it returns anything other than PRO_TK_NO_ERROR, visiting stops. filter - The filter function. If NULL, all items are visited using the action function. ProFeatureGeomitemVisit() will stop visiting if PRO_TK_GENERAL_ERROR is returned by the filter. app_data - The application data passed to the filter and visiting functions. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully visited all the items. PRO_TK_BAD_INPUTS - One or more arguments was invalid. Other - The action function returned a value other than PRO_TK_NO_ERROR and visiting stopped. */ extern ProError ProFeatureParentsGet (ProFeature *p_feat_handle, int **p_parents, int *p_count); /* Purpose: Collects and returns all the parents of the specified feature. Input Arguments: p_feat_handle - The feature handle. Output Arguments: p_parents - An array of feature ids of parent features. The function allocates the memory for this argument. Use the function <B>ProArrayFree()</B> to free the memory. p_count - The size of the <I>p_parents</I> array. Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the parents. PRO_TK_BAD_INPUTS - The input argument is invalid. See Also: ProArrayFree() */ extern ProError ProFeatureChildrenGet (ProFeature *p_feat_handle, int **p_children, int *p_count); /* Purpose: Collects and returns all the children of the specified feature. Input Arguments: p_feat_handle - The feature handle. Output Arguments: p_children - An array of feature ids of children features. The function allocates the memory for this argument. Use the function <B>ProArrayFree()</B> to free the memory. p_count - The size of the <I>p_children</I> array. Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the children. PRO_TK_BAD_INPUTS - The input argument is invalid. See Also: ProArrayFree() */ extern ProError ProFeatureStatusflagsGet (ProFeature *p_feat_handle, unsigned int *p_status); /* Purpose: Retrieves the bit status flag(s) of specified feature. Input Arguments: p_feat_handle - The feature handle. Output Arguments: p_status - The feature status bit flag(s). Return Values: PRO_TK_NO_ERROR - The function successfully feature status flag(s). PRO_TK_BAD_INPUTS - The input argument is invalid. */ extern ProError ProFeatureStatusGet (ProFeature *p_feat_handle, ProFeatStatus *p_status); /* Purpose: Retrieves the status of the specified feature (active, suppressed, and so on). Input Arguments: p_feat_handle - The feature for which to get the status Output Arguments: p_status - The status of the feature Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the information. PRO_TK_BAD_INPUTS - The input argument is invalid. */ extern ProError ProFeatureIsIncomplete ( ProFeature *p_feat_handle, ProBoolean *p_is_incomplete); /* Purpose: Determines whether the specified feature is incomplete. Input Arguments: p_feat_handle - The feature to check for completeness. Output Arguments: p_is_incomplete - If the feature is incomplete, this is PRO_B_TRUE. Otherwise, this is PRO_B_FALSE. Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the information. PRO_TK_BAD_INPUTS - The input argument is invalid. */ extern ProError ProFeaturePatternStatusGet ( ProFeature *p_feat_handle, ProPatternStatus *p_pattern_status); /* Purpose: Retrieves the pattern status of the specified feature. <p> NOTE: <p> This function deals with simple patterns only. Input Arguments: p_feat_handle - The feature to process Output Arguments: p_pattern_status - The current pattern status of the feature Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the information. PRO_TK_BAD_INPUTS - The input argument is invalid. */ extern ProError ProFeatureGroupStatusGet (ProFeature *p_feat_handle, ProGroupStatus *p_group_status); /* Purpose: Retrieves the group status of the specified feature. Input Arguments: p_feat_handle - The feature to process Output Arguments: p_group_status - The current group status of the feature Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the information. PRO_TK_BAD_INPUTS - The input argument is invalid. */ extern ProError ProFeatureGrppatternStatusGet (ProFeature *p_feat_handle, ProGrppatternStatus *p_grp_pattern_status); /* Purpose: Retrieves the group pattern status of the specified feature. Input Arguments: p_feat_handle - The feature to process Output Arguments: p_grp_pattern_status - The current group pattern status of the feature Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the information. PRO_TK_BAD_INPUTS - The input argument is invalid. */ extern ProError ProFeatureVisibilityGet (ProFeature *p_feat_handle, ProBoolean *p_visible); /* Purpose: Reports whether the specified feature is public or internal. Internal features are 'invisible' features and used internally for construction purposes. <P> <B>NOTE:</B> This is useful primarily in the action/filter callbacks of ProSolidFeatVisit(). Input Arguments: p_feat_handle - The feature to process. Output Arguments: p_visible - If the specified feature is public, this is PRO_B_TRUE. If specified feature is internal, this is PRO_B_FALSE. Return Values: PRO_TK_NO_ERROR - The function successfully verified the feature. PRO_TK_BAD_INPUTS - The input argument is invalid. See Also: ProSolidFeatVisit() */ extern ProError ProFeatureTypeGet (ProFeature *p_feat_handle, ProFeattype *p_type); /* Purpose: Retrieves the type of the specified feature. Input Arguments: p_feat_handle - The feature Output Arguments: p_type - The feature type Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the information. PRO_TK_BAD_INPUTS - The input argument is invalid. See Also: ProFeatType.h() */ extern ProError ProFeatureSubtypeGet (ProFeature *feature, ProLine subtype); /* Purpose: Retrieves the subtype of the specified feature. Input Arguments: feature - The feature Output Arguments: subtype - The feature subtype Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the information. PRO_TK_BAD_INPUTS - The input argument is invalid. See Also: ProFeatType.h() */ extern ProError ProFeatureTypenameGet ( ProFeature *feature, ProName feattypename); /* Purpose: Retrieves the type name of the specified feature. Input Arguments: feature - The feature Output Arguments: feattypename - The feature type name Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the information. PRO_TK_GENERAL_ERROR - An error occurred. PRO_TK_BAD_INPUTS - The input argument is NULL or otherwise invalid. See Also: ProFeatType.h() */ extern ProError ProFeatureSelectionGet (ProFeature *p_feature, ProSelection *p_selection); /* Purpose: Retrieves reference information for a feature created in Assembly mode. <p> The function fills in the following fields in the <I>ProSelection</I> structure: <pre>p_selection -> sel_obj - The p_feature</pre> <pre>p_selection -> comp_path.owner - The feature reference assembly</pre> <pre>p_selection -> comp_path.comp_id_table - The path from the</pre> <pre>reference assembly to the part where the feature</pre> <pre>was created</pre> <pre>p_selection -> comp_path.table_num - The size of the comp_id_table</pre> <p> NOTE: <p> If the feature does not have a reference assembly (that is, it has local references only), the returned values are as follows: <pre>p_selection -> comp_path.owner.id = PRO_VALUE_UNUSED;</pre> <pre>p_selection -> comp_path.owner.type = PRO_TYPE_UNUSED;</pre> <pre>p_selection -> comp_path.table_num - PRO_VALUE_UNUSED;</pre> Input Arguments: p_feature - The feature Output Arguments: p_selection - The data structure to be filled in Return Values: PRO_TK_NO_ERROR - The function successfully filled in the data structure. PRO_TK_BAD_INPUTS - The input argument is invalid. PRO_TK_BAD_CONTEXT - The specified feature does not have a reference assembly. PRO_TK_E_NOT_FOUND - The reference assembly is not in session. PRO_TK_GENERAL_ERROR - A major problem occurred, usually object corruption. For example, the function may have found the reference assembly, but the owner part does not match the component path. In this case, the <I>p_selection</I> will be initialized with the obtained data, but might be invalid. */ extern ProError ProFeatureAnalysisGet( ProFeature *feature, ProAnalysis *analysis); /* Purpose: Gets the analysis object associated with an analysis feature. Input Arguments: feature - The analysis feature. Output Arguments: analysis - The analysis object. Return Values: PRO_TK_NO_ERROR - The function successfully got the analysis object. PRO_TK_BAD_INPUTS - The feature is not an analysis feature. See Also: ProAnalysis.h() */ extern ProError ProFeatureElemtreeCreate (ProFeature *feature, ProElement *p_elem); /* Purpose: <B>NOTE:</B> <p> This function is <B>deprecated</B>. It does not provide options to resolve the paths of external references of the feature. Use ProFeatureElemtreeExtract() instead. <p> Creates a copy of the feature element tree. <p> Input Arguments: feature - The feature Output Arguments: p_elem - The root element of the feature element tree Return Values: PRO_TK_NO_ERROR - The function successfully created the feature element tree. PRO_TK_BAD_INPUTS - The input argument is invalid. PRO_TK_INVALID_TYPE - Creation of the element tree is not supported for this feature type. See Also: ProAnalysis.h() ProAsmcomp.h() ProBeltFeat.h() ProChamfer.h() ProContact3dFeat.h() ProDamperFeat.h() ProDesignatedArea.h() ProDraft.h() ProDtmAxis.h() ProDtmCrv.h() ProDtmCsys.h() ProDtmPln.h() ProDtmPnt.h() ProElemId.h() ProExtrude.h() ProFeatIntr.h() ProFixture.h() ProFlatSrf.h() ProForeignCurve.h() ProHole.h() ProMfgoper.h() ProMerge.h() ProMirror.h() ProMove.h() ProNcseq.h() ProNcseqElem.h() ProPattern.h() ProProcstep.h() ProReplace.h() ProRevolve.h() ProRib.h() ProRound.h() ProShell.h() ProSmtFlangeWall.h() ProSmtFlatWall.h() ProSmtForm.h() ProSolidify.h() ProSmtPunchQuilt.h() ProStdSection.h() ProSurfReg.h() ProSweep.h() ProThicken.h() ProTrim.h() ProToolElem.h() ProValue.h() ProWcell.h() */ extern ProError ProFeatureElemtreeExtract (ProFeature *feature, ProAsmcomppath *path, ProFeatureElemtreeExtractOptions opts, ProElement *p_elem); /* Purpose: Creates a copy of the feature element tree. Preferred over ProFeatureElemtreeCreate() Since it provides options to resolve the paths of external references of the feature. Input Arguments: feature - The feature. path - The path used to resolve references from the element tree. Can be NULL, but trees which lack the proper external references may not be usable to redefine the feature with external references. opts - The options used for the extraction. Pass PRO_FEAT_EXTRACT_NO_OPTS for now. Output Arguments: p_elem - The root element of the feature element tree. Free this using ProFeatureElemtreeFree(). Return Values: PRO_TK_NO_ERROR - The function successfully created the feature element tree. PRO_TK_BAD_INPUTS - The input argument is invalid. PRO_TK_INVALID_TYPE - Extraction of the element tree is not supported for this feature type. See Also: ProAnalysis.h() ProAsmcomp.h() ProBeltFeat.h() ProChamfer.h() ProContact3dFeat.h() ProDamperFeat.h() ProDesignatedArea.h() ProDraft.h() ProDtmAxis.h() ProDtmCrv.h() ProDtmCsys.h() ProDtmPln.h() ProDtmPnt.h() ProElemId.h() ProExtrude.h() ProFeatIntr.h() ProFixture.h() ProFlatSrf.h() ProForeignCurve.h() ProHole.h() ProMfgoper.h() ProMerge.h() ProMirror.h() ProMove.h() ProNcseq.h() ProNcseqElem.h() ProPattern.h() ProProcstep.h() ProReplace.h() ProRevolve.h() ProRib.h() ProRound.h() ProShell.h() ProSmtFlangeWall.h() ProSmtFlatWall.h() ProSmtForm.h() ProSolidify.h() ProSmtPunchQuilt.h() ProStdSection.h() ProSurfReg.h() ProSweep.h() ProThicken.h() ProTrim.h() ProToolElem.h() ProValue.h() ProWcell.h() */ extern ProError ProFeatureElemtreeFree (ProFeature *feature, ProElement p_elem); /* Purpose: Frees a copy of the feature element tree. Input Arguments: feature - The feature p_elem - The root element of the feature element tree Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully freed the feature element tree. PRO_TK_BAD_INPUTS - The input argument is invalid. */ extern ProError ProFeatureElemValueGet (ProFeature *feature, ProElempath elempath, ProValue *p_elemvalue ); /* Purpose: Retrieves a single element value from the specified feature. Note that the element cannot be a compound element. <b>Note: </b>this function is deprecated, use ProElement<type>Get. Input Arguments: feature - The feature elempath - The path to the element Output Arguments: p_elemvalue - The element value Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the feature element value. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. See Also: ProAnalysis.h() ProAsmcomp.h() ProBeltFeat.h() ProChamfer.h() ProContact3dFeat.h() ProDamperFeat.h() ProDesignatedArea.h() ProDraft.h() ProDtmAxis.h() ProDtmCrv.h() ProDtmCsys.h() ProDtmPln.h() ProDtmPnt.h() ProElemId.h() ProExtrude.h() ProFeatIntr.h() ProFixture.h() ProFlatSrf.h() ProForeignCurve.h() ProHole.h() ProMfgoper.h() ProMerge.h() ProMirror.h() ProMove.h() ProNcseq.h() ProNcseqElem.h() ProPattern.h() ProProcstep.h() ProReplace.h() ProRevolve.h() ProRib.h() ProRound.h() ProShell.h() ProSmtFlangeWall.h() ProSmtFlatWall.h() ProSmtForm.h() ProSolidify.h() ProSmtPunchQuilt.h() ProStdSection.h() ProSurfReg.h() ProSweep.h() ProThicken.h() ProTrim.h() ProToolElem.h() ProValue.h() ProWcell.h() */ extern ProError ProFeatureElemValuesGet (ProFeature *feature, ProElempath elempath, ProValue **p_elemvalues ); /* Purpose: Retrieves the element values from the specified feature. Note that the element cannot be a compound element. <b>Note: </b>this function is deprecated, use ProElement<type>Get. Input Arguments: feature - The feature. elempath - The path to the element. Output Arguments: p_elemvalues - The element values. You must allocate the memory for this argument using the function <B>ProArrayAlloc()</B>. Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the feature element values. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. See Also: ProAnalysis.h() ProAsmcomp.h() ProBeltFeat.h() ProChamfer.h() ProContact3dFeat.h() ProDamperFeat.h() ProDesignatedArea.h() ProDraft.h() ProDtmAxis.h() ProDtmCrv.h() ProDtmCsys.h() ProDtmPln.h() ProDtmPnt.h() ProElemId.h() ProExtrude.h() ProFeatIntr.h() ProFixture.h() ProFlatSrf.h() ProForeignCurve.h() ProHole.h() ProMfgoper.h() ProMerge.h() ProMirror.h() ProMove.h() ProNcseq.h() ProNcseqElem.h() ProPattern.h() ProProcstep.h() ProReplace.h() ProRevolve.h() ProRib.h() ProRound.h() ProShell.h() ProSmtFlangeWall.h() ProSmtFlatWall.h() ProSmtForm.h() ProSolidify.h() ProSmtPunchQuilt.h() ProStdSection.h() ProSurfReg.h() ProSweep.h() ProThicken.h() ProTrim.h() ProToolElem.h() ProValue.h() ProWcell.h() */ extern ProError ProFeatureElemDimensionIdGet (ProFeature *feature, ProElempath elempath, int *p_dimension_id); /* Purpose: Retrieves the dimension identifier of the specified element. Note that the element cannot be a compound element. Input Arguments: feature - The feature elempath - The path to the element Output Arguments: p_dimension_id - The dimension identifier Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the dimension identifier. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. See Also: ProAnalysis.h() ProAsmcomp.h() ProBeltFeat.h() ProChamfer.h() ProContact3dFeat.h() ProDamperFeat.h() ProDesignatedArea.h() ProDraft.h() ProDtmAxis.h() ProDtmCrv.h() ProDtmCsys.h() ProDtmPln.h() ProDtmPnt.h() ProElemId.h() ProExtrude.h() ProFeatIntr.h() ProFixture.h() ProFlatSrf.h() ProForeignCurve.h() ProHole.h() ProMfgoper.h() ProMerge.h() ProMirror.h() ProMove.h() ProNcseq.h() ProNcseqElem.h() ProPattern.h() ProProcstep.h() ProReplace.h() ProRevolve.h() ProRib.h() ProRound.h() ProShell.h() ProSmtFlangeWall.h() ProSmtFlatWall.h() ProSmtForm.h() ProSolidify.h() ProSmtPunchQuilt.h() ProStdSection.h() ProSurfReg.h() ProSweep.h() ProThicken.h() ProTrim.h() ProToolElem.h() ProValue.h() ProWcell.h() */ extern ProError ProFeatureElemIsVisible ( ProFeature *feature, ProElempath elempath, ProBool *p_isvisible ); /* Purpose: Determines whether the element specified by the <i>elempath</i> argument is visible. Input Arguments: feature - The feature. elempath - The path to the element. Output Arguments: p_isvisible - If the element is visible, this is PRO_B_TRUE; otherwise, this is PRO_B_FALSE. Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the information. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. See Also: ProAnalysis.h() ProAsmcomp.h() ProBeltFeat.h() ProChamfer.h() ProContact3dFeat.h() ProDamperFeat.h() ProDesignatedArea.h() ProDraft.h() ProDtmAxis.h() ProDtmCrv.h() ProDtmCsys.h() ProDtmPln.h() ProDtmPnt.h() ProElemId.h() ProExtrude.h() ProFeatIntr.h() ProFixture.h() ProFlatSrf.h() ProForeignCurve.h() ProHole.h() ProMfgoper.h() ProMerge.h() ProMirror.h() ProMove.h() ProNcseq.h() ProNcseqElem.h() ProPattern.h() ProProcstep.h() ProReplace.h() ProRevolve.h() ProRib.h() ProRound.h() ProShell.h() ProSmtFlangeWall.h() ProSmtFlatWall.h() ProSmtForm.h() ProSolidify.h() ProSmtPunchQuilt.h() ProStdSection.h() ProSurfReg.h() ProSweep.h() ProThicken.h() ProTrim.h() ProToolElem.h() ProValue.h() ProWcell.h() */ extern ProError ProFeatureElemIsIncomplete ( ProFeature *feature, ProElempath elempath, ProBool *p_isincomplete ); /* Purpose: Determines whether the element specified by the <i>elempath</i> argument is incomplete. Input Arguments: feature - The feature. elempath - The path to the element. Output Arguments: p_isincomplete - If the element is incomplete, this is PRO_B_TRUE; otherwise, this is PRO_B_FALSE. Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the information. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. See Also: ProAnalysis.h() ProAsmcomp.h() ProBeltFeat.h() ProChamfer.h() ProContact3dFeat.h() ProDamperFeat.h() ProDesignatedArea.h() ProDraft.h() ProDtmAxis.h() ProDtmCrv.h() ProDtmCsys.h() ProDtmPln.h() ProDtmPnt.h() ProElemId.h() ProExtrude.h() ProFeatIntr.h() ProFixture.h() ProFlatSrf.h() ProForeignCurve.h() ProHole.h() ProMfgoper.h() ProMerge.h() ProMirror.h() ProMove.h() ProNcseq.h() ProNcseqElem.h() ProPattern.h() ProProcstep.h() ProReplace.h() ProRevolve.h() ProRib.h() ProRound.h() ProShell.h() ProSmtFlangeWall.h() ProSmtFlatWall.h() ProSmtForm.h() ProSolidify.h() ProSmtPunchQuilt.h() ProStdSection.h() ProSurfReg.h() ProSweep.h() ProThicken.h() ProTrim.h() ProToolElem.h() ProValue.h() ProWcell.h() */ extern ProError ProFeatureParamsDisplay (ProSelection feature_sel, ProParamType param_type); /* Purpose: Displays the same parameters shown by Creo Parametric when you modify a feature. Input Arguments: feature_sel - A <I>ProSelection</I> structure for the feature param_type - The parameter type to show Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully displayed the information. PRO_TK_BAD_INPUTS - One or more of the arguments are invalid. PRO_TK_GENERAL_ERROR - A general error occurred and the function failed. PRO_TK_E_NOT_FOUND - The model is not the top-level model in the window. */ extern ProError ProFeatureNumSectionsGet (ProFeature *feat_handle, int *p_n_sections); /* Purpose: Returns the number of sections owned by the specified feature. Input Arguments: feat_handle - The feature Output Arguments: p_n_sections - The number of sections in the feature Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the information. PRO_TK_BAD_INPUTS - The input argument is invalid. */ extern ProError ProFeatureSectionCopy (ProFeature *feat_handle, int section_number, ProSection *p_section); /* Purpose: Returns the copy of the requested section of the feature. Input Arguments: feat_handle - The feature. section_number - The section number. The valid values are 0 to (<I>n</I>-1), where <I>n</I> is the number of sections given by the function <B>ProFeatureNumSectionsGet()</B>. Output Arguments: p_section - The copy of the requested feature section. The function allocates the memory for this object. Use the function <B>ProSectionFree()</B> to free the object. Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the information. PRO_TK_UNAV_SEC - The section is not available for use. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. See Also: ProFeatureNumSectionsGet() ProSectionFree() */ extern ProError ProFeatureVerstampGet (ProFeature *feat_handle, ProWVerstamp *p_stamp); /* Purpose: Retrieves the version stamp of the specified feature. Input Arguments: feat_handle - The feature. Output Arguments: p_stamp - The version stamp. The function allocates the memory for this argument. To free the memory, use the function <B>ProVerstampFree()</B>. Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the information. PRO_TK_BAD_INPUTS - The input argument is invalid. See Also: ProVerstampFree() */ extern ProError ProFeatureNumberGet (ProFeature *p_feat_handle, int *r_feat_num); /* Purpose: Returns the regeneration sequence number of a feature. <p> NOTE: <p> Do not confuse this with a feature identifier. A feature identifier identifies a feature uniquely in a part or an assembly. The feature number tells you the sequential location of the feature in the feature list of the part or assembly. Input Arguments: p_feat_handle - The feature Output Arguments: r_feat_num - The sequence number of the supplied feature for regeneration Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the information. PRO_TK_BAD_INPUTS - The supplied feature is invalid. */ extern ProError ProFeatureReorder (ProSolid solid, int *feat_ids, int n_feats, int new_feat_num); /* Purpose: Reorders the supplied set of features such that the location of the first feature will be the <I>new_feat_num</I> after the reorder. <p><b> NOTE: <p></b> This function is deprecated. Use ProFeatureWithoptionsReorder() with flags equal to PRO_REGEN_NO_FLAGS for equivalent behavior. Input Arguments: solid - The part or assembly that owns the features to be reordered. feat_ids - The array of feature identifiers that represents a contiguous set of features in the model tree. If reordering a group, all the features in the group (including the Group Header feature) must be included in this array. n_feats - The size of the <I>feat_ids</I> array. new_feat_num - The intended location of the first feature in the specified set, upon reorder. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully reordered the features. PRO_TK_BAD_INPUTS - The specified feature is invalid, or the location to which the reordering is requested is not valid. */ extern ProError ProFeatureReadonlySet (ProFeature *p_last_feat); /* Purpose: Makes all the features up to the specified feature read only. Input Arguments: p_last_feat - The last feature up to which the features are to be read only. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully made all features up to and including the specified feature read-only. PRO_TK_BAD_INPUTS - The specified feature is invalid. Other - The read-only setting was aborted. */ extern ProError ProFeatureIsReadonly (ProFeature *p_feat_handle, ProBoolean *r_is_read_only); /* Purpose: Determines whether the specified feature is read only. Input Arguments: p_feat_handle - The feature. Output Arguments: r_is_read_only - This is PRO_B_TRUE if the supplied feature is marked read only; otherwise, this is PRO_B_FALSE. Return Values: PRO_TK_NO_ERROR - The function successfully returned the requested information. PRO_TK_BAD_INPUTS - The specified feature is invalid. */ extern ProError ProFeatureReadonlyUnset (ProSolid solid); /* Purpose: Removes the read-only setting of all the features owned by the specified solid. Input Arguments: solid - The solid whose read-only setting is to be cleared Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully cleared the read-only setting. PRO_TK_BAD_INPUTS - The specified part or assembly is invalid. */ extern ProError ProFeatureIsEmbedded (ProFeature* feat, ProBoolean* is_embedded); /* Purpose: Identifies if the feature is an embedded feature or not. Embedded features are visible in the model tree but may not be used as the reference parents for features other than the feature into which they are embedded. Input Arguments: feat - The feature. Output Arguments: is_embedded - PRO_B_TRUE if the feature is embedded, PRO_B_FALSE otherwise. Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. */ extern ProError ProFeatureInsertModeActivate (ProFeature *p_last_feat); /* Purpose: Activates insert mode such that the specified feature becomes the last feature. <p><b> NOTE: <p></b> This function is deprecated. Use ProFeatureInsertmodeWithoptionsActivate() with flags equal to PRO_REGEN_NO_FLAGS for equivalent behavior. Input Arguments: p_last_feat - The feature that will be the last feature. All the features after this feature will be detached. Any features created after the activation of insert mode will be created after this feature. When you cancel the insert mode, the detached features will be reappended at the end. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully activated insert mode. PRO_TK_BAD_INPUTS - The specified feature is invalid. See Also: ProInsertModeIsActive() ProInsertModeCancel() */ extern ProError ProInsertModeIsActive (ProSolid solid, ProBoolean *p_is_active); /* Purpose: Determines whether insert mode is active in the specified part or assembly. Input Arguments: solid - The part or assembly. Output Arguments: p_is_active - This is PRO_B_TRUE if insert mode is active; otherwise, this is PRO_B_FALSE. Return Values: PRO_TK_NO_ERROR - The function successfully returned the information. PRO_TK_BAD_INPUTS - The specified solid is invalid. See Also: ProFeatureInsertmodeWithoptionsActivate() ProInsertModeCancel() */ extern ProError ProInsertModeCancel (ProSolid solid, ProBoolean resume); /* Purpose: Cancels insert mode in the specified part or assembly. <p><b> NOTE: <p></b> This function is deprecated. Use ProInsertmodeWithoptionsCancel() with flags equal to PRO_REGEN_NO_FLAGS for equivalent behavior. Input Arguments: solid - The part or assembly. resume - Set this to PRO_B_TRUE if the suppressed features are to be resumed once you cancel insert mode. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully cancelled insert mode. PRO_TK_BAD_INPUTS - The specified feature is invalid. See Also: ProFeatureInsertmodeWithoptionsActivate() ProInsertModeIsActive() */ extern ProError ProFeatureHasGeomchks (ProFeature *p_feat_handle, ProBoolean *p_has_gerrs ); /* Purpose: Determines whether the specified feature in a part or assembly has geometry check items. Input Arguments: p_feat_handle - The feature to be checked. Output Arguments: p_has_gerrs - If this is PRO_B_TRUE, the feature has geometry check items. Otherwise, this is PRO_B_FALSE. Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the information. PRO_TK_BAD_INPUTS - The input argument is invalid. */ typedef ProError (*ProFeatureCreatePostAction) (ProFeature *feat_handle); /* Purpose: This is the notification function called upon successful creation of a feature. <p> This function is to be supplied by the user by calling <B>ProNotificationSet()</B> with the notify type PRO_FEATURE_CREATE_POST. Input Arguments: feat_handle - The handle of the feature just created Output Arguments: none Return Values: Return values are not interpreted by Creo Parametric. See Also: ProNotificationSet() */ typedef ProError (*ProFeatureCopyPostAction) (ProFeature *from_feat, ProFeature *to_feat, ProFeatcopyType copy_type); /* Purpose: This is the notification function called upon successful copying of a feature. <p> This function is to be supplied by the user by calling <B>ProNotificationSet()</B> with the notify type PRO_FEATURE_COPY_POST. Input Arguments: from_feat - The handle of the reference feature from which the copy was made. to_feat - The handle of the feature that is the result of the copy. copy_type - The type of user action prompting the copying of features. See the enumerated type <I>ProFeatcopyType</I>. Output Arguments: none Return Values: Return values are not interpreted by Creo Parametric. See Also: ProNotificationSet() */ typedef ProError (*ProFeatureDeletePreAction) (ProFeature *del_feat); /* Purpose: This is the notification function called before a feature is deleted. <p> This function is to be supplied by the user by calling <B>ProNotificationSet()</B> with the notify type PRO_FEATURE_DELETE_PRE. Input Arguments: del_feat - The handle of the feature about to be deleted Output Arguments: none Return Values: PRO_TK_NO_ERROR - The feature can be deleted. Proceed. Other - An error was encountered. The deletion action is aborted for all features. See Also: ProNotificationSet() */ typedef ProError (*ProFeatureDeletePostAction) (ProFeature *del_feat); /* Purpose: This is the notification function called after a feature has been deleted from the solid. <p> This function is to be supplied by the user by calling <B>ProNotificationSet()</B> with the notify type PRO_FEATURE_DELETE_POST. Input Arguments: del_feat - The handle of the deleted feature Output Arguments: none Return Values: Return values are not interpreted by Creo Parametric. See Also: ProNotificationSet() */ typedef ProError (*ProFeatureSuppressPreAction) (ProFeature *supp_feat); /* Purpose: This is the notification function called before a feature is suppressed. <p> This function is to be supplied by the user by calling <B>ProNotificationSet()</B> with the notify type PRO_FEATURE_SUPPRESS_PRE. Input Arguments: supp_feat - The handle of the feature about to be suppressed Output Arguments: none Return Values: PRO_TK_NO_ERROR - The feature can be suppressed. Proceed. Other - An error was encountered. The suppress action is aborted for all features. See Also: ProNotificationSet() */ typedef ProError (*ProFeatureSuppressPostAction) (ProFeature *supp_feat); /* Purpose: This is the notification function called after a feature has been suppressed from a solid. <p> This function is to be supplied by the user by calling <B>ProNotificationSet()</B> with the notify type PRO_FEATURE_SUPPRESS_POST. Input Arguments: supp_feat - The handle of the suppressed feature Output Arguments: none Return Values: Return values are not interpreted by Creo Parametric. See Also: ProNotificationSet() */ typedef ProError (*ProFeatureRegenPreAction) (ProFeature *feat_handle, ProElement *p_elem_tree); /* Purpose: This is the notification function called before regenerating a feature. <p> This function is to be supplied by the user by calling <b>ProNotificationSet()</b> with the notify type PRO_FEATURE_REGEN_PRE. Input Arguments: feat_handle - The handle to the feature about to be regenerated. Output Arguments: p_elem_tree - The new feature definition upon regeneration. The argument will be initialized to NULL (that is, <I>*p_elem_tree</I> = NULL). It will be used only if the callback initializes it. <p> Note that this argument is reserved for future use. Values passed to this argument are currently ignored by Creo Parametric. Return Values: PRO_TK_NO_ERROR - Proceed with regeneration. Other - An error was encountered. Regeneration is aborted. See Also: ProNotificationSet() */ typedef ProError (*ProFeatureRegenPostAction) (ProFeature *feat_handle); /* Purpose: This is the notification function called after regenerating a feature. <p> This function is to be supplied by the user by calling <B>ProNotificationSet()</B> with the notify type PRO_FEATURE_REGEN_POST. Input Arguments: feat_handle - The handle to the feature just regenerated Output Arguments: none Return Values: Return values are not interpreted by Creo Parametric. See Also: ProNotificationSet() */ typedef ProError (*ProFeatureRegenFailureAction) (ProFeature *p_feature); /* Purpose: This is the notification function called upon a feature failure event. <p> This function is to be supplied by the user by calling <B>ProNotificationSet()</B> with the notify type PRO_FEATURE_REGEN_FAILURE. Input Arguments: p_feature - The failed feature Output Arguments: none Return Values: Return values are not interpreted by Creo Parametric. See Also: ProNotificationSet() */ typedef ProError (*ProFeatureNeedsRegenGet) (ProFeature *p_feature); /* Purpose: This is the notification function called when checking if a feature needs to be regnerated. <p> This function is to be supplied by the user by calling <B>ProNotificationSet()</B> with the notify type PRO_FEATURE_NEEDS_REGEN_GET. Input Arguments: p_feature - The failed feature Output Arguments: none Return Values: PRO_TK_OUTDATED - return value if toolkit application wants to force regeneration of feature. PRO_TK_NO_ERROR - This application is NOT requesting that feature be forced to regenerate. Note: Other return values are not interpreted by Creo Parametric and can prevent other applications from properly affecting feature regen. See Also: ProNotificationSet() */ typedef ProError (*ProFeatureCreatePreAction) (ProFeature *p_feature); /* Purpose: This is the notification function called before creating a feature. <p> This function is to be supplied by the user by calling <B>ProNotificationSet()</B> with the notify type PRO_FEATURE_CREATE_PRE. Input Arguments: p_feature - The new feature to be created Output Arguments: none Return Values: Return values are not interpreted by Creo Parametric. See Also: ProNotificationSet() */ typedef ProError (*ProFeatureRedefinePreAction) (ProFeature *p_feature); /* Purpose: This is the notification function called before redefinition of a feature. <p> This function is to be supplied by the user by calling <B>ProNotificationSet()</B> with the notify type PRO_FEATURE_REDEFINE_PRE. Input Arguments: p_feature - The feature to be redefined Output Arguments: none Return Values: PRO_TK_NO_ERROR - The feature can be redefined. Proceed. Other - An error was encountered. The regeneration action is aborted for all features. See Also: ProNotificationSet() */ typedef ProError (*ProFeatureRedefinePostAction) (ProFeature *p_feat); /* Purpose: This is the notification function called after a feature is redefined in Creo Parametric. <p> This function is to be supplied by the user by calling <b>ProNotificationSet()</b> with the type PRO_FEATURE_REDEFINE_POST. Input Arguments: p_feat - Feature which has been redefined. Output Arguments: none Return Values: Return values are not interpreted by Creo Parametric. */ typedef ProError (*ProFeatureReroutePreAction) (ProFeature *p_feat); /* Purpose: This is the notification function called before a feature is rerouted in Creo Parametric. <p> This function is to be supplied by the user by calling <b>ProNotificationSet()</b> with the type PRO_FEATURE_REROUTE_PRE. Input Arguments: p_feat - Feature which is going to be rerouted. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The feature can be rerouted. Proceed. Other - An error was encountered. The reroute action is aborted for all features. */ typedef ProError (*ProFeatureReroutePostAction) (ProFeature *p_feat); /* Purpose: This is the notification function called after a feature is rerouted in Creo Parametric. <p> This function is to be supplied by the user by calling <b>ProNotificationSet()</b> with the type PRO_FEATURE_REROUTE_POST. Input Arguments: p_feat - Feature which has been rerouted. Output Arguments: none Return Values: Return values are not interpreted by Creo Parametric. */ typedef ProError (*ProFeatureReplacePreAction) (ProFeature *p_feat); /* Purpose: This is the notification function called before a feature is replaced in Creo Parametric. <p> This function is to be supplied by the user by calling <b>ProNotificationSet()</b> with the type PRO_FEATURE_REPLACE_PRE. Input Arguments: p_feat - Feature which is going to be replaced. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The feature can be replaced. Proceed. Other - An error was encountered. The replace action is aborted for all features. */ typedef ProError (*ProFeatureReplacePostAction) (ProFeature *p_feat); /* Purpose: This is the notification function called after a feature is replaced in Creo Parametric. <p> This function is to be supplied by the user by calling <b>ProNotificationSet()</b> with the type PRO_FEATURE_REPLACE_POST. Input Arguments: p_feat - Feature which has been replaced. Output Arguments: none Return Values: Return values are not interpreted by Creo Parametric. */ extern ProError ProFeatureDimensionVisit ( ProFeature *feature, ProDimensionVisitAction visit, ProDimensionFilterAction filter, ProAppData data); /* Purpose: Visits dimensions belonging to the feature. NOTE: The dimensions values might depend on other feature?s dimensions, e.g. sketch based features with shared/patterned or external sections, dependent copied or mirrored features. In many Creo operations such value dependent dimensions are automatically substituted by the parent dimension. If your application wishes to substitute value dependent dimensions by the parent, see ProDimensionParentGet(). Input Arguments: feature - The feature visit - The visit function filter - The filter function. If NULL, all dimensions are visited using the action function. data - User defined data passed to the visit and filter functions. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully visited all the feature's dimensions. PRO_TK_BAD_INPUTS - The function failed because one or more of the input arguments are invalid. PRO_TK_E_NOT_FOUND - No feature dimensions were visited. PRO_TK_GENERAL_ERROR - An error occurred while locating the dimensions. other - Visiting was stopped by the caller supplied functions with this error return. */ extern ProError ProFeatureCopyinfoGet (ProFeature* feature, ProFeatureCopyType* copy_type, ProFeatureCopyDependency* dependency, ProFeature* source_feature, ProFeature** also_copied); /* Purpose: Retrieves information about a copied feature. Input Arguments: feature - The feature. Output Arguments: copy_type - The type of copy operation that created the feature. Pass NULL if you are not interested in this information. dependency - Whether the copy is dependent or independent of the parent feature. NOTE: If a feature does not have any sections or dimensions, it will always be an independent copy regardless of the selection made when creating the copy. Pass NULL if you are not interested in this information. source_feature - The feature that this feature was copied from. source_feature is not available for independent copy. Pass NULL if you are not interested in this information. also_copied - ProArray of features that were copied with this feature. If there were no accompanying features, this will be NULL. If there are accompanying features, free this array using ProArrayFree. Pass NULL if you are not interested in this information. Return Values: PRO_TK_NO_ERROR - The feature copy information was created successfully. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. PRO_TK_BAD_CONTEXT - The feature is not a copied feature. */ extern ProError ProFeatureSketchAdd( ProFeature *incomplete_feature, ProSelection selection, int section_number ); /* Purpose: Copies section from a sketched datum curve specified by selection to the incomplete feature. Input Arguments: incomplete_feature - The incomplete feature to which the section needs to be added Supports the following sketched features: <ol><li>Fill / Flat Surface <li>Extrude <li>Revolve <li>Sketched Datum Curve <li>Wrap Curve </ol> selection - The selection of sketched datum curve feature from which section needs to be copied ( composed of id = feat_id and type = PRO_FEATURE ) section_number - The section number. The valid values are 0 to (<I>n</I>-1), where <I>n</I> is the number of sections given by the function <B>ProFeatureNumSectionsGet()</B>. Output Arguments: none Return Values: PRO_TK_NO_ERROR - Successful in copying the section PRO_TK_BAD_INPUTS - Invalid inputs PRO_TK_NOT_EXIST - section_number > max_section_number PRO_TK_BAD_CONTEXT - incomplete_feature is already complete PRO_TK_INVALID_ITEM - Improper selection object PRO_TK_ABORT - selection contains feature other than a sketched datum curve */ extern ProError ProFeatureSketchedWithOptionsCreate( ProSelection model, ProElement elemtree, ProFeatureCreateOptions *options, ProSelection *sketch_array, int flags, ProFeature *p_feature, ProErrorlist *p_errors ); /* Purpose: Creates a feature from the element tree and copies sketch(es) from the feature(s) from sketch_array to the created feature. Supports creation of the following sketched features: <ol> <li>Fill / Flat Surface <li>Extrude <li>Revolve <li>Sketched Datum Curve <li>Wrap Curve </ol> Input Arguments: model - The model on which the feature is being created. If the feature is created in an assembly, you must specify the component path. elemtree - The element tree. options - ProArray of user options. sketch_array - ProArray of selections of sketch datum curves containing sketches flags - The regeneration control flags. Pass as bitmask containing one or more of the bit flags PRO_REGEN* defined in ProSolid.h Output Arguments: p_feature - The feature handle to the created sketched feature. p_errors - The list of errors. Return Values: PRO_TK_NO_ERROR - The function successfully created the feature. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. PRO_TK_GENERAL_ERROR - The feature was not created successfully. The will feature set as incomplete. See p_errors for the list of problems. PRO_TK_ABORT - sketch_array contains feature other than a sketched datum curve See Also: ProDtmCrv.h() ProDtmPnt.h() ProExtrude.h() ProFlatSrf.h() ProRevolve.h() ProRib.h() */ extern ProError ProFeatureDtlsyminstGet (ProFeature *symbol_owner, ProDrawing drawing, ProDtlsyminst *symbol_instance); /* Purpose: Return the detail symbol instance that represents a shown solid model symbol. Input Arguments: symbol_owner - The feature (i.e. weld feature) that will produce the symbol. drawing - The drawing where the note is displayed. Output Arguments: symbol_instance - The symbol instance that displays the solid model symbol. Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the symbol instance. PRO_TK_BAD_INPUTS - One or more input arguments is invalid. PRO_TK_BAD_CONTEXT - The solid model is not contained in the drawing. PRO_TK_E_NOT_FOUND - The symbol is not displayed in the drawing. */ typedef struct pro_asm_intr_comp* ProFeatintersection; extern ProError ProFeatureAsmintersectionsCollect (ProFeature* feat, ProFeatintersection** p_intersection_array); /* Purpose: Collects and returns all the intersections of the assembly feature. Input Arguments: feat - The assembly feature Output Arguments: p_intersection_array - ProArray of intersections. Free this array using ProFeatintersecionProarrayFree(). Return Values: PRO_TK_NO_ERROR - The function found and returned the intersections. PRO_TK_BAD_INPUTS - One or more arguments is invalid. PRO_TK_E_NOT_FOUND - No intersections are found. */ extern ProError ProFeatintersectionDataGet (ProFeatintersection p_intersection, ProAsmcomppath* p_component, int* p_level, int* p_feat_id); /* Purpose: Returns the component intersected by the assembly feature, visibility level and id of the feature on intersected part. Input Arguments: p_intersection - The assembly feature intersection. Output Arguments: p_component - Component path to the component. p_level - The level at which the feature is visible in the assembly. An example: TOP level 0 | |-SUB1 level 1 | | | |-SUB2 level 2 | | |-FEAT |-PART level 3 if level=0 the feature is visible in the TOP assembly only; if level=table_num (from p_component) [in our example table_num=3] the feature is visible in the TOP assembly, all subassemblies in the path and in the part itself; if level=2, the feature is visible in the TOP assembly, SUB1 and SUB2. p_feat_id - Id of the feature created on the intersected part. Return Values: PRO_TK_NO_ERROR - The function found and returned the intersections. PRO_TK_BAD_INPUTS - One or more arguments is invalid. */ extern ProError ProFeatintersectionProarrayFree (ProFeatintersection* p_intersection_array); /* Purpose: Frees the memory owned by a feature intersections ProArray. Input Arguments: p_intersection_array - The assembly feature intersection ProArray. Output Arguments: none Return Values: PRO_TK_NO_ERROR - Successfully released. PRO_TK_BAD_INPUTS - One or more arguments is invalid. */ typedef enum { UNKNOWN_INTERSECTION_TYPE = 0, REGULAR_INTERSECTION, PART_LEVEL_FULL_COPY } ProFeatIntersectionType; extern ProError ProFeatintersectionTypeGet (ProFeatintersection p_intersection, ProFeatIntersectionType* p_type); /* Purpose: Returns the type of geometry created by the assembly feature intersection. Input Arguments: p_intersection - The assembly feature intersection. Output Arguments: p_type - Kind of the feature created on the intersected part. Values can be: REGULAR_INTERSECTION = regular assembly cut feature; PART_LEVEL_FULL_COPY = full copy of the assembly feature on the intersected part. Return Values: PRO_TK_NO_ERROR - The function found and returned the intersections. PRO_TK_BAD_INPUTS - One or more arguments is invalid. */ extern ProError ProFeatureReferenceEditRefsGet( ProSolid solid, ProFeature* p_feat_handle, int flags, ProReference** r_orig_ref_arr); /* Purpose: Return array of the original references of feature to perform edit reference operation. Input Arguments: solid - The part or assembly to which the features belong. p_feat_handle - The feature handle. flags - The flags to indicate what type of references to collect. Output Arguments: r_orig_ref_arr - ProArray containing Original References. Use the function ProReferencearrayFree() to free the memory. Return Values: PRO_TK_NO_ERROR - The function successfully returned array of the references. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. */ extern ProError ProFeatureReferenceEdit( ProSolid solid, ProFeature* p_feat_handle, ProReference* old_ref_arr, ProReference* new_ref_arr, int flags ); /* Purpose: Edit the references of feature to replace the old reference with new references. Input Arguments: solid - The part or assembly to which the features belong. p_feat_handle - The feature handle. old_ref_arr - ProArray containing Old References new_ref_arr - ProArray containing New References corresponding to old references flags - The regeneration control flags. Pass as bitmask containing one or more of the bit flags PRO_REGEN* defined in ProSolid.h Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully edited the references. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. PRO_TK_GENERAL_ERROR - Edit reference operation failed. PRO_TK_BAD_CONTEXT - Invalid regeneration flag(s) for this function. */ extern ProError ProFeatureIsInFooter (ProFeature *p_feat_handle,ProBoolean *p_feat_is_in_footer); /* Purpose: Reports if the given feature is currently located in model tree footer Input Arguments: p_feat_handle - The feature handle. Output Arguments: p_feat_is_in_footer - whether feature is in model tree footer. Values can be: PRO_B_TRUE = feature is in footer. PRO_B_FALSE = feature is not infooter. Return Values: PRO_TK_NO_ERROR - The function found and returned the intersections. PRO_TK_BAD_INPUTS - One or more arguments is invalid. */ /***************************************************************************/ extern ProError ProFeatureToFooterMove (ProFeature *feature, int *feat_num); /* Purpose: Move specified feature into the regeneration footer. Input Arguments: feature - The feature to move. Output Arguments: feat_num - The feature number AFTER it is moved into the footer. Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. PRO_TK_INVALID_TYPE - The specified feature is not permitted to be moved to footer. PRO_TK_E_FOUND - The specified feature is already in the footer. PRO_TK_GENERAL_ERROR - The function failed. */ /******************************************************************************/ extern ProError ProFeatureFromFooterMove (ProFeature *feature, int *feat_num); /* Purpose: Move specified feature out of the regeneration footer. Input Arguments: feature - The feature to move. Output Arguments: feat_num - The feature number AFTER it is moved outside the footer. Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. PRO_TK_E_FOUND - The specified feature is already outside the footer. PRO_TK_INVALID_TYPE - The specified feature is not permitted to be moved from footer. PRO_TK_GENERAL_ERROR - The function failed. */ /******************************************************************************/ extern ProError ProMdlFeatBackupOwnerNamesGet ( ProMdl model, ProFeature *feature, ProMdlName **TopToOwnerModelNames ); /* Purpose: Get model names from top to owner specified by own_ref_id and from top to reference from backup, mostly for the case some models are missing or not in session. Input Arguments: model - The owner model of the backup data. feature - The referencing feature. Output Arguments: TopToOwnerModelNames - ProArray of top to owner model names. The function allocates the memory for this argument. Use the function <B>ProArrayFree()</B> to free the memory. Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more arguments is invalid. PRO_TK_E_NOT_FOUND - The model does not have backup reference data. PRO_TK_E_FOUND - The model has backup reference data, but the specified names are not found. PRO_TK_GENERAL_ERROR - The function failed. */ /******************************************************************************/ extern ProError ProMdlFeatBackupRefMdlNamesGet ( ProMdl model, ProFeature *feature, int* path, int ref_id, ProMdlName **TopToRefModelNames ); /* Purpose: Get model names from top to owner specified by own_ref_id and from top to reference from backup, mostly for the case some models are missing or not in session. Input Arguments: model - The owner model of the backup data. feature - The referencing feature. path - A ProArray of the memb id (path) from the top to the reference owner model. ref_id - The specified reference id. Output Arguments: TopToRefModelNames - ProArray of top to ref model names. The function allocates the memory for this argument. Use the function <B>ProArrayFree()</B> to free the memory. Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more arguments is invalid. PRO_TK_E_NOT_FOUND - The model does not have backup reference data. PRO_TK_E_FOUND - The model has backup reference data, but the specified names are not found. PRO_TK_GENERAL_ERROR - The function failed. */ extern ProError ProFeatureIsShrinkwrapRefCopyGeom ( ProFeature *feature, ProBoolean *p_is_shrinkwrap_ref_cg_feat); /* Purpose: Check is feat of kind Reference Copy geometry feature of Shrinkwrap feature Input Arguments: feature - The feature handle. Output Arguments: p_is_shrinkwrap_ref_cg_feat - The pointer on the logical variable which value can be: Return Values: PRO_TK_NO_ERROR - The function successfully finished. PRO_TK_BAD_INPUTS - input argument is invalid. */ extern ProError ProFeatureShrinkwrapGetRefCopyGeoms (ProFeature *feature, ProFeature **ShrinkWrapRefCopyGeoms); /* Purpose: Collects Shrinkwrap feat Reference Copy geometry features Input Arguments: feature - The feature handle. Output Arguments: ShrinkWrapRefCopyGeoms - ProArray of Reference Copy geometry features. The function allocates the memory for this argument. Use the function <B>ProArrayFree()</B> to free the memory. This argument is not allowed to be NULL. Return Values: PRO_TK_NO_ERROR - The function successfully finished. PRO_TK_BAD_INPUTS - input argument is invalid. */ extern ProError ProFeatureIsShrinkwrap( ProFeature *feature, ProBoolean *p_is_shrinkwrap_feat); /* Purpose: Check is feat of kind Shrinkwrap feature Input Arguments: feature - The feature handle. Output Arguments: p_is_shrinkwrap_feat - The pointer on the logical variable which value can be: Return Values: PRO_TK_NO_ERROR - The function successfully finished. PRO_TK_BAD_INPUTS - input argument is invalid. */ extern ProError ProFeatureRefCopyGeomShrinkwrapGet( ProFeature *feature, ProFeature *shrinkwrap); /* Purpose: Get Shrinkwrap feature for a given Reference Copy geometry feature Input Arguments: feature - The feature handle. Output Arguments: shrinkwrap - Shrinkwrap feature for a given Reference Copy geometry feature. This argument is not allowed to be NULL. Return Values: PRO_TK_NO_ERROR - The function successfully finished. PRO_TK_BAD_INPUTS - input argument is invalid. */ extern ProError ProFeatureIsComponentLike (ProFeature* p_feat_handle, ProBoolean* is_comp_like); /* Purpose: Identifies if the feature is a component-like feature or not. Component-like features include components proper (features of type PRO_FEAT_COMPONENT) and features of other types but with component-like properties. Such features have some kind of association to a solid model and may be interpreted as placed components. For example, physical sensor features are component- like since they represent actual pieces of measuring hardware placed on the model, among other things. Likewise, solid welds are considered component-like. Input Arguments: p_feat_handle - The feature descriptor. This argument is not allowed to be NULL. Output Arguments: is_comp_like - PRO_B_TRUE if the feature is component-like, PRO_B_FALSE otherwise. This argument is not allowed to be NULL. Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. */ PRO_END_C_DECLS #endif /* PROFEATURE_H */