Element Trees: Round and Chamfer
This section describes how to create, redefine, and query round and chamfer features through element trees and element tree functions. The section Overview of Feature Creation of Element Trees: Principles of Feature Creation provides a necessary background information for this topic.
See the Part Modeling module in Creo Parametric for further details on round and chamfer feature creation.
The following sections describe the procedure for accessing the chamfers and round features in detail.
Round Feature
Feature Element Tree for Round Feature
The element tree for a round is documented in the header file ProRound.h, and has a simple structure. The following figure demonstrates the feature element tree structure:
Feature Element Tree for Round
Image
PRO_E_RNDCH_SETS
Image
PRO_E_RNDCH_RADIUS
Image
PRO_E_RNDCH_TRANSITIONS
Image
The following list details special information about the elements in this tree:
•  PRO_E_FEATURE_TYPE—Specifies feature type and should have the value as PRO_FEAT_ROUND only.
•  PRO_E_STD_FEATURE_NAME—Specifies the name to the feature. This is an optional element. If not specified then a default name will be assigned internally to the feature.
•  PRO_E_RNDCH_SETS—Specifies an array of PRO_E_RNDCH_SET.
•  PRO_E_RNDCH_ATTACH_TYPE—Specifies the attachment type and has the following values:
  PRO_ROUND_ATTACHED—Specifying this option, the created round feature consumes the model geometry.
  PRO_ROUND_UNATTACHED
  PRO_ROUND_CAPPED_ENDS
•  PRO_E_RNDCH_TRANSITIONS—Specifies a set of transition PRO_E_RNDCH_TRANSITION.
Element Details of PRO_E_RNDCH_SET for Round
Each PRO_E_RNDCH_SET specifies a round set, which is a round piece (geometry) created as per the placement references and consists of the following elements:
•  PRO_E_RNDCH_SHAPE_OPTIONS—Specifies the shape options and have the following values:
  PRO_ROUND_TYPE_CONSTANT—Specifies a round piece having a constant radius.
  PRO_ROUND_TYPE_VARIABLE—Specifies a round piece having multiple radii.
  PRO_ROUND_TYPE_FULL—Specifies full round which replaces the selected surface.
  PRO_ROUND_TYPE_THROUGH_CURVE—Allows the radius of the active round to be driven by the selected datum curve.
•  PRO_E_RNDCH_VARIABLE_RADIUS—Specifies if the round is of a constant or variable type.
•  PRO_E_RNDCH_COMPOUND_CONIC—Specifies if the round uses a conic section for the shape. It can be defined as:
  PRO_E_RNDCH_CONIC_TYPE—Specifies conic type and can have the following valid values:
  PRO_ROUND_CONIC_ENABLE
  PRO_ROUND_CONIC_DISABLE
  PRO_ROUND_CURV_CONTINUOUS—Used to specify curvature continuous rounds.
  PRO_E_RNDCH_CONIC_VALUE—Specifies conic value, that controls the sharpness of the conic shape and is required if PRO_E_RNDCH_CONIC_TYPE is equal to PRO_ROUND_CONIC_ENABLE.
  PRO_E_RNDCH_CONIC_DEP_OPT—Specifies independent options and is required if PRO_E_RNDCH_CONIC_TYPE is equal to PRO_ROUND_CONIC_ENABLE.
  The values of ProRoundConicIndependentType are as follows:
  PRO_ROUND_CONIC_DEPENDENT
  PRO_ROUND_CONIC_INDEPENDENT
  PRO_ROUND_CONIC_INDEPENDENT is the default type.
•  PRO_E_RNDCH_REFERENCES—Specifies a set of valid references of the round feature.
•  PRO_E_RNDCH_COMPOUND_SPINE—This is another option for defining the shape of the round. Specifies the spine and has the following elements:
  PRO_E_RNDCH_BALL_SPINE—Specifies rolling ball or normal to spine. Valid values of PRO_E_RNDCH_BALL_SPINE are:
  PRO_ROUND_ROLLING_BALL—Specifies a round surface and is created by rolling a spherical ball along the surfaces.
  PRO_ROUND_NORMAL_TO_SPINE—Specifies a round surface and is created by sweeping a conic or arc cross-section normal to a spine.
  PRO_E_STD_CURVE_COLLECTION_APPL—Specifies the spine curve and is required if PRO_E_RNDCH_BALL_SPINE is equal to PRO_ROUND_NORMAL_TO_SPINE.
Note
During the creation of rounds, the options D1 x D2 Conic and Normal to spine cannot be used together. Due to this restriction, the existing rounds with their conic type option set as PRO_ROUND_CONIC_INDEPENDENT and with the round creation method set to PRO_ROUND_NORMAL_TO_SPINE are reset to PRO_ROUND_ROLLING_BALL when the round is redefined. Therefor, for the conic type option PRO_ROUND_CONIC_INDEPENDENT you must specify the round creation method as PRO_ROUND_ROLLING_BALL.
•  PRO_E_RNDCH_AUTO_CONTINUE—Specifies whether surfaces will be extended to meet the designated round radius. The valid values are:
  PRO_ROUND_AUTO_CONT_DISABLE—This is the default value.
  PRO_ROUND_AUTO_CONT_ENABLE
This element is required if PRO_E_RNDCH_REFERENCE_TYPE = PRO_ROUND_REF_EDGE.
•  PRO_E_RNDCH_COMPOUND_EXT_OPTIONS—Specifies the external options. This is an optional element. It has the following elements:
  PRO_E_RNDCH_AUTO_BLEND—Specifies auto blend.
  PRO_E_RNDCH_TERM_SURFACE—Specifies the terminating surface.
•  PRO_E_RNDCH_RADII—Specifies the radii, as an array of radius or PRO_E_RNDCH_RADIUS and is required if PRO_E_RNDCH_SHAPE_OPTIONS is not equal to PRO_ROUND_TYPE_THROUGH_CURVE and PRO_E_RNDCH_SHAPE_OPTIONS is not equal to PRO_ROUND_TYPE_FULL.
•  PRO_E_STD_CURVE_COLLECTION_APPL—Specifies the curve collection and is required if PRO_E_RNDCH_SHAPE_OPTIONS is equal to PRO_ROUND_TYPE_THROUGH_CURVE.
•  PRO_E_RNDCH_AMBIGUITY—Specifies round set ambiguity.
Note
Ambiguity occurs in round features when other placement locations exist for the round set. The ambiguity condition occurs when two surfaces intersect in multiple locations.
Element Details of PRO_E_RNDCH_REFERENCES for Round
Each PRO_E_RNDCH_REFERENCES specifies a set of valid references of the round feature and has the following elements:
•  PRO_E_RNDCH_REFERENCE_TYPE—Specifies the reference types and valid values are:
  PRO_ROUND_REF_EDGE—Specifies that the surfaces border the edge reference and form the rolling tangent attachment for the round.
  PRO_ROUND_REF_SURF_SURF—Specifies that the edges of the round remain tangent to the reference surfaces.
  PRO_ROUND_REF_EDGE_SURF—Specifies that the round remains tangent to the surface. The edge reference does not maintain tangency.
  PRO_ROUND_REF_EDGE_EDGE—Specifies that the surfaces bordering the edge reference form the rolling tangent attachment for the round.
•  PRO_E_STD_CURVE_COLLECTION_APPL—Specifies the reference edges of the chain collection. It is required if PRO_E_RNDCH_REFERENCE_TYPE is equal to PRO_ROUND_REF_EDGE.
In Creo TOOLKIT 7.0.0.0 and later, you can select the reference edges from both different solid bodies as well as quilts. The resulting geometry is attached back to the same solid body or quilt from where the referenced edges were selected.
•  PRO_E_RNDCH_REFERENCE_SURFACE1—Specifies the first reference surface and is required if PRO_E_RNDCH_REFERENCE_TYPE is equal to PRO_ROUND_REF_SURF_SURF.
•  PRO_E_RNDCH_REFERENCE_SURFACE2—Specifies the second reference surface and is required if PRO_E_RNDCH_REFERENCE_TYPE is equal to PRO_ROUND_REF_SURF_SURF or PRO_E_RNDCH_REFERENCE_TYPE is equal to PRO_ROUND_REF_EDGE_SURF.
•  PRO_E_RNDCH_REFERENCE_EDGE1—Specifies the first reference edge and is required if PRO_E_RNDCH_REFERENCE_TYPE is equal to PRO_ROUND_REF_EDGE_SURF or PRO_E_RNDCH_REFERENCE_TYPE is equal to PRO_ROUND_REF_EDGE_EDGE and PRO_E_RNDCH_SHAPE_OPTIONS is equal to PRO_ROUND_TYPE_FULL.
•  PRO_E_RNDCH_REFERENCE_EDGE2—Specifies the second reference edge and is required if PRO_E_RNDCH_REFERENCE_TYPE is equal to PRO_ROUND_REF_EDGE_EDGE and PRO_E_RNDCH_SHAPE_OPTIONS is equal to PRO_ROUND_TYPE_FULL.
•  PRO_E_RNDCH_REPLACE_SURFACE—Specifies the surface to be replaced and is required if PRO_E_RNDCH_REFERENCE_TYPE is equal to PRO_ROUND_REF_SURF_SURF and PRO_E_RNDCH_SHAPE_OPTIONS is equal to PRO_ROUND_TYPE_FULL.
Element Details of PRO_E_RNDCH_RADIUS for Round
Each PRO_E_RNDCH_RADIUS has the following elements:
•  PRO_E_STD_POINT_COLLECTION_APPL—Specifies a point, which governs the value of the radius.
•  PRO_E_RNDCH_LEG1—Specifies the leg1.
•  PRO_E_RNDCH_LEG2—Specifies the leg2 and is required if PRO_E_RNDCH_CONIC_DEP_OPT is equal to PRO_ROUND_CONIC_INDEPENDENT.
Each PRO_E_RNDCH_LEG1 or PRO_E_RNDCH_LEG2 has the following elements:
•  PRO_E_RNDCH_LEG_TYPEProRoundRadiusType specifies leg type and is a mandatory element. It is of the following types:
  PRO_ROUND_RADIUS_TYPE_VALUE
  PRO_ROUND_RADIUS_THROUGH_POINT
•  PRO_E_RNDCH_LEG_VALUE—Specifies leg value and is required if PRO_E_RNDCH_LEG_TYPE is equal to PRO_ROUND_RADIUS_TYPE_VALUE.
•  PRO_E_RNDCH_REFERENCE_EDGE—Specifies reference edge having the value as PRO_E_EDGE and is required if PRO_E_RNDCH_LEG_TYPE is equal to PRO_ROUND_RADIUS_THROUGH_POINT.
•  PRO_E_RNDCH_REFERENCE_POINT—Specifies reference point having the value as PRO_E_POINT and is required if PRO_E_RNDCH_LEG_TYPE is equal to PRO_ROUND_RADIUS_THROUGH_POINT.
Element Details of PRO_E_RNDCH_TRANSITION for Round
Each PRO_E_RNDCH_TRANSITION represents user-defined transitions for the entire round feature and consists of the following elements:
•  PRO_E_RNDCH_TRANS_TYPE specifies the type of the transition type. Valid values are:
  PRO_ROUND_TRANS_INTERSECT—Used to extend two or more overlapping round pieces towards each other until they merge forming a sharp boundary.
  PRO_ROUND_TRANS_BLEND—Used to create a fillet surface between the round pieces using an edge reference.
  PRO_ROUND_TRANS_STOP—Used to terminate the round geometry at the specified datum point or datum plane.
  PRO_ROUND_TRANS_CONTINUE—Used to extend round geometry into two round pieces.
  PRO_ROUND_TRANS_SPHERE_CORNER—Used to create a round from the corner transition formed by three overlapping pieces by a spherical corner.
  PRO_ROUND_TRANS_PATCH—Used to create a patched surface at the location where three or four round pieces overlap at a corner.
  PRO_ROUND_TRANS_BLEND_3SRF—Used to create a triangular patch as a transition of three rounds.
  PRO_ROUND_TRANS_RBALL—Used to create a rolling ball transition for three or more rounds.
  PRO_ROUND_TRANS_STOP_0_SIDE—Used to terminate the round using geometry configured by Creo Parametric.
  PRO_ROUND_TRANS_STOP_1_SIDE—Used to terminate the round using geometry configured by Creo Parametric.
  PRO_ROUND_TRANS_STOP_2_SIDE—Used to terminate the round using geometry configured by Creo Parametric.
  PRO_ROUND_TRANS_STOP_AT_REF—Used to terminate round geometry at the selected datum point or datum plane.
  PRO_ROUND_TRANS_STOP_FULL—Used to keep the stop transition close to the boundary of the removed surface.
  PRO_ROUND_TRANS_STOP_2_WE—Used to create a stop transition with maximum possible extension of the round by freezing one of round's references and changing the other reference at intersection with tangent edges.
•  PRO_E_RNDCH_TRANS_CAP—Specifies the capping surface for round feature. It has the following values:
  PRO_ROUND_CAPPING_SURF_DISABLE = PRO_B_FALSE
  PRO_ROUND_CAPPING_SURF_ENABLE = PRO_B_TRUE
•  PRO_E_RNDCH_TRANS_SPHERE_DATA—Specifies sphere data and consists of the following elements:
  PRO_E_RNDCH_TRANS_RADIUS_OPTIONS—Specifies radius options and is a mandatory element.
  PRO_E_RNDCH_TRANS_SPHERE_RADIUS—Specifies sphere radius and is required if PRO_E_RNDCH_TRANS_RADIUS_OPTIONS is equal to PRO_ROUND_TRANS_RADIUS_ENTER_VALUE.
  PRO_E_RNDCH_TRANS_LEG1_OPTIONS—Specifies leg1 options and is a mandatory element.
  PRO_E_RNDCH_TRANS_LEG1_VALUE—Specifies the value of leg1 and is required if PRO_E_RNDCH_TRANS_LEG1_OPTIONS is equal to PRO_ROUND_TRANS_RADIUS_ENTER_VALUE.
  PRO_E_RNDCH_TRANS_LEG2_OPTIONS—Specifies leg2 options and is a mandatory element.
  PRO_E_RNDCH_TRANS_LEG2_VALUE—Specifies the value of leg2 and is required if PRO_E_RNDCH_TRANS_LEG2_OPTIONS is equal to PRO_ROUND_TRANS_RADIUS_ENTER_VALUE.
  PRO_E_RNDCH_TRANS_LEG3_OPTIONS—Specifies leg3 options and is a mandatory element.
  PRO_E_RNDCH_TRANS_LEG3_VALUE—Specifies the value of leg3 and is required if PRO_E_RNDCH_TRANS_LEG3_OPTIONS is equal to PRO_ROUND_TRANS_RADIUS_ENTER_VALUE.
•  PRO_E_RNDCH_TRANS_PATCH_DATA—Specifies the patch data and is required if PRO_E_RNDCH_TRANS_TYPE is equal to PRO_ROUND_TRANS_PATCH. It has the following elements:
  PRO_E_RNDCH_TRANS_PATCH_REF_SURF—Specifies the arc surface, which indicates that a valid surface reference has been selected to place a fillet for the active patch transition. It should have the value as PRO_SURFACE only.
  PRO_E_RNDCH_TRANS_PATCH_RAD_OPT—Specifies the arc radius options. It indicates the fillet radius for the active patch transition and has following options:
  PRO_ROUND_TRANS_RADIUS_ENTER_VALUE— Specifies a new radius value.
  PRO_ROUND_TRANS_RADIUS_AUTOMATIC— Specifies the most recently used radius value.
  PRO_E_RNDCH_TRANS_ARC_RADIUS—Specifies the arc radius.
•  PRO_E_RNDCH_TRANS_STOP_DATA—Specifies the capping surface. It has the following elements:
  PRO_E_RNDCH_TRANS_STOP_REF_TYPE—Specifies the reference type. Valid values are:
  PRO_ROUND_TRANS_REF_NO_REF
  PRO_ROUND_TRANS_REF_GEOM
  PRO_ROUND_TRANS_REF_PNTVTX
  PRO_ROUND_TRANS_REF_DTMPLN
  PRO_ROUND_TRANS_REF_ISOLINE
  PRO_E_RNDCH_TRANS_STOP_REFERENCE—Specifies the references for the active stop at reference transition. It can either be PRO_SURFACE or PRO_POINT.
Creating a Round
Function Introduced:
Use the function ProFeatureCreate() to create a round based on element tree input. For more information about ProFeatureCreate(), refer to the section Overview of Feature Creation in the Element Trees: Principles of Feature Creation section.
Note
In Pro/ENGINEER Wildfire 2.0,
•  Pro/TOOLKIT does not support the temporary geometry required for user-specified ambiguity and non-default transitions. Therefore, these elements cannot be used for creation of new rounds.
•  If transitions are specified in the input element tree, a round feature with the default transition will be created.
•  In case of ambiguous situation (where more than one valid solutions exist, e.g. for surface-surface round - surfaces having discontinuous edges of intersection), a round feature with default solution will be created.
Redefining a Round
Function Introduced:
Use the function ProFeatureRedefine() to redefine a round based on the changes made in the element tree. For more information about ProFeatureRedefine(), refer to the section Feature Redefine in the Element Trees: Principles of Feature Creation section.
Note
In Pro/ENGINEER Wildfire 2.0,
•  A round feature having default transition, can not be redefined to have any transition.
•  A round feature having a Pro/ENGINEER user interface defined transition can be redefined to other type of transition, for example, from intersect type to spherical type. The input element tree must have a valid transition of the required type.
Accessing a Round
Function Introduced:
Use the function ProFeatureElemtreeExtract() to create a feature element tree that describes the contents of a round and to retrieve the element tree description of a round. For more information about ProFeatureElemtreeExtract(), refer to the section Feature Inquiry in the Element Trees: Principles of Feature Creation section.
Example 1: Sample code for creation of a Round Feature
The sample code in UgEdgeRoundCreate.c located at <creo_toolkit_loadpoint>/protk_appls/pt_userguide/ptu_featcreat shows how to create an Edge Round feature. The user is prompted for three edges to be rounded.
Modify Round Radius Feature
As a part of the flexible modeling capabilities the Modify Round Radius feature allows you to modify the radius of existing round geometry. You can modify the radius of both constant and variable rounds, however variable radius rounds are converted to constant radius rounds upon modification. You can also modify the radii of multiple round shape sets.
The creation of the Modify Round Radius feature includes the following steps:
1. Identify the round geometry to be modified and its radius value.
2. Creo Parametric removes the identified round geometry using the remove surface algorithm and recreates the rounded edges with the desired radius value.
3. The feature IDs of recreated rounds are updated.
Feature Element Tree for Modify Round Radius Feature
The element tree for a Modify Round Radius feature is documented in the header file ProModifyRound.h and has a simple structure. The following figure demonstrates the structure of the feature element tree.
Modify Round Radius Element Tree
Image
The elements in this tree are described as follows:
•  PRO_E_FEATURE_TYPE—Specifies the feature type and should be PRO_FEAT_MOD_ROUND.
•  PRO_E_STD_FEATURE_NAME—Specifies the name of the feature. The default value of this element is MODIFY_ROUND.
•  PRO_E_STD_SURF_COLLECTION_APPL—Specifies a collection of reference surfaces the includes the rounds to be modified.
In Creo TOOLKIT 7.0.0.0 and later, you can select the reference surfaces from both different solid bodies as well as quilts. The resulting geometry is attached back to the same solid body or quilt from where the referenced surfaces were selected.
•  PRO_E_MODRND_RAD_VAL—Specifies the new radius value. This value falls in the range [(part epsilon / 10.0),  1.0e+06].
•  PRO_E_MODRND_OPTS—Specifies the modification options for each round to be recreated. This compound element consists of the following elements:
  PRO_E_MODRND_ATTACH—Specifies whether the recreated round geometry is attached to the selected reference surface upon creation. The values for this element, specified by the enumerated type ProModRndAttach, are as follows:
  PRO_MODRND_ATTACH_GEOM
  PRO_MODRND_DONOT_ATTACH_GEOM
  PRO_E_MODRND_CLOSEGEOM—Specifies if end surfaces are created for the recreated rounds. The values for this element, specified by the enumerated type ProModRndCloseGeom, are as follows:
  PRO_MODRND_CLOSE_GEOM
  PRO_MODRND_DONOT_CLOSE_GEOM
Note
The element PRO_E_MODRND_CLOSEGEOM is applicable only if the element PRO_E_MODRND_ATTACH has the value PRO_MODRND_DONOT_ATTACH_GEOM, meaning that the rounds are recreated as new surfaces or quilts.
  PRO_E_MODRND_RECR_INTERF_RND—Specifies whether interfering rounds are removed and recreated in order to recreate the modified round geometry. The values for this element, specified by the enumerated type ProModRndRecrRounds, are as follows:
  PRO_MODRND_RECR_INTERF_RNDS
  PRO_MODRND_DONOT_RECR_INTERF_RNDS
•  PRO_E_STD_FLEX_PROPAGATION—Specifies a Pattern feature, a Symmetry Recognition feature, or a Mirror Geometry feature that contains the reference surfaces specified by the element PRO_E_STD_SURF_COLLECTION_APPL. If such surfaces exist, then the modification of the round radius is propagated to all corresponding surfaces in the instances of the Pattern feature, the Symmetry Recognition feature, or the Mirror Geometry feature, in order to maintain the pattern or symmetry.
Auto Round Feature
The Auto Round feature enables you to create round geometry of a constant radius on solid geometry or on a quilt of a part or assembly. The Auto Round Feature creates Round features called Auto-Round Members (ARMs) that are represented in the Model Tree as subnodes of the Auto Round feature, or as groups of individual independent round features. Refer to the Creo Parametric Online Help for more details about this feature type.
Pro/TOOLKIT does not provide access to the Auto Round feature via an element tree for the Wildfire 4.0 release. Some Creo TOOLKIT functionality such as feature deletion, suppression and redefinition are not supported for individual ARMs within an Auto Round feature.
Functions Introduced:
The function ProRoundIsAutoRoundMember() identifies if the specified round feature is a member of the Auto Round feature.
Chamfer Feature
Feature Element Tree for Chamfer Feature
The element tree for a chamfer is documented in the header file ProChamfer.h, and has a simple structure. The following figure demonstrates the feature element tree structure:
Feature Element Tree for Chamfer
Image
PRO_E_RNDCH_SETS
Image
PRO_E_RNDCH_TRANSITIONS
Image
The following list details special information about some of the elements in this tree:
•  PRO_E_FEATURE_TYPE—Specifies feature type and has the value of PRO_FEAT_CHAMFER.
•  PRO_E_STD_FEATURE_NAME—Specifies the name of the feature.
•  PRO_E_RNDCH_SETS—Specifies an array of PRO_E_RNDCH_SET.
•  PRO_E_RNDCH_ATTACH_TYPE—Specifies the attachment type and has the following values:
  PRO_ROUND_ATTACHED
  PRO_ROUND_UNATTACHED
  PRO_ROUND_CAPPED_ENDS
•  PRO_E_RNDCH_TRANSITIONS—Specifies a set of transition PRO_E_RNDCH_TRANSITION.
Element Details of PRO_E_RNDCH_SET for Chamfer
Each PRO_E_RNDCH_SET specifies a chamfer set for the chamfer feature and must have the following elements:
•  PRO_E_RNDCH_DIMENSIONAL_SCHEMA—Specifies the type of chamfer or the dimensional schema PRO_E_RNDCH_DIMENSIONAL_SCHEMA using the enumerated type ProChmSchema. The different types of PRO_E_RNDCH_DIMENSIONAL_SCHEMA is as follows:
  PRO_CHM_45_X_D—Specifies a chamfer that is at an angle of 45 degrees to both surfaces and at a distance D from the edge along each surface.
  PRO_CHM_D_X_D—Specifies a chamfer that is at a distance D from the edge along each surface. This is the default type.
  PRO_CHM_D1_X_D2—Specifies a chamfer at a distance D1 from the selected edge along one surface and at a distance D2 from the selected edge along the other surface.
  PRO_CHM_ANG_X_D—Specifies a chamfer at a distance D from the selected edge along one adjacent surface, at a specified angle to that surface.
  PRO_CHM_O_X_O—Provides direct control of the surface offset distances.
  PRO_CHM_O1_X_O2—Provides direct control of the surface offset distances.
Note
For Surf-Surf chamfer, the available schemes are:
  Offset Surface method—PRO_CHM_O_X_O, PRO_CHM_O1_X_O2, PRO_CHM_D_X_D, PRO_CHM_D1_X_D2 are available.
  Tangent Dist method—PRO_CHM_D_X_D, PRO_CHM_D1_X_D2, PRO_CHM_45_X_D, PRO_CHM_ANG_X_D are available.
For Surface-to-Edge chamfer the available schemes are:
  Offset Surface: PRO_CHM_O_X_O, PRO_CHM_O1_X_O2.
  Tangent Distance: PRO_CHM_D_X_D, PRO_CHM_D1_X_D2.
These schemes are applicable for constant angle planes or constant 90 degree surfaces and are also available if all members of the edge chain are formed by exactly 2 planes or exactly 2 surfaces at 90 degree, as in the ends of a cylinder.
•  PRO_E_RNDCH_CHAMFER_SHAPE—Specifies the shape of the chamfer feature. PRO_E_RNDCH_CHAMFER_SHAPE has the following valid values:
  PRO_CHM_TANGENT_LEGS—Specifies the chamfer distance between vectors that are tangent to the neighboring surface of the reference edge.
  PRO_CHM_OFFSET_SURFACE—Specifies the offset surfaces.
•  PRO_E_RNDCH_REFERENCES—Specifies a set of valid references of the chamfer feature and has the following elements:
  PRO_E_STD_CURVE_COLLECTION_APPL—Specifies reference edges and is a required element for edge chamfer.
In Creo TOOLKIT 7.0.0.0 and later, you can select the reference edge chamfers from both different solid bodies as well as quilts. The resulting geometry is attached back to the same solid body or quilt from where the referenced edges were selected.
  PRO_E_RNDCH_REFERENCE_SURFACE—Specifies reference surfaces and is required if either PRO_E_RNDCH_DIMENSIONAL_SCHEMA is equal to PRO_CHM_D1_X_D2 or PRO_E_RNDCH_DIMENSIONAL_SCHEMA is equal to PRO_CHM_ANG_X_D.
•  PRO_E_RNDCH_COMPOUND_EXT_OPTIONS—Specifies the external options. This is an optional element and has the following elements:
  PRO_E_RNDCH_AUTO_BLEND—Specifies the auto blend.
  PRO_E_RNDCH_TERM_SURFACE—Specifies terminating surface.
•  PRO_E_RNDCH_RADII—Specifies an array of radius PRO_E_RNDCH_RADIUS.
•  PRO_E_RNDCH_AMBIGUITY—Specifies the ambiguity in the chamfer set.
Note
The chamfer set can contain ambiguity if the chamfer set contains chamfer pieces that co-exist and can be placed in various locations in the selected references and in part geometry.
Element Details of PRO_E_RNDCH_RADIUS for Chamfer
Each PRO_E_RNDCH_RADIUS has the following elements:
•  PRO_E_RNDCH_LEG1—Specifies leg1 of the chamfer feature.
•  PRO_E_RNDCH_LEG2—Specifies leg2 of the chamfer feature and is a required element if either PRO_E_RNDCH_DIMENSIONAL_SCHEMA is equal to PRO_CHM_D1_X_D2 or PRO_E_RNDCH_DIMENSIONAL_SCHEMA is equal to PRO_CHM_ANG_X_D.
Each PRO_E_RNDCH_LEG1 or PRO_E_RNDCH_LEG2 has the following elements:
•  PRO_E_RNDCH_LEG_TYPE—Specifies leg type and is a mandatory element. It is of the following types:
  PRO_ROUND_RADIUS_TYPE_VALUE
  PRO_ROUND_RADIUS_THROUGH_POINT
The definition of ProRoundRadiusType is as follows:
•  PRO_E_RNDCH_LEG_VALUE—Specifies leg value and is required if PRO_E_RNDCH_LEG_TYPE is equal to PRO_ROUND_RADIUS_TYPE_VALUE.
•  PRO_E_RNDCH_REFERENCE_EDGE—Specifies reference edge and is required if PRO_E_RNDCH_LEG_TYPE is equal to PRO_ROUND_RADIUS_THROUGH_POINT.
•  PRO_E_RNDCH_REFERENCE_POINT—Specifies reference point and is required if PRO_E_RNDCH_LEG_TYPE is equal to PRO_ROUND_RADIUS_THROUGH_POINT.
Element Details of PRO_E_RNDCH_TRANSITION for Chamfer
Each PRO_E_RNDCH_TRANSITION represents user-defined transitions for the entire chamfer feature and consists of the following elements:
•  PRO_E_RNDCH_TRANS_TYPE—Specifies the type of the transition type. Valid values are:
  PRO_ROUND_TRANS_INTERSECT—Used to extend two or more overlapping chamfer pieces towards each other until they merge forming a sharp boundary.
  PRO_ROUND_TRANS_BLEND—Used to create a fillet surface between the chamfer pieces using an edge reference.
  PRO_ROUND_TRANS_STOP—Used to terminate the chamfer geometry at the specified datum point or datum plane.
  PRO_ROUND_TRANS_CONTINUE—Used to extend chamfer geometry into two chamfer pieces.
  PRO_ROUND_TRANS_PATCH—Used to create a patched surface at the location where three or four chamfer pieces overlap.
  PRO_ROUND_TRANS_BLEND_3SRF—Used to create a triangular patch as a transition of three chamfers.
  PRO_ROUND_TRANS_PLANE_CORNER—Used to chamfer the corner transition formed by three overlapping chamfer pieces with a plane.
  PRO_ROUND_TRANS_RBALL—Used to create a rolling ball transition for three or more chamfers.
  PRO_ROUND_TRANS_STOP_0_SIDE—Used to terminate the chamfer using geometry configured by Creo Parametric.
  PRO_ROUND_TRANS_STOP_1_SIDE—Used to terminate the chamfer using geometry configured by Creo Parametric.
  PRO_ROUND_TRANS_STOP_2_SIDE—Used to terminate the chamfer using geometry configured by Creo Parametric.
  PRO_ROUND_TRANS_STOP_AT_REF—Used to terminate the chamfer geometry at the selected datum point or datum plane.
Note
Only some of the transition types listed above are available for a given context.
•  PRO_E_RNDCH_TRANS_CAP—Specifies the capping surface for chamfer pieces of the chamfer feature. It has the following values:
  PRO_ROUND_CAPPING_SURF_DISABLE = PRO_B_FALSE.
  PRO_ROUND_CAPPING_SURF_ENABLE = PRO_B_TRUE.
•  PRO_E_RNDCH_TRANS_PATCH_DATA—Specifies the patch data and is required if PRO_E_RNDCH_TRANS_TYPE is equal to PRO_ROUND_TRANS_PATCH. It has the following elements:
  PRO_E_RNDCH_TRANS_PATCH_REF_SURF—Specifies the arc surface, which indicates that a valid surface reference has been selected to place a fillet for the active patch transition. It should have the value as PRO_SURFACE only.
  PRO_E_RNDCH_TRANS_PATCH_RAD_OPT—Specifies the arc radius options. It indicates the fillet radius for the active Patch transition and has following options:
  PRO_ROUND_TRANS_RADIUS_ENTER_VALUE— Specifies a new radius value.
  PRO_ROUND_TRANS_RADIUS_AUTOMATIC— Specifies the most recently used value.
  PRO_E_RNDCH_TRANS_ARC_RADIUS—Specifies the arc radius.
•  PRO_E_RNDCH_TRANS_STOP_DATA—Specifies the capping surface. It has the following elements:
  PRO_E_RNDCH_TRANS_STOP_REF_TYPE—Specifies the reference type. Valid values are:
  PRO_ROUND_TRANS_REF_NO_REF
  PRO_ROUND_TRANS_REF_GEOM
  PRO_ROUND_TRANS_REF_PNTVTX
  PRO_ROUND_TRANS_REF_DTMPLN
  PRO_ROUND_TRANS_REF_ISOLINE
  PRO_E_RNDCH_TRANS_STOP_REFERENCE—Specifies the references for the active stop at reference transition. It can either be PRO_SURFACE or PRO_POINT.
Creating a Chamfer
Function Introduced:
Use the function ProFeatureCreate() to create a Chamfer based on element tree input. For more information about ProFeatureCreate(), refer to the section Overview of Feature Creation of section Element Trees: Principles of Feature Creation.
Note
In Pro/ENGINEER Wildfire 2.0,
1. Pro/TOOLKIT does not support the temporary geometry required for user-specified ambiguity and non-default transitions. Therefore, these elements cannot be used for creation of new chamfers.
2. If transitions are specified in the input element tree, a chamfer feature with the default transition will be created.
3. In case of ambiguous situation (where more than one valid solutions exist, e.g. for surface-surface chamfer - surfaces having discontinuous edges of intersection), a chamfer feature with default solution will be created.
Redefining a Chamfer
Function Introduced:
Use the function ProFeatureRedefine() to redefine a Chamfer based on the changes made in the element tree. For more information about ProFeatureRedefine(), refer to the section Feature Redefine in the Element Trees: Principles of Feature Creation section.
Note
In Pro/ENGINEER Wildfire 2.0,
1. A chamfer feature having default transition, can not be redefined to have any transition.
2. A chamfer feature having a Pro/ENGINEER user interface defined transition can be redefined to other type of transition, for example, from intersect type to corner type. The input element tree must have a valid transition of the required type.
Accessing a Chamfer
Function Introduced:
Use the function ProFeatureElemtreeExtract() to create a feature element tree that describes the contents of a Chamfer and to retrieve the element tree description of a Chamfer. For more information about ProFeatureElemtreeExtract(), refer to the section Feature Inquiry in the Element Trees: Principles of Feature Creation section.
Example 2: Sample code for creation of a Chamfer Feature
The sample code in UgChamferTemplate.c located at <creo_toolkit_loadpoint>/protk_appls/pt_userguide/ptu_featcreat shows how to create a Chamfer feature. It includes all possible element assignments. By following the instructions for the feature you want to create, it should be possible to remove element settings not appropriate for your use.
Example 3: Sample code for creation of a Edge Chamfer Feature
The sample code in UgEdgeChamferCreate.c located at <creo_toolkit_loadpoint>/protk_appls/pt_userguide/ptu_featcreat shows how to create a Edge Chamfer feature. The user is prompted to select an edge on which the chamfer will be created.
Edit Chamfer Feature
As a part of the flexible modeling capabilities the Edit Chamfer feature allows you to modify the existing chamfer geometry of an edge chamfer. You can modify the distance (D) from the edge along each surface, the D1 and D2 values, and so on and also the offset distance (O) from the edge along each surface. The ability to switch from chamfer by offset (O) to chamfer by extension (D) will have the same restrictions as in the chamfer feature.
To create the Edit Chamfer feature follow the steps:
1. Identify the chamfer geometry to be modified and its D or O value.
2. Modify the specified chamfer geometry by using Creo Parametric. The application removes the identified chamfer geometry and recreates the chamfered edges with the desired values. The feature IDs of recreated chamfers are updated.
Feature Element Tree for Edit Chamfer Feature
The element tree for an Edit Chamfer feature is documented in the header file ProModifyChamfer.h and is as shown in the following figure.
Edit Chamfer Element Tree
Image
The following table describes the elements in the element tree:
Element ID
Data Type
Description
PRO_E_FEATURE_TYPE
PRO_VALUE_TYPE_INT
Mandatory element. Specifies the type of feature. The value of this feature must be PRO_FEAT_MOD_CHAMFER.
PRO_E_STD_FEATURE_NAME
PRO_VALUE_TYPE_WSTRING
Mandatory element. Specifies the name of the feature. The default value is EDIT_CHAMFER.
PRO_E_STD_SURF_COLLECTION_APPL
PRO_VALUE_TYPE_SELECTION
Mandatory element. Specifies a collection of reference surfaces that include the chamfer geometry to be modified.
In Creo TOOLKIT 7.0.0.0 and later, you can select the reference surfaces from both different solid bodies as well as quilts. The resulting geometry is attached back to the same solid body or quilt from where the referenced surfaces were selected.
PRO_E_MODRND_REMOVE
PRO_VALUE_TYPE_INT
Mandatory element. Specifies if the existing chamfer must be removed.
PRO_E_MODRND_DIMENSIONAL_SCHEMA
PRO_VALUE_TYPE_INT
Mandatory element. Specifies the type of chamfer or the dimension schema. The values for this element are defined by the enumerated type ProChmSchema. For more information on the chamfer types, refer to section Element Details of PRO_E_RNDCH_SET for Chamfer.
PRO_E_MODRND_RAD_VAL
PRO_VALUE_TYPE_BOOLEAN
Mandatory element. Specifies the first distance or the offset value depending on the type of chamfer defined by the enumerated type ProChmSchema.
Specify a value in the range of [(part epsilon / 10.0), 1.0e+06] for D type schemas and [-1.0e+06, 1.0e+06] for O type schemas.
PRO_E_MODRND_DIM2_VAL
PRO_VALUE_TYPE_BOOLEAN
Specifies the second distance, offset or angular value of the chamfer.
Mandatory element if the value of the enumerated type ProChmSchema is one of the following:
•  PRO_CHM_D1_X_D2
•  PRO_CHM_O1_X_O2
•  PRO_CHM_ANG_X_D
Specify a value in the range of:
•  [(part epsilon / 10.0), 1.0e+06] for D type schemas
•  [-1.0e+06, 1.0e+06] for O type schemas
•  [0, 180] for chamfer angle ANG.
PRO_E_MODRND_OPTS
Compound
Mandatory element. Specifies the modification options for each chamfer to be recreated.
PRO_E_MODRND_ATTACH
PRO_VALUE_TYPE_INT
Mandatory element. Specifies if the chamfer geometry must be attached to the selected reference surface once the chamfer is recreated. The values for this element are defined by the enumerated type ProModRndAttach.
PRO_E_MODRND_CLOSEGEOM
PRO_VALUE_TYPE_INT
Mandatory element.
Use this element only if the chamfers are recreated as new surfaces or quilts, that is, if the element PRO_E_MODRND_ATTACH has the value PRO_MODRND_DONOT_ATTACH_GEOM.
Specifies if end surfaces must be created for the recreated chamfer geometry. The values for this element are defined by the enumerated type ProModRndCloseGeom.
PRO_E_MODRND_RMV_INTERF_RND
PRO_VALUE_TYPE_INT
Mandatory element. Specifies if the interfering chamfers must be removed and recreated in order to recreate the modified chamfer geometry. The values for this element are defined by the enumerated type ProModRndRecrRounds.
PRO_E_STD_FLEX_PROPAGATION
PRO_VALUE_TYPE_SELECTION
Optional element. Specifies a Pattern feature, a Symmetry Recognition feature, or a Mirror Geometry feature that contains the reference surfaces specified by the element PRO_E_STD_SURF_COLLECTION_APPL. If such surfaces exist, then the modification of the chamfer is propagated to all corresponding surfaces in the instances of the specified feature to maintain the pattern or symmetry.
Corner Chamfer Feature
Feature Element Tree for Corner Chamfer
The element tree for a corner chamfer is documented in the header file ProCornerChamfer.h, and has a simple structure. The following figure demonstrates the feature element tree structure:
Corner Chamfer Element Tree
Image
The elements in this tree are described as follows:
•  PRO_E_STD_FEATURE_TYPE—Specifies the feature type and should be PRO_FEAT_CORN_CHAMF.
•  PRO_E_STD_FEATURE_NAME—Specifies the name of the feature. The default value for this element is CORNER_CHAMFER_#, where # specifies the feature number.
•  PRO_E_STD_CORNER_CHAMF_CORNER—Specifies the vertex on which the corner chamfer is placed and can be selection of the type PRO_EDGE, PRO_EDGE_PNT, PRO_EDGE_START or PRO_EDGE_END. When using PRO_EDGE and PRO_EDGE_PNT type of reference, an appropriate parameter should be set using the function ProReferenceParamsSet().
•  PRO_E_STD_CORNER_CHAMF_EDGE1— Specifies the first distance value from the vertex to the chamfer along first direction edge.
•  PRO_E_STD_CORNER_CHAMF_EDGE2— Specifies the second distance value from the vertex to the chamfer along the second direction edge.
•  PRO_E_STD_CORNER_CHAMF_EDGE3— Specifies the third distance value from the vertex to the chamfer along the third direction edge.
Creating a Corner Chamfer
Function Introduced:
Use the function ProFeatureCreate() to create a Corner Chamfer based on element tree input. For more information about ProFeatureCreate(), refer to the section Overview of Feature Creation in the Element Trees: Principles of Feature Creation.section.
Redefining a Corner Chamfer
Function Introduced:
Use the function ProFeatureRedefine() to redefine a Corner Chamfer based on the changes made in the element tree. For more information about ProFeatureRedefine(), refer to the section Feature Redefine in the Element Trees: Principles of Feature Creation section.
Accessing a Corner Chamfer
Function Introduced:
Use the function ProFeatureElemtreeExtract() to create a feature element tree that describes the contents of a Corner Chamfer and to retrieve the element tree description of a Corner Chamfer. For more information about ProFeatureElemtreeExtract(), refer to the section Feature Inquiry in the Element Trees: Principles of Feature Creation section.