UG二次开发模板.docx

上传人:b****1 文档编号:2093582 上传时间:2022-10-26 格式:DOCX 页数:40 大小:35.53KB
下载 相关 举报
UG二次开发模板.docx_第1页
第1页 / 共40页
UG二次开发模板.docx_第2页
第2页 / 共40页
UG二次开发模板.docx_第3页
第3页 / 共40页
UG二次开发模板.docx_第4页
第4页 / 共40页
UG二次开发模板.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

UG二次开发模板.docx

《UG二次开发模板.docx》由会员分享,可在线阅读,更多相关《UG二次开发模板.docx(40页珍藏版)》请在冰豆网上搜索。

UG二次开发模板.docx

UG二次开发模板

UG二次开发模板

第一章技巧规则

(2)

第二章函数模板(4)

第三章功能模板(11)

第四章udop(24)

 

注:

连接:

Ctrl+单击鼠标左键

第一章技巧规则

1,存原则:

【规则1】用malloc或new申请存之后,应该立即检查指针值是否为NULL。

防止使用指针值为NULL的存。

【规则2】不要忘记为数组和动态存赋初值。

防止将未被初始化的存作为右

值使用。

【规则3】避免数组或指针的下标越界,特别要当心发生“多1”或者“少1”

操作。

【规则4】动态存的申请与释放必须配对,防止存泄漏。

【规则5】用free或delete释放了存之后,立即将指针设置为NULL,防止产

生“野指针”。

2,

数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。

数组名对应着(而不是指向)一块存,其地址与容量在生命期保持不变,只有数组的容可以改变。

指针可以随时指向任意类型的存块,它的特征是“可变”,所以我们常用指针来操作动态存。

指针远比数组灵活,但也更危险。

注意当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。

new/delete的功能完全覆盖了malloc/free,为什么C++不把malloc/free淘

汰出局呢?

这是因为C++程序经常要调用C函数,而C程序只能用malloc/free管理动态存。

2,分配空间

double(*point)[3];

point=newdouble[count][3];

delete[]point;//正确的用法

/*deletepoint;//错误的用法=deletepoint[0]*/

3,

UF_MODL_update();//使用UF_MODL_edit时用来刷新

4UF_UI_ONT_refresh();//刷新导航器

头文件#include

UF_DISP_refresh();//去除临时文件

#include

5调试工具

1)uc1601//显示消息对话框

头文件:

#include

用法1:

charinf[100];

sprintf(inf,"%f",);

uc1601(inf,1);

用法2:

uc1601("",1);

2)UF_UI_write_listing_window//显示文本框

头文件:

#include

charinf[100];

UF_UI_open_listing_window();

sprintf(inf,"%",);

UF_UI_write_listing_window(inf);

 

6,隐藏中间过程

#include

UF_DISP_set_display(UF_DISP_SUPPRESS_DISPLAY);//打开隐藏

UF_DISP_set_display(UF_DISP_UNSUPPRESS_DISPLAY);//关闭隐藏

 

第二章函数模板

1,uc1600//获取字符串

头文件:

#include

intres=0;

intlen=0;

charstring[100]="";

res=uc1600("",string,&len);//string:

Input/Output

if(res==5||(res==3&&len>0))

{

}

else

{

}

 

2,uc1603//

头文件:

#include

用法1:

chartitle[100]="菜单";

charitems[3][38]={"选项1","选项2","选项3"};

choice=uc1603(title,0,items,3);

if(choice==1||choice==2)

{

UF_terminate();

}

else

{

if(choice==)

{

}

}

用法2:

charitems[3][38]={"选项1","选项2","选项3"};

response=uc1603("菜单",0,items,3);

switch(response)

{

case1:

case2:

break;

case4:

case5:

}

 

3,选择对话框头文件

头文件1:

init_proc_face

staticintinit_proc_face(UF_UI_selection_p_tselect,void*user_data)

{

intnums=1;

UF_UI_mask_tmasks[]={

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

staticintinit_proc_body(UF_UI_selection_p_tselect,void*user_data)

{

intnum_triples=1;

UF_UI_mask_tmask_triples[]={UF_solid_type,0,UF_UI_SEL_FEATURE_BODY};

/*enableonlylinesandedges*/

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

chartitle[]="";

charcue[]="";

intresponse=0;

doublecursor[3];

tag_tface=NULL;

tag_tview=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("objecttag=%d\n",face);

}

UF_DISP_set_highlight(face,0);//关高亮

}

5,UF_UI_select_with_class_dialog

头文件:

#include

voidclass_sel_dlg(int*count,tag_p_t*objects)

{

charcue[]="";

chartitle[]="";

intresponse,sel_count,i;

tag_p_tsel_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("objectcount=%d\n",sel_count);

if(response==UF_UI_OK&&sel_count>0)

{

*objects=sel_objects;

*count=sel_count;

for(i=0;i

{

printf("objecttag=%d\n",sel_objects[i]);

UF_DISP_set_highlight(sel_objects[i],0);

}

UF_free(objects);

}

}

}

6,UF_MODL_delete_object_parms//消参

头文件:

#include

#include

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

UF_OBJ_delete_object();

 

7,UF_CURVE_create_arc//通过圆心,半径画圆

头文件:

#include

#include

tag_tarc,wcs_tag;

UF_CSYS_ask_wcs(&wcs_tag);

UF_CURVE_arc_tarc_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];//

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1