基于NX平台的二次开发习题解答.docx

上传人:b****6 文档编号:7108403 上传时间:2023-01-18 格式:DOCX 页数:66 大小:179.75KB
下载 相关 举报
基于NX平台的二次开发习题解答.docx_第1页
第1页 / 共66页
基于NX平台的二次开发习题解答.docx_第2页
第2页 / 共66页
基于NX平台的二次开发习题解答.docx_第3页
第3页 / 共66页
基于NX平台的二次开发习题解答.docx_第4页
第4页 / 共66页
基于NX平台的二次开发习题解答.docx_第5页
第5页 / 共66页
点击查看更多>>
下载资源
资源描述

基于NX平台的二次开发习题解答.docx

《基于NX平台的二次开发习题解答.docx》由会员分享,可在线阅读,更多相关《基于NX平台的二次开发习题解答.docx(66页珍藏版)》请在冰豆网上搜索。

基于NX平台的二次开发习题解答.docx

基于基于NX平台的二次开发习题解答平台的二次开发习题解答基于UG平台的二次开发习题解答工学院优集学院二一年二月基于NX平台的二次开发课程习题解答课程代码:

22021021学时数:

32适用专业:

机械设计制造及其自动化第1章二次开发应用初步1、创建一个“Hello,你的”消息对话框。

要求:

利用UG自带的向导创建二次开发工程项目;利用单按钮消息对话框(UC1601()创建“Hello”加你的。

源程序:

externCDllExportvoidufusr(char*parm,int*returnCode,intrlen)/*InitializetheAPIenvironment*/interrorCode=UF_initialize();if(0=errorCode)/*TODO:

Addyourapplicationcodehere*/uc1601(Hello,你的,1);/*TerminatetheAPIenvironment*/errorCode=UF_terminate();/*Printoutanyerrormessages*/PrintErrorMessage(errorCode);第2章二次开发应用框架1、创建圆柱体要求:

创建一个Win32项目,并设置工程项目的属性,使其能够编译UG二次开发工程项目;创建基本体素特征圆柱体。

源程序:

#include#include#include#includestaticvoiddo_ugopen_api(void)UF_FEATURE_SIGNsign=UF_NULLSIGN;doublecyl_orig3=0.0,0.0,0.0;char*cyl_height=100;char*cyl_diam=100;doubledirection3=-1,0,0;tag_tcyl_obj;UF_MODL_create_cyl1(sign,cyl_orig,cyl_height,cyl_diam,direction,&cyl_obj);externvoidufusr(char*param,int*retcode,intrlen)if(UF_initialize()!

=0)return;do_ugopen_api();UF_terminate();return;externintufusr_ask_unload(void)return(UF_UNLOAD_IMMEDIATELY);externvoidufusr_cleanup(void)return;2、创建一个凸台要求:

凸台高H为你的学号,下底面直径B_diam为高h的两倍,上底面直径T_diam与高h相等。

源程序:

#include#include#include#includestaticvoidcreate_block(void)UF_FEATURE_SIGNsign=UF_NULLSIGN;UF_FEATURE_SIGNsign1=UF_POSITIVE;doublecone_orig3=0.0,0.0,20.0;char*height=“height=20.0”;char*diam2=“.0”,“.0”;doubledirection3=0.0,0.0,-1.0;tag_tcone_obj;UF_MODL_create_cone1(sign,cone_orig,height,diam,direction,&cone_obj);externvoidufusr(char*param,int*retcode,intrlen)if(UF_initialize()!

=0)return;create_block();UF_terminate();return;externintufusr_ask_unload(void)return(UF_UNLOAD_IMMEDIATELY);externvoidufusr_cleanup(void)return;第3章编程基础1、创建一个垫圈要求:

采用表达式控制平垫圈的参数(建立垫圈,已知道d2=d1/2;h=d1/4。

要求在执行程序后h=d1/2);改变平垫圈颜色为红色。

源程序:

#include#include#include#include#include#defineUF_CALL(X)(report(_FILE_,_LINE_,#X,(X)staticintreport(char*file,intline,char*call,intirc)if(irc)charmessg133;printf(%s,line%d:

%sn,file,line,call);(UF_get_fail_message(irc,messg)?

printf(returneda%dn,irc):

printf(returnederror%d:

%sn,irc,messg);return(irc);staticvoidcreate_gasket(void)UF_FEATURE_SIGNsign=UF_NULLSIGN;UF_FEATURE_SIGNsign1=UF_NEGATIVE;doubleorigin3=0.0,0.0,0.0;doubledirection3=0.0,0.0,1.0;UF_MODL_create_exp(length=150);char*diam=length/3;char*diam1=length/5;char*height=length/75;char*height1=length/75;tag_tcyl_obj;tag_tcyl_obj1;tag_tgasket_obj_id;UF_CALL(UF_MODL_create_cyl1(sign,origin,height,diam,direction,&cyl_obj);UF_CALL(UF_MODL_create_cyl1(sign1,origin,height1,diam1,direction,&cyl_obj1);uc1601(请按下OK键,实体的颜色将会变成红色,1);UF_MODL_ask_feat_body(cyl_obj1,&gasket_obj_id);UF_OBJ_set_color(gasket_obj_id,);/*ARGSUSED*/voidufusr(char*param,int*retcode,intparamLen)if(!

UF_CALL(UF_initialize()create_gasket();UF_CALL(UF_terminate();intufusr_ask_unload(void)return(UF_UNLOAD_IMMEDIATELY);2、创建表达式要求:

创建两个矩形块两点间的距离表达式,并为距离表达式重命名,最后将当前部件中的表达式输出到信息窗口中。

源程序:

#include#include#include#include#include#include#include#include#include#includevoidufusr(char*param,int*retcode,intparam_len)if(!

UF_initialize()/*定义Block的参数*/doubleblock_orig3=0.0,0.0,0.0;doubleblock_orig13=5.0,5.0,5.0;char*block_len3=1,2,3;tag_tblk_obj,blk_obj1;/*定义表达式的参数*/char*string;tag_t*exps;intnumber_of_exps=0,i=0;charbufUF_UI_MAX_STRING_LEN+1;tag_tpart,feat_tag,exp_tag,solid,solid_body2;inttype,subtype;/*重命名距离表达式的参数*/char*exp_string,*lhs_str,*rhs_str;char*exp_name;tag_texp1_tag;/*创建两个Block*/UF_MODL_create_block1(UF_NULLSIGN,block_orig,block_len,&blk_obj);UF_MODL_create_block1(UF_NULLSIGN,block_orig1,block_len,&blk_obj1);UF_UI_open_listing_window();/*找出所有的Solid实体*/if(part=UF_PART_ask_display_part()=NULL_TAG)UF_UI_write_listing_window(Failedtogetparttagn);return;solid=NULL_TAG;while(i2)type=UF_solid_type;UF_OBJ_cycle_objs_in_part(part,type,&solid);UF_OBJ_ask_type_and_subtype(solid,&type,&subtype);if(subtype=UF_solid_body_subtype)solid_bodyi+=solid;/*创建一个距离表达式*/UF_GEXP_create_distance(solid_body0,NULL_TAG,solid_body1,NULL_TAG,&feat_tag,&exp_tag);/*为距离表达式重新命名*/UF_MODL_ask_exp_tag_string(exp_tag,&exp_string);UF_MODL_dissect_exp_string(exp_string,&lhs_str,&rhs_str,&exp1_tag);UF_MODL_rename_exp(lhs_str,geo_exp);UF_free(exp_string);UF_free(lhs_str);UF_free(rhs_str);/*获取表达式的数量*/UF_MODL_ask_exps_of_part(part,&number_of_exps,&exps);sprintf(buf,当前部件文件一共有%d个表达式。

n,number_of_exps);UF_UI_write_listing_window(buf);UF_UI_write_listing_window(其中几何表达式为:

n);/*获取距离表达式并显示在列表框中*/for(i=0;inumber_of_exps;i+)logicalflag;UF_MODL_is_geometric_expression(expsi,&flag);if(flag=TRUE)UF_MODL_ask_exp_tag_string(expsi,&string);sprintf(buf,距离表达式=%sn,string);UF_UI_write_listing_window(buf);UF_free(string);UF_free(exps);/*调整视图到合适的大小*/tag_tview_tag=NULL_TAG;UF_VIEW_ask_work_view(&view_tag);UF_VIEW_fit_view(view_tag,0.7);UF_UI_write_listing_window(请打开部件导航器,选中DISTANCE_EXP

(2),观察距离表达式。

);/*保存部件文件*/UF_PART_save();UF_terminate();第4章用户界面开发技术1、利用单选菜单列表对话框(UC1603()创建四个基本体素特征要求:

根据用户的不同选择,创建相应的基本体素特征;界面如下图所示。

源程序:

#include#include#include#include#include#includeexternvoidufusr(char*param,int*retcod,intparam_len)/*对话框设置*/char*cp1=请选择;intip2=0;charcp3438=创建一个块(Block),创建一个圆柱(Cylinder),创建一个圆锥(Cone),创建一个球体(Sphere);intip4=4;intvalue;tag_tview_tag=NULL_TAG;UF_FEATURE_SIGNsign=UF_NULLSIGN;/*Block的变量声明区*/doubleblk_corner3=0.0,0.0,0.0;char*blk_edge_len3=10.0,20.0,30.0;tag_tblk_obj_id;/*Cylinder的变量声明区*/doublecyl_origin3=0.0,0.0,0.0;char*cyl_height=20.0;char*cyl_diam=10.0;doublecyl_direction3=0.0,0.0,1.0;tag_tcyl_obj_id;/*Cone的变量声明区*/doublecone_origin3=0.0,0.0,0.0;char*cone_height=20.0;char*cone_diam2=30.0,20.0;doublecone_direction3=0.0,0.0,1.0;tag_tcone_obj_id;/*Sphere的变量声明区*/doublesphere_center3=0.0,0.0,0.0;char*sphere_diam=30.0;tag_tsphere_obj_id;if(!

UF_initialize()/*显示菜单*/value=uc1603(cp1,ip2,cp3,ip4);switch(value)case5:

/*创建Block(块)*/UF_MODL_create_block1(sign,blk_corner,blk_edge_len,&blk_obj_id);break;case6:

/*创建Cylinder(圆柱)*/UF_MODL_create_cyl1(sign,cyl_origin,cyl_height,cyl_diam,cyl_direction,&cyl_obj_id);break;case7:

/*创建Cone(圆锥)*/UF_MODL_create_cone1(sign,cone_origin,cone_height,cone_diam,cone_direction,&cone_obj_id);break;case8:

/*创建Sphere(球体)*/UF_MODL_create_sphere1(sign,sphere_center,sphere_diam,&sphere_obj_id);break;default:

uc1601(发生了错误!

0);/*调整视图到合适的大小*/UF_VIEW_ask_work_view(&view_tag);UF_VIEW_fit_view(view_tag,0.7);/*保存文件*/UF_PART_save();UF_terminate();2、利用UIStyler、Menu等工具创建一个对话框来生成垫圈。

要求:

对话框通过菜单和工具条激活;平垫圈的尺寸由用户通过对话框输入,对话框如下图如示:

源程序:

(a)菜单文件xx.menVERSION120!

-EDITUG_GATEWAY_MAIN_MENUBARTOP_MENUCASCADE_BUTTONCUSTOM_MYMENULABEL实例END_OF_TOP_MENUMENUCUSTOM_MYMENUBUTTONMAKE_GASKETLABEL创建垫圈.ACTIONSDianQuan.dlgEND_OF_MENU(b)工具条文件xx.tbrTITLE实例VERSION170!

-BUTTONMAKE_GASKETLABEL创建垫圈(c)主程序代码intZ_ok_cb(intdialog_id,void*client_data,UF_STYLER_item_value_type_p_tcallback_data)UF_STYLER_item_value_type_tdate;UF_FEATURE_SIGNsign=UF_NULLSIGN;doubleorigin3=0.0,0.0,0.0;charheight10;/厚度chardiam10;/外径doubledirection3=0.0,0.0,1.0;tag_tcyl_obj_id;doublelocation3=0.0,0.0,0.0;doublehole_dir3=0.0,0.0,-1.0;charhole_diam10;/径constchar*angle=0;tag_tface_li;tag_tface_t1;tag_thole_feat_id;uf_list_p_tface_list;/*MakesureUserFunctionisavailable.*/if(UF_initialize()!

=0)return(UF_UI_CB_CONTINUE_DIALOG);/*-Enteryourcallbackcodehere-*/date.item_attr=UF_STYLER_VALUE;date.item_id=Z_REAL_IN;UF_STYLER_ask_value(dialog_id,&date);sprintf(hole_diam,%f,date.value.real);UF_STYLER_free_value(&date);date.item_attr=UF_STYLER_VALUE;date.item_id=Z_REAL_OUT;UF_STYLER_ask_value(dialog_id,&date);sprintf(diam,%f,date.value.real);UF_STYLER_free_value(&date);date.item_attr=UF_STYLER_VALUE;date.item_id=Z_REAL_H;UF_STYLER_ask_value(dialog_id,&date);sprintf(height,%f,date.value.real);UF_STYLER_free_value(&date);UF_MODL_create_cyl1(sign,origin,height,diam,direction,&cyl_obj_id);UF_MODL_ask_feat_faces(cyl_obj_id,&face_list);UF_MODL_ask_list_item(face_list,0,&face_li);UF_MODL_ask_list_item(face_list,1,&face_t1);UF_MODL_create_simple_hole(location,direction,hole_diam,height,angle,face_li,face_t1,&hole_feat_id);UF_terminate();/*Callbackacknowledged,terminatedialog*/*ItisSTRONGLYrecommendedthatyouexityour*/*callbackwithUF_UI_CB_EXIT_DIALOGinaokcallback.*/*return(UF_UI_CB_EXIT_DIALOG);*/return(UF_UI_CB_EXIT_DIALOG);3、创建一个点收集器要求:

能够收集用户所选择的点,并在单击“OK”和“Yes”按钮后,将用户所选的点的坐标信息在UG信息窗口中显示出来。

源程序:

voiddo_ugopen_api()charsMessage=点收集器_朱佳乐;logicallCoincidentpoints=true;UF_UI_chained_points_p_tchained_points;intiCount;intiResponse;UF_UI_select_point_collection(sMessage,lCoincidentpoints,&chained_points,&iCount,&iResponse);char*str=newchar100;if(iResponse=UF_UI_OK)UF_UI_open_listing_window();UF_UI_write_listing_window();UF_UI_write_listing_window(X坐标:

);UF_UI_write_listing_window();UF_UI_write_listing_window(Y坐标:

);UF_UI_write_listing_window();UF_UI_write_listing_window(Z坐标:

);UF_UI_write_listing_window(n);for(inti=1;ipt0,chained_points-pt1,chained_points-pt2);UF_UI_write_listing_window(str);UF_UI_write_listing_window(n);chained_points+;deletestr;第5章外部数据访问1、访问外部Excel数据。

要求:

利用存贮在外部Excel中的数据创建圆柱。

ab501050305050源程序:

#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#defineUF_CALL(X)(report(_FILE_,_LINE_,#X,(X)staticintreport(char*file,intline,char*call,intirc)if(irc)charsFailMessage133;UF_get_fail_message(irc,sFailMessage);charsWholeMessage256;sprintf(sWholeMessage,FileName:

%snLine:

%dnFunction:

%snErrorCode:

%dnMessage:

%s,file,line,call,irc,sFailMessage);MessageBox(NULL,sWholeMessage,ErrorinFunction,MB_OK|MB_ICONWARNING|MB_SYSTEMMODAL);return(irc);staticvoiderror_return(char*msg)fprintf(stderr,n+ERROR:

%s.nn,msg);exit

(1);staticvoidreport_error(intresult,char*alt_msg)charerr_message200;intfound=UF_get_fail_message(result,err_message);if(found!

=0)error_return(alt_msg);elseerror_return(err_message);staticvoidcreate_cyl(doubleorigin_y,char*cyl_height,char*cyl_diam)UF_FEATURE_SIGNsign=UF_NULLSIGN;double

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

当前位置:首页 > 小学教育 > 语文

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

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