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 NX二次开发常用的函数模版--还不错分享下

[复制链接]

2015-3-2 10:12:14 3416 0

admin 发表于 2015-3-2 10:12:14 |阅读模式

admin 楼主

2015-3-2 10:12:14

请使用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 == )
                  {
                        
                  }
                  
            }
) {# ?" }0 |. O" g6 k
file:///C:/Users/sztl26/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif

+ x- s$ a% x; B5 h# ]$ B7 V/ S, {" M$ k8 t7 _
用法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
file:///C:/Users/sztl26/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gifstaticint 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};
    /* enable only 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);
    }
}
4,UF_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);//关高亮
            }
5,UF_UI_select_with_class_dialog
头文件:#include <uf_ui.h>
6 p; N; C. B2 c2 `9 b# t2 E; i8 V7 }
file:///C:/Users/sztl26/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif

: j& L( c$ w) K+ |2 f
, b4 \& [4 w9 H/ M2 m0 k" }% d8 ^
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);     
            
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);
                                                  
头文件#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//查询面的信息
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 ));

/ r3 j2 O" g: x3 F3 U% f# G0 }
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了