发布时间 : 星期一 文章UG二次开发作业更新完毕开始阅读
tag_t diam_cover_id, diam_iset1_id, diam_iset2_id,feature_obj;//, part uf_list_p_t feature_list;
UF_CALL(UF_MODL_create_cyl1(create,origin,height,diam_cover,direction, &diam_cover_id));
UF_CALL(UF_MODL_create_cyl1(sub,orig_iset1,height,diam_iset1,direction, &diam_iset1_id));
UF_CALL(UF_MODL_create_cone1(sub,orig_iset2,height1,diam_iset2,direction, &diam_iset2_id));
UF_CALL(UF_MODL_create_list(&feature_list));//如果要阵列必须要创建链表
UF_CALL(UF_MODL_put_list_item(feature_list,diam_iset1_id));
UF_CALL(UF_MODL_put_list_item(feature_list,diam_iset2_id));//要把阵列的对象放入链表中
UF_CALL(UF_MODL_create_circular_iset(0,origin,direction,\feature_list,&feature_obj));//阵列所需要的函数
}
第五题螺帽
static void do_ugopen_api(void) //主函数 {
double pt1[3] = {17.32050808,0.0,0.0}; //三维空间XY平面求出正六边形点的坐标
double pt2[3] = { 8.660254038,15,0.0};
double pt3[3] = {-8.660254038,15,0.0};
double pt4[3] = { -17.32050808,0.0,0.0};
double pt5[3] = {-8.660254038,-15,0.0};
double pt6[3] = { 8.660254038,-15,0.0};
double direction[3] = {0.0,0.0,1.0}; //向Z轴正方向拉伸
double ref_pt[3];
double arc1_start_ang = (PI/180)*87.611984536731;
double arc1_end_ang = (PI/180)*272.38801546327;
double arc1_rad = 0.5625;
double arc2_start_ang = (PI/180)*272.38801546327;
double arc2_end_ang = (PI/180)*447.61198453673;
double arc2_rad = 0.4375;
char *taper_angle = \
char *limit1[2] = {\ //拉伸高度为10
int english_units = 2, i, count = 6;
tag_t objarray[6], part, wcs_tag, matrix_tag;
uf_list_p_t loop_list, features;
UF_FEATURE_SIGN create = UF_NULLSIGN; //布尔运算为创建新实体
UF_CURVE_line_t line1, line2, line3, line4, line5, line6;
line1.start_point[0] = pt1[0]; //直线由起点和终点连成 定义编号
line1.start_point[1] = pt1[1];
line1.start_point[2] = pt1[2];
line1.end_point[0] = pt2[0];
line1.end_point[1] = pt2[1];
line1.end_point[2] = pt2[2];
line2.start_point[0] = pt2[0];
line2.start_point[1] = pt2[1];
line2.start_point[2] = pt2[2];
line2.end_point[0] = pt3[0];
line2.end_point[1] = pt3[1];
line2.end_point[2] = pt3[2];
line3.start_point[0] = pt3[0];
line3.start_point[1] = pt3[1];
line3.start_point[2] = pt3[2];
line3.end_point[0] = pt4[0];
line3.end_point[1] = pt4[1];
line3.end_point[2] = pt4[2];
line4.start_point[0] = pt4[0];
line4.start_point[1] = pt4[1];
line4.start_point[2] = pt4[2];
line4.end_point[0] = pt5[0];
line4.end_point[1] = pt5[1];
line4.end_point[2] = pt5[2];
line5.start_point[0] = pt5[0];
line5.start_point[1] = pt5[1];
line5.start_point[2] = pt5[2];
line5.end_point[0] = pt6[0];
line5.end_point[1] = pt6[1];
line5.end_point[2] = pt6[2];
line6.start_point[0] = pt6[0];
line6.start_point[1] = pt6[1];
line6.start_point[2] = pt6[2];
line6.end_point[0] = pt1[0];
line6.end_point[1] = pt1[1];
line6.end_point[2] = pt1[2];
UF_CALL(UF_CURVE_create_line(&line1,&objarray[0]));//创建直线
UF_CALL(UF_CURVE_create_line(&line2,&objarray[1]));
UF_CALL(UF_CURVE_create_line(&line3,&objarray[2]));
UF_CALL(UF_CURVE_create_line(&line4,&objarray[3]));
UF_CALL(UF_CURVE_create_line(&line5,&objarray[4]));
UF_CALL(UF_CURVE_create_line(&line6,&objarray[5]));
UF_CALL(UF_MODL_create_list(&loop_list)); //把6条直线连起来
for(i = 0; i < count; i++)
{
UF_CALL(UF_MODL_put_list_item(loop_list, objarray[i]));
}
UF_CALL(UF_MODL_create_extruded(loop_list, taper_angle, limit1, ref_pt, direction, create, &features));
UF_PART_save(); //拉伸
UF_FEATURE_SIGN sign1 = UF_UNSIGNED; //布尔运算为求交
double cone_orig[3] = {0.0, 0.0, 0.0}; 锥体底面中心在原点
char *cone_height = \
char *cone_diam[2] = {\
double direction1[3] = {0, 0, 1};
tag_t cone_obj_id;
UF_CALL(UF_MODL_create_cone1(sign1, direction1, &cone_obj_id)); }
//cone参数设定 注意用字符型 圆 //螺帽高度为10 //下底径 上底径 //圆锥朝Z正向向 cone_orig, cone_height, cone_diam,