Creo二次开发--函数(6)--选择对象
2013-01-29 14:32
871 查看
ProSelect--用户交互选择对象的函数
选择对象的实例
ProSelection *sel;
int n_sel;
ProSelect ("datum", 1, NULL, NULL, NULL, NULL, &sels, &n_sels);
ProSelect ((char *)"feature", 1, NULL, NULL, NULL, NULL, &sel, &n_sel);
ProSelect ((char *)"curve", 1, NULL, NULL, NULL, NULL, &sel, &n_sel);
ProSelect ((char *)"point", 1, NULL, NULL, NULL, NULL, &sel, &n_sel) ;
ProSelect ((char *)"surface", 1, NULL, NULL, NULL, NULL, &sel, &n_sel);
ProSelect((char *)"prt_or_asm", 1, NULL, NULL, NULL, NULL, &p_sel, &n_sel);
ProSelect((char *)"csys",1,NULL,NULL,NULL,NULL,&win_sel,&sel_n);
ProSelect((char*)"dimension,ref_dim", 1, NULL, NULL, NULL, NULL, &sel, &n_sel);
ProSelect ((char*)"point,dtl_axis,datum,csys,edge,curve,surface", 1, NULL, NULL, NULL, NULL, &p_sel, &n_sel);
ProSelect ((char*)"feature,part", 1, NULL, NULL, NULL, NULL, &p_sel, &n_sel);
ProSelect ((char*)"dimension,ref_dim", 1, NULL, NULL, NULL, NULL, &p_sel, &n_sel);
ProSelect ((char*)"dwg_view", 1, NULL, NULL, NULL, NULL, &view_sel, &num_sel);
ProSelect ((char*)"any_note,draft_ent,dtl_symbol", 1, NULL, NULL, NULL, NULL, &p_sel, &n_sel);
ProSelect ((char*)"edge,curve,point,axis", 1, NULL, NULL, NULL, NULL, &sel, &n_sel);
ProSelect ((char*)"dtl_symbol", 1, NULL, NULL, NULL, NULL, &p_sel, &n_sel);
ProSelect((char*)"point,axis,csys,edge_end", 1, NULL, NULL, NULL, NULL, &p_sel, &n_sel);
ProSelect((char*)"gtol", 1,NULL, NULL, NULL, NULL, &sel, &n_sel);
//下面是一组函数了。
/*============================================================================*\
Function: ProTestSelectionDimFilter
Purpose: Filter function for dimension select
\*============================================================================*/
ProError ProTestSelectionDimFilter (
ProSelection sel,
ProAppData data)
{
ProError err;
ProDimension dim, base_dim;
UserDimData *sel_data = (UserDimData*)data;
ProBoolean is_ordinate, type = sel_data->flag ;
ProDrawing drw = (ProDrawing)sel_data->parent;
err = ProSelectionModelitemGet (sel, &dim);
err = ProDrawingDimIsOrdinate (drw, &dim, &is_ordinate, &base_dim);
return (is_ordinate == type ? PRO_TK_NO_ERROR : PRO_TK_CONTINUE);
}
ProSelFunctions sel_funcs;
sel_funcs.pre_filter = (ProSelectionPreFilter)ProTestSelectionDimFilter;
sel_funcs.post_filter = NULL;
sel_funcs.post_selact = NULL;
sel_funcs.app_data = NULL;
err = ProSelect((char *)"feature", 1, NULL,&sel_funcs , NULL, NULL, &sel_feat, &n_sel);
选择对象的实例
ProSelection *sel;
int n_sel;
ProSelect ("datum", 1, NULL, NULL, NULL, NULL, &sels, &n_sels);
ProSelect ((char *)"feature", 1, NULL, NULL, NULL, NULL, &sel, &n_sel);
ProSelect ((char *)"curve", 1, NULL, NULL, NULL, NULL, &sel, &n_sel);
ProSelect ((char *)"point", 1, NULL, NULL, NULL, NULL, &sel, &n_sel) ;
ProSelect ((char *)"surface", 1, NULL, NULL, NULL, NULL, &sel, &n_sel);
ProSelect((char *)"prt_or_asm", 1, NULL, NULL, NULL, NULL, &p_sel, &n_sel);
ProSelect((char *)"csys",1,NULL,NULL,NULL,NULL,&win_sel,&sel_n);
ProSelect((char*)"dimension,ref_dim", 1, NULL, NULL, NULL, NULL, &sel, &n_sel);
ProSelect ((char*)"point,dtl_axis,datum,csys,edge,curve,surface", 1, NULL, NULL, NULL, NULL, &p_sel, &n_sel);
ProSelect ((char*)"feature,part", 1, NULL, NULL, NULL, NULL, &p_sel, &n_sel);
ProSelect ((char*)"dimension,ref_dim", 1, NULL, NULL, NULL, NULL, &p_sel, &n_sel);
ProSelect ((char*)"dwg_view", 1, NULL, NULL, NULL, NULL, &view_sel, &num_sel);
ProSelect ((char*)"any_note,draft_ent,dtl_symbol", 1, NULL, NULL, NULL, NULL, &p_sel, &n_sel);
ProSelect ((char*)"edge,curve,point,axis", 1, NULL, NULL, NULL, NULL, &sel, &n_sel);
ProSelect ((char*)"dtl_symbol", 1, NULL, NULL, NULL, NULL, &p_sel, &n_sel);
ProSelect((char*)"point,axis,csys,edge_end", 1, NULL, NULL, NULL, NULL, &p_sel, &n_sel);
ProSelect((char*)"gtol", 1,NULL, NULL, NULL, NULL, &sel, &n_sel);
//下面是一组函数了。
/*============================================================================*\
Function: ProTestSelectionDimFilter
Purpose: Filter function for dimension select
\*============================================================================*/
ProError ProTestSelectionDimFilter (
ProSelection sel,
ProAppData data)
{
ProError err;
ProDimension dim, base_dim;
UserDimData *sel_data = (UserDimData*)data;
ProBoolean is_ordinate, type = sel_data->flag ;
ProDrawing drw = (ProDrawing)sel_data->parent;
err = ProSelectionModelitemGet (sel, &dim);
err = ProDrawingDimIsOrdinate (drw, &dim, &is_ordinate, &base_dim);
return (is_ordinate == type ? PRO_TK_NO_ERROR : PRO_TK_CONTINUE);
}
ProSelFunctions sel_funcs;
sel_funcs.pre_filter = (ProSelectionPreFilter)ProTestSelectionDimFilter;
sel_funcs.post_filter = NULL;
sel_funcs.post_selact = NULL;
sel_funcs.app_data = NULL;
err = ProSelect((char *)"feature", 1, NULL,&sel_funcs , NULL, NULL, &sel_feat, &n_sel);
相关文章推荐
- Creo二次开发--函数(1)--可扩展数组
- Creo二次开发--函数(4)--常用操作类函数
- Revit 二次开发之“交互操作-得到选择的对象”
- Creo二次开发--内存清理函数
- Creo二次开发--函数(8)--质量函数
- Creo二次开发--函数(11)--基准轴
- Creo二次开发--函数(5)--字符串类函数
- Creo二次开发--函数(12)--基准坐标系
- Creo二次开发--函数(七)--尺寸遍历操作函数
- Creo二次开发--函数(13)--基准点与基准平面
- Creo二次开发--函数(2)--信息类函数
- Creo二次开发异步模式——字符串操作函数
- Creo二次开发--函数(10)--配置类函数
- Creo二次开发--函数(3)--菜单类函数
- Creo二次开发--函数(9)
- Creo二次开发--函数(14)--与颜色有关的函数
- Creo二次开发--内存清理函数
- SkyLine_BS_二次开发_创建对象
- Javascript开发之二函数与内置对象
- mapgis6.7二次开发vc6_demo 之六(mapgis公用函数二次封装库)