PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

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

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

  [复制链接]

2013-9-23 22:26:28 3728 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

; k( T: M: m: X* Hstatic 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);
      
( F0 N( c5 j, C  X4 g7 z  N
       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);
                              
( {. W6 e- c, ]" A
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//查询面的信息

& Y" F3 i: x; t2 l头文件#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 ));
- t+ _/ R! o. f5 L& |4 W" a' C
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了