📄 project_dim_dialog.c
字号:
//获取公差带代号
data.item_attr=UF_STYLER_VALUE;
data.item_id=PROJECT_DIM_OPTION_AXIS_CODE;
UF_STYLER_ask_value(dialog_id,&data);
index=data.value.integer;
data.item_attr=UF_STYLER_SUBITEM_VALUES;
UF_STYLER_ask_value(dialog_id,&data);
strcpy(p_dim_para->axis_code,data.value.strings[index]);
UF_STYLER_free_value(&data);
data.item_attr=UF_STYLER_VALUE;
data.item_id=PROJECT_DIM_OPTION_HOLE_CODE;
UF_STYLER_ask_value(dialog_id,&data);
index=data.value.integer;
data.item_attr=UF_STYLER_SUBITEM_VALUES;
UF_STYLER_ask_value(dialog_id,&data);
strcpy(p_dim_para->hole_code,data.value.strings[index]);
UF_STYLER_free_value(&data);
}
/* ---- Enter your callback code here ----- */
UF_terminate ();
/* Callback acknowledged, do not terminate dialog */
return (UF_UI_CB_CONTINUE_DIALOG);
/* or Callback acknowledged, terminate dialog. */
/* return ( UF_UI_CB_EXIT_DIALOG ); */
}
/* -------------------------------------------------------------------------
* Callback Name: PROJECT_DIM_sel_hole_code_fun
* This is a callback function associated with an action taken from a
* UIStyler object.
*
* Input: dialog_id - The dialog id indicate which dialog this callback
* is associated with. The dialog id is a dynamic,
* unique id and should not be stored. It is
* strictly for the use in the NX Open API:
* UF_STYLER_ask_value(s)
* UF_STYLER_set_value
* client_data - Client data is user defined data associated
* with your dialog. Client data may be bound
* to your dialog with UF_MB_add_styler_actions
* or UF_STYLER_create_dialog.
* callback_data - This structure pointer contains information
* specific to the UIStyler Object type that
* invoked this callback and the callback type.
* -----------------------------------------------------------------------*/
int PROJECT_DIM_sel_hole_code_fun ( int dialog_id,
void * client_data,
UF_STYLER_item_value_type_p_t callback_data)
{
/* Make sure User Function is available. */
PROJECT_DIM_PARMETER *p_dim_para;
UF_STYLER_item_value_type_t data;
int m_bench,column_index,row_index;
if ( UF_initialize() != 0)
return ( UF_UI_CB_CONTINUE_DIALOG );
p_dim_para=(PROJECT_DIM_PARMETER *)client_data;
data.item_attr=UF_STYLER_VALUE;
data.item_id=PROJECT_DIM_OPTION_HOLE_CODE;
UF_STYLER_ask_value(dialog_id,&data);
column_index=data.value.integer;
data.item_attr=UF_STYLER_SUBITEM_VALUES;
UF_STYLER_ask_value(dialog_id,&data);
strcpy(p_dim_para->hole_code,data.value.strings[column_index]);
UF_STYLER_free_value(&data);
data.item_attr=UF_STYLER_VALUE;
data.item_id=PROJECT_DIM_RADIO_BENCHMARK;
UF_STYLER_ask_value(dialog_id,&data);
m_bench=data.value.integer;
if(m_bench!=2)//不是配合
{
row_index=Pro_Dim_ask_table_row_index(p_dim_para->dim_value);
Pro_Dim_ask_hole_tolerance_value(column_index,row_index,
&p_dim_para->up_tolerance,&p_dim_para->low_tolerance);
//设置上下偏差的数值
data.item_attr=UF_STYLER_SENSITIVITY;
data.item_id=PROJECT_DIM_REAL_UP_TOLERANCE;
data.value.integer=TRUE;
UF_STYLER_set_value(dialog_id,&data);
data.item_id=PROJECT_DIM_REAL_LOW_TOLERANCE;
UF_STYLER_set_value(dialog_id,&data);
data.item_attr=UF_STYLER_VALUE;
data.item_id=PROJECT_DIM_REAL_UP_TOLERANCE;
data.value.real=p_dim_para->up_tolerance;
UF_STYLER_set_value(dialog_id,&data);
data.item_attr=UF_STYLER_VALUE;
data.item_id=PROJECT_DIM_REAL_LOW_TOLERANCE;
data.value.real=p_dim_para->low_tolerance;
UF_STYLER_set_value(dialog_id,&data);
}
/* ---- Enter your callback code here ----- */
UF_terminate ();
/* Callback acknowledged, do not terminate dialog */
return (UF_UI_CB_CONTINUE_DIALOG);
/* or Callback acknowledged, terminate dialog. */
/* return ( UF_UI_CB_EXIT_DIALOG ); */
}
/* -------------------------------------------------------------------------
* Callback Name: PROJECT_DIM_sel_axis_code_fun
* This is a callback function associated with an action taken from a
* UIStyler object.
*
* Input: dialog_id - The dialog id indicate which dialog this callback
* is associated with. The dialog id is a dynamic,
* unique id and should not be stored. It is
* strictly for the use in the NX Open API:
* UF_STYLER_ask_value(s)
* UF_STYLER_set_value
* client_data - Client data is user defined data associated
* with your dialog. Client data may be bound
* to your dialog with UF_MB_add_styler_actions
* or UF_STYLER_create_dialog.
* callback_data - This structure pointer contains information
* specific to the UIStyler Object type that
* invoked this callback and the callback type.
* -----------------------------------------------------------------------*/
int PROJECT_DIM_sel_axis_code_fun ( int dialog_id,
void * client_data,
UF_STYLER_item_value_type_p_t callback_data)
{
/* Make sure User Function is available. */
PROJECT_DIM_PARMETER *p_dim_para;
UF_STYLER_item_value_type_t data;
int m_bench,column_index,row_index;
if ( UF_initialize() != 0)
return ( UF_UI_CB_CONTINUE_DIALOG );
p_dim_para=(PROJECT_DIM_PARMETER *)client_data;
data.item_attr=UF_STYLER_VALUE;
data.item_id=PROJECT_DIM_OPTION_AXIS_CODE;
UF_STYLER_ask_value(dialog_id,&data);
column_index=data.value.integer;
data.item_attr=UF_STYLER_SUBITEM_VALUES;
UF_STYLER_ask_value(dialog_id,&data);
strcpy(p_dim_para->axis_code,data.value.strings[column_index]);
UF_STYLER_free_value(&data);
data.item_attr=UF_STYLER_VALUE;
data.item_id=PROJECT_DIM_RADIO_BENCHMARK;
UF_STYLER_ask_value(dialog_id,&data);
m_bench=data.value.integer;
if(m_bench!=2)//不是配合
{
row_index=Pro_Dim_ask_table_row_index(p_dim_para->dim_value);
Pro_Dim_ask_axis_tolerance_value(column_index,row_index,
&p_dim_para->up_tolerance,&p_dim_para->low_tolerance);
//设置上下偏差的数值
data.item_attr=UF_STYLER_SENSITIVITY;
data.item_id=PROJECT_DIM_REAL_UP_TOLERANCE;
data.value.integer=TRUE;
UF_STYLER_set_value(dialog_id,&data);
data.item_id=PROJECT_DIM_REAL_LOW_TOLERANCE;
UF_STYLER_set_value(dialog_id,&data);
data.item_attr=UF_STYLER_VALUE;
data.item_id=PROJECT_DIM_REAL_UP_TOLERANCE;
data.value.real=p_dim_para->up_tolerance;
UF_STYLER_set_value(dialog_id,&data);
data.item_attr=UF_STYLER_VALUE;
data.item_id=PROJECT_DIM_REAL_LOW_TOLERANCE;
data.value.real=p_dim_para->low_tolerance;
UF_STYLER_set_value(dialog_id,&data);
}
/* ---- Enter your callback code here ----- */
UF_terminate ();
/* Callback acknowledged, do not terminate dialog */
return (UF_UI_CB_CONTINUE_DIALOG);
/* or Callback acknowledged, terminate dialog. */
/* return ( UF_UI_CB_EXIT_DIALOG ); */
}
int Pro_Dim_ask_table_row_index(double dim_value)
{
double e=0.001;
if(dim_value<3.0||fabs(dim_value-3.0)<e)
return 0;
else if(dim_value<6.0||fabs(dim_value-6.0)<e)
return 1;
else if(dim_value<10.0||fabs(dim_value-10.0)<e)
return 2;
else if(dim_value<18.0||fabs(dim_value-18.0)<e)
return 3;
else if(dim_value<30.0||fabs(dim_value-30.0)<e)
return 4;
else if(dim_value<50.0||fabs(dim_value-50.0)<e)
return 5;
else if(dim_value<80.0||fabs(dim_value-80.0)<e)
return 6;
else if(dim_value<120.0||fabs(dim_value-120.0)<e)
return 7;
else if(dim_value<180.0||fabs(dim_value-180.0)<e)
return 8;
else if(dim_value<250.0||fabs(dim_value-250.0)<e)
return 9;
else if(dim_value<315.0||fabs(dim_value-315.0)<e)
return 10;
else if(dim_value<400.0||fabs(dim_value-400.0)<e)
return 11;
else if(dim_value<500.0||fabs(dim_value-500.0)<e)
return 12;
else
return -1;
}
void Pro_Dim_ask_hole_tolerance_value(int col_index,int row_index,double *up_tol,double *low_tol)
{
static double up_tolerance_value[13][10]=
{
0.045,0.020,0.012,0.010,0.014,0.025,0.060,0.000,-0.004,-0.006,
0.060,0.028,0.016,0.012,0.018,0.030,0.075,0.003,-0.004,-0.008,
0.076,0.035,0.020,0.015,0.022,0.036,0.090,0.005,-0.004,-0.009,
0.093,0.043,0.024,0.018,0.027,0.043,0.110,0.006,-0.005,-0.011,
0.117,0.053,0.028,0.021,0.033,0.052,0.130,0.006,-0.007,-0.014,
0.142,0.064,0.034,0.025,0.039,0.062,0.160,0.007,-0.008,-0.017,
0.174,0.076,0.040,0.030,0.046,0.074,0.190,0.009,-0.009,-0.021,
0.207,0.090,0.047,0.035,0.054,0.087,0.220,0.010,-0.010,-0.024,
0.245,0.106,0.054,0.040,0.063,0.100,0.250,0.012,-0.012,-0.028,
0.285,0.122,0.061,0.046,0.072,0.115,0.290,0.013,-0.014,-0.033,
0.320,0.137,0.069,0.052,0.081,0.130,0.320,0.016,-0.014,-0.036,
0.350,0.151,0.075,0.057,0.089,0.140,0.360,0.017,-0.016,-0.041,
0.385,0.165,0.083,0.063,0.097,0.155,0.400,0.018,-0.017,-0.045
};
static double low_tolerance_value[13][10]=
{
0.020,0.006,0.002,0,0,0,0,-0.010,-0.014,-0.016,
0.030,0.010,0.004,0,0,0,0,-0.009,-0.016,-0.020,
0.040,0.013,0.005,0,0,0,0,-0.010,-0.019,-0.024,
0.050,0.016,0.006,0,0,0,0,-0.012,-0.023,-0.029,
0.065,0.020,0.007,0,0,0,0,-0.015,-0.028,-0.035,
0.080,0.025,0.009,0,0,0,0,-0.018,-0.033,-0.042,
0.100,0.030,0.010,0,0,0,0,-0.021,-0.039,-0.051,
0.120,0.036,0.012,0,0,0,0,-0.025,-0.045,-0.059,
0.145,0.043,0.014,0,0,0,0,-0.028,-0.052,-0.068,
0.170,0.050,0.015,0,0,0,0,-0.033,-0.060,-0.079,
0.190,0.056,0.017,0,0,0,0,-0.036,-0.066,-0.088,
0.210,0.062,0.018,0,0,0,0,-0.040,-0.073,-0.098,
0.230,0.068,0.020,0,0,0,0,-0.045,-0.080,-0.108
};
*up_tol=up_tolerance_value[row_index][col_index];
*low_tol=low_tolerance_value[row_index][col_index];
}
void Pro_Dim_ask_axis_tolerance_value(int col_index,int row_index,double *up_tol,double *low_tol)
{
static double up_tolerance_value[13][10]=
{
-0.020,-0.006,-0.002,0,0,0,0,0.006,0.010,0.012,
-0.030,-0.010,-0.004,0,0,0,0,0.009,0.016,0.020,
-0.040,-0.013,-0.005,0,0,0,0,0.010,0.019,0.024,
-0.050,-0.016,-0.006,0,0,0,0,0.012,0.023,0.029,
-0.065,-0.020,-0.007,0,0,0,0,0.015,0.028,0.035,
-0.080,-0.025,-0.009,0,0,0,0,0.018,0.033,0.042,
-0.100,-0.030,-0.010,0,0,0,0,0.021,0.039,0.051,
-0.120,-0.036,-0.012,0,0,0,0,0.025,0.045,0.059,
-0.145,-0.043,-0.014,0,0,0,0,0.028,0.052,0.068,
-0.170,-0.050,-0.015,0,0,0,0,0.033,0.060,0.079,
-0.190,-0.056,-0.017,0,0,0,0,0.036,0.066,0.088,
-0.210,-0.062,-0.018,0,0,0,0,0.040,0.073,0.098,
-0.230,-0.068,-0.020,0,0,0,0,0.045,0.080,0.108
};
static double low_tolerance_value[13][10]=
{
-0.045,-0.016,-0.008,-0.006,-0.010,-0.025,-0.060,0.000,0.004,0.006,
-0.060,-0.022,-0.012,-0.008,-0.012,-0.030,-0.075,0.001,0.008,0.012,
-0.076,-0.028,-0.014,-0.009,-0.015,-0.036,-0.090,0.001,0.010,0.015,
-0.093,-0.034,-0.017,-0.011,-0.018,-0.043,-0.110,0.001,0.012,0.018,
-0.117,-0.041,-0.020,-0.013,-0.021,-0.052,-0.130,0.002,0.015,0.022,
-0.142,-0.050,-0.025,-0.016,-0.025,-0.062,-0.160,0.002,0.017,0.026,
-0.174,-0.060,-0.029,-0.019,-0.030,-0.074,-0.190,0.002,0.020,0.032,
-0.207,-0.071,-0.034,-0.022,-0.035,-0.087,-0.220,0.003,0.023,0.037,
-0.245,-0.083,-0.039,-0.025,-0.040,-0.100,-0.250,0.003,0.027,0.043,
-0.285,-0.096,-0.044,-0.029,-0.046,-0.115,-0.290,0.004,0.031,0.050,
-0.320,-0.108,-0.049,-0.032,-0.052,-0.130,-0.320,0.004,0.034,0.056,
-0.350,-0.119,-0.054,-0.036,-0.057,-0.140,-0.360,0.004,0.037,0.062,
-0.385,-0.131,-0.060,-0.040,-0.063,-0.155,-0.400,0.005,0.040,0.068
};
*up_tol=up_tolerance_value[row_index][col_index];
*low_tol=low_tolerance_value[row_index][col_index];
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -