#ifndef PRO_THICKEN_H #define PRO_THICKEN_H /* Creo Parametric TOOLKIT declarations related to Thicken feature. */ #include <ProToolkit.h> PRO_BEGIN_C_DECLS /*============================================================================== (1) Feature element tree PRO_E_FEATURE_TREE | |-- PRO_E_FEATURE_TYPE | |-- PRO_E_FEATURE_FORM | |-- PRO_E_FEAT_FORM_ALWAYS_THIN | |-- PRO_E_STD_USEQLT_QLT | |-- PRO_E_THICKEN_TYPE | |-- PRO_E_STD_USEQLT_SIDE | |-- PRO_E_USEQLT_SOLID_SIDE | |-- PRO_E_THICKNESS | |-- PRO_E_SRF_OFFS_METHOD | |-- PRO_E_SRF_OFFS_CTRLFIT | | | |-- PRO_E_SRF_OFFS_SCALINGCSYS | | | |-- PRO_E_SRF_OFFS_AXISES | |-- PRO_E_SRF_OFFS_HANDLINGS | | | |-- PRO_E_SRF_OFFS_HANDLING | | | |-- PRO_E_SRF_OFFS_REF_SEL | | | |-- PRO_E_SRF_OFFS_ACTION | |-- PRO_E_IS_SMT_CUT | |-- PRO_E_SMT_CUT_NORMAL_DIR | |-- PRO_E_STD_FEATURE_NAME =============================================================================== (2) Feature Elements Table ------------------------------------------------------------------------------- Element Id Element Name Data Type ------------------------------------------------------------------------------- PRO_E_FEATURE_TYPE Feature Type PRO_VALUE_TYPE_INT PRO_E_FEATURE_FORM Feature Form PRO_VALUE_TYPE_INT PRO_E_FEAT_FORM_ALWAYS_THIN Thin Form PRO_VALUE_TYPE_INT PRO_E_STD_USEQLT_QLT Reference Quilt PRO_VALUE_TYPE_SELECTION PRO_E_THICKEN_TYPE Thicken type PRO_VALUE_TYPE_INT PRO_E_STD_USEQLT_SIDE Material Side PRO_VALUE_TYPE_INT PRO_E_USEQLT_SOLID_SIDE Solid Material Side PRO_VALUE_TYPE_INT (See Note-6) PRO_E_THICKNESS Thickness PRO_VALUE_TYPE_DOUBLE PRO_E_SRF_OFFS_METHOD Offset method PRO_VALUE_TYPE_INT PRO_E_SRF_OFFS_CTRLFIT Control Fit PRO_ELEM_COMPOUND PRO_E_SRF_OFFS_SCALINGCSYS Control Fit Csys PRO_VALUE_TYPE_SELECTION PRO_E_SRF_OFFS_AXISES Control Fit Axes PRO_VALUE_TYPE_INT PRO_E_SRF_OFFS_HANDLINGS Special Handlings PRO_ELEM_ARRAY PRO_E_SRF_OFFS_HANDLING Special Handling item PRO_ELEM_COMPOUND PRO_E_SRF_OFFS_REF_SEL Special Handling faces PRO_VALUE_TYPE_SELECTION PRO_E_SRF_OFFS_ACTION Special Handling action PRO_VALUE_TYPE_INT PRO_E_IS_SMT_CUT Is Smt Cut PRO_VALUE_TYPE_INT PRO_E_SMT_CUT_NORMAL_DIR Normal Direction PRO_VALUE_TYPE_INT PRO_E_STD_FEATURE_NAME Feature Name PRO_VALUE_TYPE_WSTRING =============================================================================== (3) Element Values Table ------------------------------------------------------------------------------- Element Id Element Name Valid Values ------------------------------------------------------------------------------- PRO_E_FEATURE_TYPE Feature Type PRO_FEAT_PROTRUSION or PRO_FEAT_CUT PRO_E_FEATURE_FORM Feature Form PRO_USE_SURFS PRO_E_FEAT_FORM_ALWAYS_THIN Thin Form PRO_THIN (See Note-1) PRO_E_STD_USEQLT_QLT Reference Quilt PRO_QUILT PRO_E_THICKEN_TYPE Thicken type See Note-2 PRO_E_STD_USEQLT_SIDE Material Side ProThickenSideOption PRO_E_USEQLT_SOLID_SIDE Solid Material Side See Note-6 PRO_E_SRF_OFFS_METHOD Offset method ProThickenOffMethodOpts PRO_E_SRF_OFFS_SCALINGCSYS Control Fit Csys PRO_CSYS PRO_E_SRF_OFFS_AXISES Control Fit Axes ProThickenAxesOption PRO_E_SRF_OFFS_REF_SEL Spl Handling faces PRO_SURFACE (See Note-3) PRO_E_SRF_OFFS_ACTION Spl Handling action ProThickenHandlingAction PRO_E_IS_SMT_CUT Is Smt Cut See Note-7 PRO_E_SMT_CUT_NORMAL_DIR Normal Direction See Note-8 PRO_E_STD_FEATURE_NAME Feature Name See Note-4 =============================================================================== (4) Mapping Table ------------------------------------------------------------------------------- Variation Element Name Comment ------------------------------------------------------------------------------- All types PRO_E_FEATURE_TYPE Mandatory PRO_E_FEATURE_FORM Mandatory PRO_E_FEAT_FORM_ALWAYS_THIN Mandatory PRO_E_STD_USEQLT_QLT Mandatory PRO_E_THICKEN_TYPE Optional(Note-2) PRO_E_STD_USEQLT_SIDE Optional PRO_E_USEQLT_SOLID_SIDE Optional(Note-6) PRO_E_THICKNESS Mandatory PRO_E_SRF_OFFS_METHOD Optional(Note-5) PRO_E_IS_SMT_CUT Optional(Note-7) PRO_E_SMT_CUT_NORMAL_DIR Optional(Note-8) PRO_E_STD_FEATURE_NAME Optional(Note-4) ............................................................................... Offset method is PRO_E_SRF_OFFS_HANDLINGS N/A PRO_OFFS_METH_NORMTOSURF PRO_E_SRF_OFFS_HANDLING N/A PRO_E_SRF_OFFS_REF_SEL Optional PRO_E_SRF_OFFS_ACTION Optional ............................................................................... Offset method is None PRO_OFFS_METH_AUTOSCALE ............................................................................... Offset method is PRO_E_SRF_OFFS_CTRLFIT N/A PRO_OFFS_METH_MANUALSCALE PRO_E_SRF_OFFS_SCALINGCSYS Mandatory PRO_E_SRF_OFFS_AXISES Optional =============================================================================== (5) Notes Note-1 : This is a non-redefinable mandatory element for Thicken. Its only valid value is PRO_THIN. The element should be set after PRO_E_FEATURE_FORM. Note-2 : This element is optional. If present this element should have same value as PRO_E_FEATURE_TYPE except the case of PRO_FEAT_CUT_SMT. For PRO_FEAT_CUT_SMT this element has the value PRO_FEAT_CUT and the element PRO_E_IS_SMT_CUT has the value PRO_B_TRUE. Note-3 : Surfaces should be from Reference Quilt Note-4 : Thicken feature name. Default value is: "PROTRUSION" if PRO_E_FEATURE_TYPE is PRO_FEAT_PROTRUSION "CUT" if PRO_E_FEATURE_TYPE is PRO_FEAT_CUT Note-5 : Default Offset method is PRO_OFFS_METH_NORMTOSURF Note-6 : PRO_E_USEQLT_SOLID_SIDE will always be invisible for Thicken. Its value will always be ignored. Note-7 : This element is applicable only in sheetmetal parts. Controls cut type, SMT or SOLID. PRO_B_TRUE for SMT cut type. Note-8 : This element is applicable only in sheetmetal parts. SMT Cut geometry driving surface. This element can be PRO_SMT_CUT_DRVSIDE_GREEN for normal to Driven Surface or PRO_SMT_CUT_DRVSIDE_WHITE for normal to Offset Surface. ProSmtCutNormDir. ==============================================================================*/ /* (6) Enum Declarations */ /* ========================= */ /* Side options of Thicken : */ /* ========================= */ typedef enum _ProThickenSideOption { PRO_THICKEN_SIDE_ONE = -1, PRO_THICKEN_BOTH_SIDES = 0, PRO_THICKEN_SIDE_TWO = 1 } ProThickenSideOption; /* =========================== */ /* Offset Method for Thicken : */ /* =========================== */ typedef enum _ProThickenOffMethodOpts { PRO_OFFS_METH_NORMTOSURF = 1, PRO_OFFS_METH_AUTOSCALE = 2, PRO_OFFS_METH_MANUALSCALE = 3 } ProThickenOffMethodOpts; typedef enum _ProThickenAxesOption { PRO_OFFS_TRF_NONE = 0, PRO_OFFS_TRF_X = 1, PRO_OFFS_TRF_Y = 2, PRO_OFFS_TRF_Z = 4, PRO_OFFS_TRF_XY = 3, PRO_OFFS_TRF_YZ = 6, PRO_OFFS_TRF_ZX = 5, PRO_OFFS_TRF_ALL = 7 } ProThickenAxesOption; typedef enum _ProThickenHandlingAction { PRO_OFFS_ACTION_LEAVE = -1, PRO_OFFS_ACTION_APPROX = 1 } ProThickenHandlingAction; PRO_END_C_DECLS #endif /* PRO_THICKEN_H */