iCAx开思网

标题: 发自己的源代码,支持的顶 [打印本页]

作者: hmily77    时间: 2009-1-9 09:51
标题: 发自己的源代码,支持的顶
int SHEET_ok ( int dialog_id,
             void * client_data,
             UF_STYLER_item_value_type_p_t callback_data)
{
     /* Make sure User Function is available. */  
     if ( UF_initialize() != 0)
          return ( UF_UI_CB_CONTINUE_DIALOG );

    //变量申明
    char * sVariable="UGII_USER_DIR";
    char * sTranslation;
    char sSheetName[30]="";//视图名称
    UF_STYLER_item_value_type_t value;
    char sTemplatePath[255]="";//模板路径
    char sDTemplatePath[255]="";//标注模板
    int iSheetSelect=0;//图框选择

    char *sMillTemplate="\\application\\SheetTemplate\\A3_H_Mill.prt";
    char *sTurnTemplate="\\application\\SheetTemplate\\A3_H_Turn.prt";
    char *DraftingTemplate="\\application\\SheetTemplate\\template.prt";
    char buff[254]="";

    tag_t tPart_CurrPath;  
    char sPart_Fspec[ 256 + 1 ];

    int  num_drawings;
    tag_p_t  drawing_tags;

    int                   mpi_array[100];
    double                mpr_array[70];
    char                  rad_symbol[27], dia_symbol[27];
    tag_t  part;
    UF_PART_load_status_t  error_status;

    tag_t  note_tag=NULL_TAG;
    double origin_3d[ 3 ]={57,-2.2,0};
    char * text_string[1];
    char str[254]="";

    UF_DRAW_info_t drawing_info;
    tag_t drawing_tag;
    drawing_info.drawing_scale=1;

    UF_import_part_modes_t modes;
        modes.layer_mode=0;
        modes.group_mode=1;
        modes.view_mode=0;
    double dest_csys[ 9],x_vec[ 3 ]={1,0,0},y_vec[ 3 ]={0,1,0};
    double dest_point[ 3 ]={0,0,0};
    tag_t  group ;

    drawing_info.units=UF_PART_METRIC;
    drawing_info.size_state=UF_DRAW_CUSTOM_SIZE;
    drawing_info.projection_angle=UF_DRAW_FIRST_ANGLE_PROJECTION;
    drawing_info.size.custom_size[0]=420;
    drawing_info.size.custom_size[1]=298;

    int SheetSign=0,PathSign=0,DraftingSign=0;

/********************************输入查询*********************************/
    //新图标识DraftingSign
     value.item_id=SHEET_NEW_DRAWING;
     value.item_attr=UF_STYLER_VALUE;
     UF_STYLER_ask_value (dialog_id, &value);
     DraftingSign=value.value.integer;

    //图框标识SheetSign
     value.item_id=SHEET_IMAGE;
     value.item_attr=UF_STYLER_VALUE;
     UF_STYLER_ask_value (dialog_id, &value);
     SheetSign=value.value.integer;

    //路径标识PathSign
     value.item_id=SHEET_PATH;
     value.item_attr=UF_STYLER_VALUE;
     UF_STYLER_ask_value (dialog_id, &value);
     PathSign=value.value.integer;

     //sprintf(buff,"%d;%d;%d",DraftingSign,SheetSign,PathSign);
     //uc1601(buff,1);

/********************************部件标识*********************************/
    tPart_CurrPath=UF_ASSEM_ask_work_part ( ); //获得当前工作部件标识
       UF_PART_ask_part_name (tPart_CurrPath,sPart_Fspec);  //查询部件路径

/********************************基本参数查询*********************************/

     //查询图框选择
     value.item_id=SHEET_SELECT ;
     value.item_attr=UF_STYLER_VALUE;
     UF_STYLER_ask_value (dialog_id, &value);
     iSheetSelect=value.value.integer;

     //取文件路径
     UF_translate_variable (sVariable, &sTranslation); //取环境变量
     strcpy(sTemplatePath,sTranslation);
     strcpy(sDTemplatePath,sTranslation);
     switch(iSheetSelect)
        {case 0: strcat(sTemplatePath,sMillTemplate); break;
         case 1: strcat(sTemplatePath,sTurnTemplate);  break;
         default: uc1601("图框选择错误!",1);
        }
     strcat(sDTemplatePath,DraftingTemplate);


     //查询视图名字
     value.item_id=SHEET_NAME ;
     value.item_attr=UF_STYLER_VALUE;
     UF_STYLER_ask_value (dialog_id, &value);
     strcpy(sSheetName,value.value.string);

/*********************************功能选取*********************************/

/*********************************功能创建*********************************/
    UF_DRAW_ask_drawings (&num_drawings, &drawing_tags );
    //判断视图名称是否重复
    for(int i=0;i<num_drawings;i++){
        UF_OBJ_ask_name (drawing_tags, buff);
        if(strcmp(strupr(sSheetName),buff)==0){
            strcat(sSheetName,"_1");
            //uc1601(buff,1);
            i=0;
        }
    }
    UF_free (drawing_tags );
   
    //1:创建视图
    if(DraftingSign==1)
        UF_DRAW_create_drawing (sSheetName, &drawing_info, & drawing_tag );

    //2:导入图框
    if(SheetSign==1){
        UF_MTX3_initialize (x_vec, y_vec, dest_csys);
        UF_PART_import (sTemplatePath, &modes, dest_csys, dest_point, 1, &group );
    }

    //3:设置标准模板参数
    UF_PART_open (sDTemplatePath, &part, &error_status );
    UF_DRF_ask_preferences (mpi_array,  mpr_array, rad_symbol, dia_symbol );
    UF_PART_close (part, 0, 1 );
    UF_PART_set_display_part (tPart_CurrPath );
    UF_DRF_set_preferences (mpi_array,  mpr_array, rad_symbol, dia_symbol );

    //4:创建路径标注
    text_string[0]=str;
    strcpy(str,"模型路径:");
    strcat(str,sPart_Fspec);
    if(PathSign==1)
        UF_DRF_create_note (1, text_string, origin_3d, 0, &note_tag );

    UF_terminate ();

    /* Callback acknowledged, terminate dialog             */
    /* It is STRONGLY recommended that you exit your       */
    /* callback with UF_UI_CB_EXIT_DIALOG in a ok callback.*/
    /* return ( UF_UI_CB_EXIT_DIALOG );                    */
    return (UF_UI_CB_EXIT_DIALOG);                           

}
作者: hmily77    时间: 2009-1-9 09:53
该程序功能:自动创建新图纸,自动设置制图参数,自动写路径,自动导入图框;以后我会继续发我的代码,希望大家顶起来,虽然程序功能不大,但是也是一个函数应用例子,看了请回!!!!
作者: MIRRO_LEE    时间: 2009-1-9 11:10
恩恩。。。
学习借鉴一下!
作者: MIRRO_LEE    时间: 2009-1-9 11:11
支持楼主!
加油!
作者: ftftftftft    时间: 2009-1-9 19:35
最好有NX/OPEN C++的
作者: -KASA-    时间: 2009-1-9 20:27
支持源码。
再接再厉。
作者: open_lian    时间: 2009-1-10 07:58
支持,学习了
作者: CUI821228    时间: 2009-5-4 20:57
支持,学习了
作者: daojianrm    时间: 2009-5-4 21:19
强烈支持楼主,向你学习,不知楼主是否对建模方面有了解
作者: hmq78    时间: 2009-5-7 19:55
楼主能不能帮我搞个自动建立三视图并且标注三个方向的最大外形的小外挂啊
作者: qianwei11    时间: 2009-5-8 09:07
好是好,只可惜不会C++
作者: procamcae    时间: 2009-5-10 22:24
哈哈,谢谢楼主分享,顶!!
作者: navy102019    时间: 2009-5-10 22:47
ding...........
作者: navy102019    时间: 2009-5-10 22:48
以后多请教请教咯
作者: procamcae    时间: 2009-9-21 21:14
谢了,学习学习
作者: wansqs    时间: 2009-9-21 22:53
不错,学习学习
作者: liheng1987    时间: 2009-11-9 21:24
支持源码, 以后多发帖
作者: 屠倚龙天    时间: 2009-11-22 22:06
恩恩。。。
学习借鉴一下!
作者: lw19790213    时间: 2009-11-23 15:07
我坚决支持楼主。
作者: wyanling    时间: 2009-11-23 15:20
支持下!!!
作者: 屠倚龙天    时间: 2009-11-23 21:51
强烈支持楼主,向你学习
作者: begtostudy    时间: 2009-11-24 13:32
强烈建议建了开源项目
作者: yanfang1108    时间: 2009-11-24 16:06
向楼主学习
作者: WUHONGZHANG    时间: 2010-3-14 03:53
支持楼主大开眼界了
作者: yl.fu    时间: 2010-3-15 19:11
顶了在下 顶了在下
作者: Tan_Hongli    时间: 2010-3-22 14:11
最好有NX/OPEN C++的
作者: LIUCHANGLIN    时间: 2010-8-14 16:58
UF_OBJ_ask_name (drawing_tags, buff);
楼主这句写错了!
作者: cctu111    时间: 2010-8-23 11:39
顶啊!!!
作者: CUI821228    时间: 2010-8-23 15:06
支持楼主的原创,
作者: ACAIGG    时间: 2010-11-30 20:57
嗯 我要看看
作者: cncabs    时间: 2010-12-21 21:27
支持版大!!!!
作者: cncabs    时间: 2010-12-21 21:28
支持版大!!!!
作者: tailuo    时间: 2010-12-22 23:41
支持楼主!学习学习
作者: yiuxiong    时间: 2010-12-25 22:50
支持一下。
作者: SWORDINHAND    时间: 2012-4-14 23:21
支持,学习了
作者: littlefish    时间: 2012-4-17 10:59
{:soso_e179:}
作者: wsdone    时间: 2012-6-10 01:52
学习了,顶啊
作者: autogao    时间: 2012-6-11 00:15
mark 支持。
作者: jfxia    时间: 2012-11-11 18:05
很好,最近正研究NX自动按层转工程图及批量导出DWG文件
作者: cxmhee    时间: 2013-8-26 11:17
谢谢楼主的无私奉献。。。。。看了好久,都看不懂
作者: andyszw    时间: 2013-9-16 22:21
不错,学习学习
作者: dyne2    时间: 2013-10-18 12:55
不错,谢谢楼主
作者: a0806    时间: 2013-11-12 23:07
好东东,慢慢研究,




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3