PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

PLM之家PLMHome-国产软件践行者

[资料] UG二次开发模板(2)函数模板

  [复制链接]

2013-9-23 22:26:28 3550 0

admin 发表于 2013-9-23 22:26:28 |阅读模式

admin 楼主

2013-9-23 22:26:28

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
函数模板
1, uc1600   //获取字符串
头文件:#include <uf_ui.h>
int res = 0;
       int len = 0;
       char string[100]="";
      
       res = uc1600( "",string , &len );//string:Input / Output
       if ( res == 5 || ( res== 3 && len > 0 ) )
       {
       }
       else
       {
       }
2, uc1603   //
头文件:#include <uf_ui.h>
用法1:
        char title [100] ="菜单";
       char items [3] [ 38 ] = { "选项1","选项2","选项3"};
      
       choice = uc1603(title, 0, items, 3);
      
       if (choice == 1 || choice == 2)
       {
           UF_terminate();
       }
       else
       {
           if (choice == )
           {
              
           }
           
       }
用法2:
        char items [3] [ 38 ] = { "选项1","选项2","选项3"};
      
       response = uc1603( "菜单", 0, items, 3 );
      
       swiTCh ( response )
        {
       case 1:
       case 2:
           break;
       case 4:
           
       case 5:
       }
3,选择对话框头文件
头文件1: init_proc_face
static intinit_proc_face( UF_UI_selection_p_t select, void* user_data )
{
       int nums = 1;
       UF_UI_mask_t masks[] = {
          UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};
         
         
          if((UF_UI_set_sel_mask(select,
              UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
              nums, masks)) ==0)
          {
              return(UF_UI_SEL_SUCCESS);
          }
          else
          {
              return(UF_UI_SEL_FAILURE);
          }
}
头文件2:init_proc_body
0 i* t: O. @' B. Y+ o
static int init_proc_body(UF_UI_selection_p_t select, void* user_data)
{
    int num_triples = 1;
    UF_UI_mask_t mask_triples[] = {UF_solid_type, 0, UF_UI_SEL_FEATURE_BODY};
    /* enableonly lines and edges */
    if((UF_CALL(UF_UI_set_sel_mask(select,
       UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
       num_triples, mask_triples))) == 0)
    {
        return (UF_UI_SEL_SUCCESS);
    }
    else
    {
        return (UF_UI_SEL_FAILURE);
    }
}
4UF_UI_select_with_single_dialog
头文件:#include <uf_ui.h>
        char     title[]="";
       char     cue[] ="";
       int      response=0;
       double   cursor [3];
       tag_t    face = NULL;
       tag_t    view = NULL;
      
      
       if(!UF_CALL(UF_UI_select_with_single_dialog(cue, title, UF_UI_SEL_SCOPE_NO_CHANGE,    init_proc_face,NULL,
           &response,&face,cursor ,&view)))
       {
           if (response == UF_UI_OBJECT_SELECTED ||
              response == UF_UI_OBJECT_SELECTED_BY_NAME)
           {
              printf("object tag = %d\n", face);
              
           }
           UF_DISP_set_highlight(face, 0);//关高亮
       }
5UF_UI_select_with_class_dialog
头文件:#include <uf_ui.h>
void class_sel_dlg(int*count,tag_p_t *objects)
{
    char cue[] = "";
       char title[] = "";
       int response, sel_count, i;
       tag_p_t sel_objects;
      
       if((UF_CALL(UF_UI_select_with_class_dialog(
           cue, title, UF_UI_SEL_SCOPE_NO_CHANGE,
           init_proc_face, NULL, &response, &sel_count,&sel_objects))) == 0)
       {
           printf("object count = %d\n",sel_count);
           if (response == UF_UI_OK && sel_count > 0)
           {
              *objects=sel_objects;
              *count=sel_count;
              for (i=0; i<sel_count; i++)
              {
                  printf("object tag = %d\n",sel_objects);
                  UF_DISP_set_highlight(sel_objects, 0);
              }
              UF_free(objects);
           }
       }
}
6,UF_MODL_delete_object_parms//消参
头文件:
#include< uf_modl.h>
#include< uf_modl_utilities.h >
uf_list_p_t obj_list;
       UF_CALL(UF_MODL_create_list(&obj_list));
      
       UF_CALL(UF_MODL_put_list_item(obj_list, ));
       UF_CALL(UF_MODL_put_list_item(obj_list, ));
        
       UF_MODL_delete_object_parms(obj_list);
       UF_MODL_delete_list(&obj_list);
      

4 s, k4 W" q. E3 ^3 }/ }       UF_OBJ_delete_object();
7,UF_CURVE_create_arc//通过圆心,半径画圆
   
头文件:
#include< uf_csys.h>
#include< uf_curve.h>
    tag_t  arc, wcs_tag;
    UF_CSYS_ask_wcs(&wcs_tag);
    UF_CURVE_arc_t arc_coords;
    UF_CSYS_ask_matrix_of_object(wcs_tag,&wcs_tag);
         
    arc_coords.matrix_tag=wcs_tag;
    arc_coords.start_angle = 0.0;
    arc_coords.end_angle =360.0 * DEGRA;
    arc_coords.arc_center[0] = center[0];//
    arc_coords.arc_center[1] = center[1];//
    arc_coords.arc_center[2] = center[2];//
    arc_coords.radius = 500;
  UF_CURVE_create_arc(&arc_coords,&arc_id);
8,UF_OBJ_set_name(tag,name); //设置名字
头文件#include <uf_obj.h>
9,name开关
       intname_status ;
       UF_DISP_ask_name_display_status(&name_status);
      
       if (name_status==UF_DISP_NAME_DISPLAY_OFF )
       {
           name_status=UF_DISP_NAME_DISPLAY_ON;
       }
       else
       {
           name_status=UF_DISP_NAME_DISPLAY_OFF;
       }
       UF_DISP_set_name_display_status(name_status);
                              
3 n0 e  E/ p$ S, x9 N4 L9 Z
10
,UF_OBJ_set_color(tag,color); //设置颜色
头文件#include <uf_obj.h>
                           
11,UF_OBJ_set_layer(tag,layer); //设置层
头文件#include <uf_obj.h>
12,UF_CALL
头文件#include <uf.h>
int UF_CALL ( interrorCode )
{
    if ( errorCode )
    {
       char message [133] = "";
       UF_get_fail_message( errorCode, message );
       uc1601 ( message, 1);
    }
    return (errorCode);
}
13, UF_PART_ask_display_part
头文件#include <uf_part.h>
tag_t part = UF_PART_ask_display_part( );
       if ( NULL == part )
       {
           uc1601( "", 1 );
           return;
       }
14,UF_OPER_create
头文件#include <uf_oper.h>
tag_t Oper_id = NULL;
   
UF_OPER_create ( "mill_contour","ZLEVEL_PROFILE_YBC", &GZM_Oper_id );
15,UF_MODL_ask_face_data//查询面的信息
& E& i, e. {2 L9 [
头文件#include <uf_modl.h>
tag_t face;//面的ID
    int  type; //面的类型
    double box[6];//x,y,z向最大,最小值
    double radius;
    double rad_data;
    int  norm_dir ;//法向
   
    UF_MODL_ask_face_data(face,&type,center,
       dir,box,&radius,&rad_data,&norm_dir);
16,UF_MODL_ask_minimum_dist_2//查询两物体间距离
doubledis,accuracy;// accuracy:准确度
double point1[3 ]={0};
double point2[3 ]={0};
           
UF_CALL(UF_MODL_ask_minimum_dist_2 ( obj1, obj2, 0, NULL, 0,NULL,
              & dis, point1, point1,&accuracy ));

" [; l5 Q0 w6 g/ v* ?: W
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了