《ug API 二次开发实例程序》由会员分享,可在线阅读,更多相关《ug API 二次开发实例程序(4页珍藏版)》请在金锄头文库上搜索。
1、、最终模型图二、C+十程序* example732.cpp* * Description:* Main file for the application.*/* Include files */#if ! defined ( _hp9000s800 ) & ! defined ( _sgi ) & ! defined ( _sun )# include # include using std:ostrstream;using std:endl;using std:ends;using std:cerr;#else# include # include #endif#includestdafx.
2、h” #include #include#include#include#include#include#include#include#define UF_CALL(X) (report_error( _FILE_, _LINE_, #X, (X)static int report_error( char *file, int line, char *call, int irc)(一if (irc)char err133,msg133;sprintf(msg, * ERROR code %d at line %d in %s:n+ , irc, line, file);UF_get_fail
3、_message(irc, err);UF_print_syslog(msg, FALSE);UF_print_syslog(err, FALSE);UF_print_syslog(n, FALSE);UF_print_syslog(call, FALSE);UF_print_syslog(;n, FALSE);-return(irc);/* Main routine */extern void main( char argc, char *argv)/* Initialize the API environment */if( UF_CALL(UF_initialize()/* Failed
4、 to initialize */return;/* TODO: Add your application code here */tag_t view_tag=NULL_TAG;/*创建part文件*/char * part_name=f:UG_TESTexample732”;int units=1;tag_t part_tag;UF_CALL(UF_PART_new(part_name,units,&part_tag);/*创建圆柱的变量声明区*/double cyl_origin3=0.0,0.0,0.0;char * cyl_height=20.0”;char * cyl_diam=1
5、0.0”;double cyl_direction3=0.0,0.0,1.0;tag_t cyl_obj_id;uf_list_p_t face_list;/*创建相对基准平面的变量声明区*/int num_refs=1;tag_t object_tags3;tag_t object_tags13;int point_select3=0,1,0;int which_plane=1;char*offset_string=5.0”;int num_dplanes;tag_t dplane_tag2;tag_t dplane_tag12;int layer_fea_nu;tag_t * layer_
6、fea_id;/*创建孔特征的变量声明区*/double location3=5.0,0.0,10.0;double direction3=-1.0,0.0,0.0;char* diame=5.0”;char* depth=20.0”;char* angle=0.0”;tag_t face_li;tag_t face_tl;tag_t hole_obj_id;/*创建圆柱体*/UF_CALL(UF_MODL_create_cyl1(UF_NULLSIGN,cyl_origin,cyl_height,cyl_diam,cy l_direction,&cyl_obj_id);/*获取圆柱体所有的面
7、,存入链表*/UF_CALL(UF_MODL_ask_feat_faces(cyl_obj_id,&face_list);UF_CALL(UF_MODL_ask_list_item(face_list,2,&object_tags0);UF_CALL(UF_MODL_delete_list(&face_list);/*创建基准平面*/UF_CALL(UF_MODL_create_relative_dplane(num_refs,object_tags,point_select, which_plane,NULL,NULL,0.0,&num_dplanes,dplane_tag);object_
8、tags10=dplane_tag0;UF_CALL(UF_MODL_ask_feat_object(dplane_tag0,&layer_fea_nu,&layer_fea_i d);UF_CALL(UF_OBJ_set_blank_status(layer_fea_id0,UF_OBJ_BLANKED);UF_free(layer_fea_id);UF_CALL(UF_MODL_create_relative_dplane(1,object_tags1,point_select,which_ plane,NULL,NULL,offset_string,&num_dplanes,dplane
9、_tag1);face_li=dplane_tag10;face_tl=object_tags0;UF_CALL(UF_MODL_create_simple_hole(location,direction,diame,depth,angle,fa ce_li,face_tl,&hole_obj_id);/*UF_CALL(UF_VIEW_ask_work_view(&view_tag);UF_VIEW_fit_view(view_tag,0.7);*/* Terminate the API environment */UF_CALL(UF_PART_save();UF_CALL(UF_terminate();-* Utilities