#ifndef PRO_TRIM_H #define PRO_TRIM_H #include <ProToolkit.h> PRO_BEGIN_C_DECLS /*============================================================================== (1) (1.1) Feature element tree PRO_E_FEATURE_TREE | |-- PRO_E_FEATURE_TYPE | |-- PRO_E_FEATURE_FORM | |-- PRO_E_SRF_TRIM_TYPE | |-- PRO_E_STD_FEATURE_NAME | |-- PRO_E_SURF_TRIM_TYPE | |-- PRO_E_TRIM_QUILT | |-- PRO_E_STD_USEQLT_QLT | |-- PRO_E_STD_CURVE_COLLECTION_APPL | |-- PRO_E_TRIM_SILH_PLANE | |-- PRO_E_MATERIAL_SIDE | |-- PRO_E_PRIMARY_QLTSIDE | |-- PRO_E_STD_USEQLT_SIDE | |-- PRO_E_KEEP_TRIM_SURF_OPT | |-- 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 ========================================================================================================================= (1.2) Feature elements table ------------------------------------------------------------------------------------------------------------------------- Element Id Element Name Data Type Valid Values ------------------------------------------------------------------------------------------------------------------------- PRO_E_FEATURE_TYPE Feature Type PRO_VALUE_TYPE_INT PRO_FEAT_CUT PRO_E_FEATURE_FORM Feature Form PRO_VALUE_TYPE_INT PRO_USE_SURFS,PRO_NOTYPE PRO_E_SRF_TRIM_TYPE Trim Type Identity PRO_VALUE_TYPE_INT ProSurfTrimType ( See Note -1) PRO_E_STD_FEATURE_NAME Feature Name PRO_VALUE_TYPE_WSTRING Optional PRO_E_SURF_TRIM_TYPE Surface Trim Type PRO_VALUE_TYPE_INT ProSurfTrimType PRO_E_TRIM_QUILT Trimmed Quilt PRO_VALUE_TYPE_SELECTION PRO_SURFACE, PRO_QUILT PRO_E_STD_USEQLT_QLT Trimming Quilt/plane PRO_VALUE_TYPE_SELECTION PRO_SURFACE, PRO_QUILT, PRO_DATUM_PLANE PRO_E_STD_CURVE_COLLECTION_APPL Trimming Curves PRO_VALUE_TYPE_SELECTION PRO_CURVE, PRO_COMP_CRV, curve_chain PRO_E_TRIM_SILH_PLANE Silhouette Plane PRO_VALUE_TYPE_SELECTION PRO_SURFACE, PRO_DATUM_PLANE PRO_E_MATERIAL_SIDE Material Side Options PRO_VALUE_TYPE_INT ProTrimMatlSideOpts PRO_E_PRIMARY_QLTSIDE Primary Quilt Side Options PRO_VALUE_TYPE_INT ProTrimPrimaryQltSide PRO_E_STD_USEQLT_SIDE Thin Thickness direction options. PRO_VALUE_TYPE_INT ProTrimStdQuiltSideOpts PRO_E_KEEP_TRIM_SURF_OPT Keeping Trim Surf. Option PRO_VALUE_TYPE_INT ProKeepTrimSurfOpts ( See Note-2) PRO_E_THICKNESS Thin Thickness PRO_VALUE_TYPE_DOUBLE PRO_E_SRF_OFFS_METHOD Offset Types PRO_VALUE_TYPE_INT ProTrimSurfOffMethodOpts PRO_E_SRF_OFFS_CTRLFIT Control Fit PRO_ELEM_COMPOUND PRO_E_SRF_OFFS_SCALINGCSYS Control Fit Csys PRO_VALUE_TYPE_SELECTION PRO_CSYS PRO_E_SRF_OFFS_AXISES Control Fit Axes PRO_VALUE_TYPE_INT ProThinTrimAxesOption 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_SURFACE (See Note-3) PRO_E_SRF_OFFS_ACTION Special Handling action PRO_VALUE_TYPE_INT ========================================================================================================================= (2) (2.1) Feature element tree for Use Quilt PRO_E_FEATURE_TREE | |-- PRO_E_FEATURE_TYPE | |-- PRO_E_FEATURE_FORM | |-- PRO_E_SRF_TRIM_TYPE | |-- PRO_E_STD_FEATURE_NAME | |-- PRO_E_SURF_TRIM_TYPE | |-- PRO_E_TRIM_QUILT | |-- PRO_E_STD_USEQLT_QLT | |-- PRO_E_MATERIAL_SIDE | |-- PRO_E_PRIMARY_QLTSIDE | |-- PRO_E_KEEP_TRIM_SURF_OPT ========================================================================================================================= (2.2) Feature elements table for Use Quilt ------------------------------------------------------------------------------------------------------------------------- Element Id Element Name Data Type Valid Values ------------------------------------------------------------------------------------------------------------------------- PRO_E_FEATURE_TYPE Feature Type PRO_VALUE_TYPE_INT PRO_FEAT_CUT PRO_E_FEATURE_FORM Feature Form PRO_VALUE_TYPE_INT PRO_USE_SURFS PRO_E_SRF_TRIM_TYPE Trim Type Identity PRO_VALUE_TYPE_INT ProSurfTrimType ( See Note -1) PRO_E_STD_FEATURE_NAME Feature Name PRO_VALUE_TYPE_WSTRING Optional PRO_E_SURF_TRIM_TYPE Surface Trim Type PRO_VALUE_TYPE_INT ProSurfTrimType PRO_E_FEATURE_TYPE Feature Type PRO_VALUE_TYPE_INT PRO_FEAT_CUT PRO_E_FEATURE_FORM Feature Form PRO_VALUE_TYPE_INT PRO_USE_SURFS PRO_E_TRIM_QUILT Trimmed Quilt PRO_VALUE_TYPE_SELECTION PRO_SURFACE, PRO_QUILT PRO_E_STD_USEQLT_QLT Trimming Quilt/plane PRO_VALUE_TYPE_SELECTION PRO_SURFACE, PRO_QUILT, PRO_DATUM_PLANE PRO_E_MATERIAL_SIDE Material Side Options PRO_VALUE_TYPE_INT ProTrimMatlSideOpts PRO_E_PRIMARY_QLTSIDE Primary Quilt Side Options PRO_VALUE_TYPE_INT ProTrimPrimaryQltSide PRO_E_KEEP_TRIM_SURF_OPT Keeping Trim Surf. Option PRO_VALUE_TYPE_INT ProKeepTrimSurfOpts ========================================================================================================================= (3) (3.1) Feature element tree for Use Curve PRO_E_FEATURE_TREE | |-- PRO_E_FEATURE_TYPE | |-- PRO_E_SRF_TRIM_TYPE | |-- PRO_E_STD_FEATURE_NAME | |-- PRO_E_SURF_TRIM_TYPE | |-- PRO_E_TRIM_QUILT | |-- PRO_E_STD_CURVE_COLLECTION_APPL | |-- PRO_E_MATERIAL_SIDE | |-- PRO_E_PRIMARY_QLTSIDE ========================================================================================================================= (3.2) Feature elements table for Use Curve ------------------------------------------------------------------------------------------------------------------------- Element Id Element Name Data Type Valid Values ------------------------------------------------------------------------------------------------------------------------- PRO_E_FEATURE_TYPE Feature Type PRO_VALUE_TYPE_INT PRO_FEAT_CUT PRO_E_SRF_TRIM_TYPE Trim Type Identity PRO_VALUE_TYPE_INT ProSurfTrimType ( See Note -1) PRO_E_STD_FEATURE_NAME Feature Name PRO_VALUE_TYPE_WSTRING Optional PRO_E_SURF_TRIM_TYPE Surface Trim Type PRO_VALUE_TYPE_INT ProSurfTrimType PRO_E_TRIM_QUILT Trimmed Quilt PRO_VALUE_TYPE_SELECTION PRO_SURFACE, PRO_QUILT PRO_E_STD_CURVE_COLLECTION_APPL Trimming Curves PRO_VALUE_TYPE_SELECTION PRO_CURVE, PRO_COMP_CRV, curve_chain PRO_E_MATERIAL_SIDE Material Side Options PRO_VALUE_TYPE_INT ProTrimPrimaryQltSide PRO_E_PRIMARY_QLTSIDE Primary Quilt Side Options PRO_VALUE_TYPE_INT ProTrimStdQuiltSideOpts ========================================================================================================================= (4) (4.1) Feature element tree for Thin PRO_E_FEATURE_TREE | |-- PRO_E_FEATURE_TYPE | |-- PRO_E_FEATURE_FORM | |-- PRO_E_SRF_TRIM_TYPE | |-- PRO_E_STD_FEATURE_NAME | |-- PRO_E_SURF_TRIM_TYPE | |-- PRO_E_TRIM_QUILT | |-- PRO_E_STD_USEQLT_QLT | |-- PRO_E_STD_USEQLT_SIDE | |-- PRO_E_KEEP_TRIM_SURF_OPT | |-- PRO_E_THICKNESS | |-- PRO_E_SRF_OFFS_METHOD | |-- PRO_E_SRF_OFFS_CTRLFIT | |-- PRO_E_SRF_OFFS_HANDLINGS (4.2) Feature elements table for Thin ------------------------------------------------------------------------------------------------------------------------- Element Id Element Name Data Type Valid Values ------------------------------------------------------------------------------------------------------------------------- PRO_E_FEATURE_TYPE Feature Type PRO_VALUE_TYPE_INT PRO_FEAT_CUT PRO_E_FEATURE_FORM Feature Form PRO_VALUE_TYPE_INT PRO_USE_SURFS PRO_E_SRF_TRIM_TYPE Trim Type Identity PRO_VALUE_TYPE_INT ProSurfTrimType ( See Note -1) PRO_E_STD_FEATURE_NAME Feature Name PRO_VALUE_TYPE_WSTRING Optional PRO_E_SURF_TRIM_TYPE Surface Trim Type PRO_VALUE_TYPE_INT ProSurfTrimType PRO_E_TRIM_QUILT Trimmed Quilt PRO_VALUE_TYPE_SELECTION PRO_SURFACE, PRO_QUILT PRO_E_STD_USEQLT_QLT Trimming Quilt PRO_VALUE_TYPE_SELECTION PRO_SURFACE, PRO_QUILT, PRO_DATUM_PLANE PRO_E_STD_USEQLT_SIDE Thickness direction options PRO_VALUE_TYPE_INT ProTrimStdQuiltSideOpts PRO_E_KEEP_TRIM_SURF_OPT Keeping Trim Surf. Option PRO_VALUE_TYPE_INT ProKeepTrimSurfOpts PRO_E_THICKNESS Thin Thickness PRO_VALUE_TYPE_DOUBLE PRO_E_SRF_OFFS_METHOD Offset Types PRO_VALUE_TYPE_INT ProTrimSurfOffMethodOpts PRO_E_SRF_OFFS_SCALINGCSYS Control Fit Csys PRO_VALUE_TYPE_SELECTION PRO_CSYS PRO_E_SRF_OFFS_AXISES Control Fit Axes PRO_VALUE_TYPE_INT ProThinTrimAxesOption PRO_E_SRF_OFFS_REF_SEL Special Handling faces PRO_VALUE_TYPE_SELECTION PRO_SURFACE PRO_E_SRF_OFFS_ACTION Special Handling action PRO_VALUE_TYPE_INT ========================================================================================================================= (5) (5.1) Feature element tree for Silhouette Trim PRO_E_FEATURE_TREE | |-- PRO_E_FEATURE_TYPE | |-- PRO_E_SRF_TRIM_TYPE | |-- PRO_E_STD_FEATURE_NAME | |-- PRO_E_SURF_TRIM_TYPE | |-- PRO_E_TRIM_QUILT | |-- PRO_E_TRIM_SILH_PLANE | |-- PRO_E_MATERIAL_SIDE | |-- PRO_E_PRIMARY_QLTSIDE | |-- PRO_E_KEEP_TRIM_SURF_OPT ========================================================================================================================= (5.2) Feature elements table for Silhouette Trim ------------------------------------------------------------------------------------------------------------------------- Element Id Element Name Data Type Valid Values ------------------------------------------------------------------------------------------------------------------------- PRO_E_FEATURE_TYPE Feature Type PRO_VALUE_TYPE_INT PRO_FEAT_CUT PRO_E_SRF_TRIM_TYPE Trim Type Identity PRO_VALUE_TYPE_INT ProSurfTrimType ( See Note -1) PRO_E_STD_FEATURE_NAME Feature Name PRO_VALUE_TYPE_WSTRING Optional PRO_E_SURF_TRIM_TYPE Surface Trim Type PRO_VALUE_TYPE_INT ProSurfTrimType PRO_E_TRIM_QUILT Trimmed Quilt PRO_VALUE_TYPE_SELECTION PRO_SURFACE, PRO_QUILT PRO_E_TRIM_SILH_PLANE Silhouette plane PRO_VALUE_TYPE_SELECTION PRO_SURFACE, PRO_DATUM_PLANE PRO_E_MATERIAL_SIDE Material Side Options PRO_VALUE_TYPE_INT ProTrimMatlSideOpts PRO_E_PRIMARY_QLTSIDE Primary Quilt Side Options PRO_VALUE_TYPE_INT ProTrimPrimaryQltSide PRO_E_KEEP_TRIM_SURF_OPT Keeping Trim Surf. Option PRO_VALUE_TYPE_INT ProKeepTrimSurfOpts ========================================================================================================================= ========================================================================================================================= (6) Notes Note-1 : The element PRO_E_SRF_TRIM_TYPE is a non-redefinable mandatory element for Surface Trim. The values for this element are listed as ProSurfTrimType. This element is useful to identify the exact surface trim type like use quilt, use curves etc.. Note-2 : Keep Trimming Surface option is valid only when the trimming quilt is a surface/quilt. Note-3 : Surfaces should be from the Trimming Quilt. ========================================================================================================================= (7) Elements required for different type of Trims ---------------------------------------------------------------------------------- | | Element Id | Comment | ---------------------------------------------------------------------------------| | Use : PRO_E_FEATURE_TYPE : Mandatory | | Quilt : PRO_E_FEATURE_FORM : Mandatory | | : PRO_E_SRF_TRIM_TYPE : Mandatory | | : PRO_E_STD_FEATURE_NAME : Optional | | : PRO_E_SURF_TRIM_TYPE : Mandatory | | : PRO_E_TRIM_QUILT : Mandatory | | : PRO_E_STD_USEQLT_QLT : Mandatory | | : PRO_E_MATERIAL_SIDE : | | : PRO_E_PRIMARY_QLTSIDE : | | : PRO_E_KEEP_TRIM_SURF_OPT : | |..........:..................................:..................................| | Use : PRO_E_FEATURE_TYPE : Mandatory | | Curve : PRO_E_SRF_TRIM_TYPE : Mandatory | | : PRO_E_STD_FEATURE_NAME : Optional | | : PRO_E_SURF_TRIM_TYPE : Mandatory | | : PRO_E_TRIM_QUILT : Mandatory | | : PRO_E_STD_CURVE_COLLECTION_APPL : Mandatory | | : PRO_E_MATERIAL_SIDE : | | : PRO_E_PRIMARY_QLTSIDE : | |..........:..................................:..................................| | Thin : PRO_E_FEATURE_TYPE : Mandatory | | : PRO_E_FEATURE_FORM : Mandatory | | : PRO_E_SRF_TRIM_TYPE : Mandatory | | : PRO_E_STD_FEATURE_NAME : Optional | | : PRO_E_SURF_TRIM_TYPE : Mandatory | | : PRO_E_TRIM_QUILT : Mandatory | | : PRO_E_STD_USEQLT_QLT : Mandatory | | : PRO_E_STD_USEQLT_SIDE : | | : PRO_E_KEEP_TRIM_SURF_OPT : | | : PRO_E_THICKNESS : | | : PRO_E_SRF_OFFS_METHOD : | | : PRO_E_SRF_OFFS_CTRLFIT : | | : PRO_E_SRF_OFFS_HANDLINGS : | |..........:..................................:..................................| |Silhouette: PRO_E_FEATURE_TYPE : Mandatory | | : PRO_E_SRF_TRIM_TYPE : Mandatory | | : PRO_E_STD_FEATURE_NAME : Optional | | : PRO_E_SURF_TRIM_TYPE : Mandatory | | : PRO_E_TRIM_QUILT : Mandatory | | : PRO_E_TRIM_SILH_PLANE : Mandatory | | : PRO_E_MATERIAL_SIDE : | | : PRO_E_PRIMARY_QLTSIDE : | | : PRO_E_KEEP_TRIM_SURF_OPT : | |..........:..................................:..................................| */ /* PRO_TRIM_TYPE */ typedef enum _ProSurfTrimType { PRO_SURF_TRIM_TYPE_UNDEF = 0, PRO_SURF_TRIM_USE_CRV = 1, PRO_SURF_TRIM_USE_QLT = 2, PRO_SURF_TRIM_THIN = 3, PRO_SURF_TRIM_SILH = 4 }ProSurfTrimType; /* PRO_E_MATERIAL_SIDE */ typedef enum _ProTrimMatlSideOpts { PRO_TRIM_MATL_SIDE_ONE = 1, PRO_TRIM_MATL_SIDE_TWO = 2, PRO_TRIM_MATL_BOTH_SIDES = 3 } ProTrimMatlSideOpts; /* PRO_E_PRIMARY_QLTSIDE */ typedef enum _ProTrimPrimaryQltSide { PRO_TRIM_PRIM_QLT_SIDE_ONE = -1, PRO_TRIM_PRIM_QLT_SIDE_TWO = 1 } ProTrimPrimaryQltSide; /* PRO_E_STD_QUILT_SIDE */ typedef enum _ProTrimStdQuiltSideOpts { PRO_TRIM_STD_QUILT_SIDE_ONE = 1, PRO_TRIM_STD_QUILT_SIDE_TWO = 2, PRO_TRIM_STD_QUILT_BOTH_SIDES = 3 } ProTrimStdQuiltSideOpts; /* PRO_E_KEEP_TRIM_SURF_OPT */ typedef enum _ProKeepTrimSurfOpts { PRO_KEEP_TRIM_SURF_OPT_NO = 0, PRO_KEEP_TRIM_SURF_OPT_YES = 1 } ProKeepTrimSurfOpts; /* PRO_E_SRF_OFFS_METHOD */ typedef enum _ProTrimSurfOffMethodOpts { PRO_TRIM_SRF_OFFS_METH_NORMTOSURF = 1, PRO_TRIM_SRF_OFFS_METH_AUTOSCALE = 2, PRO_TRIM_SRF_OFFS_METH_MANUALSCALE = 3 } ProTrimSurfOffMethodOpts; typedef enum _ProThinTrimAxesOption { PRO_TRIM_OFFS_TRF_NONE = 0, PRO_TRIM_OFFS_TRF_X = 1, PRO_TRIM_OFFS_TRF_Y = 2, PRO_TRIM_OFFS_TRF_Z = 4, PRO_TRIM_OFFS_TRF_XY = 3, PRO_TRIM_OFFS_TRF_YZ = 6, PRO_TRIM_OFFS_TRF_ZX = 5, PRO_TRIM_OFFS_TRF_ALL = 7 } ProThinTrimAxesOption; typedef enum _ProThinTrimHandlingAction { PRO_TRIM_OFFS_ACTION_LEAVE = -1, PRO_TRIM_OFFS_ACTION_APPROX = 1 } ProThinTrimHandlingAction; PRO_END_C_DECLS #endif /* PRO_TRIM_H */