您的位置:首页 > 其它

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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: