Creo二次开发--函数(6)--选择对象

来源:互联网 发布:新业汽修软件图 编辑:程序博客网 时间:2024/05/17 23:41

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);

原创粉丝点击