今天早上对昨晚的成果进行总结:
主题一:完成了利用NX Open C/C++创建点;
主题二:对坐标信息的访问;
主题三:为了避免在入口函数中写大量的重复代码,写了几个关于点的函数;
主题一:NX Open C/C++创建点:
代码如下:
tag_t point_tag=NULL_TAG;double point[3]={ 10.0,9.0,8.0};//在(10.0,9.0,8.0)处创建点UF_CSYS_map_point(UF_CSYS_ROOT_WCS_COORDS,point,UF_CSYS_WORK_COORDS,point);//将工作坐标转换成绝对坐标UF_CURVE_create_point(point,&point_tag);//创建点
结果展示:
主题二:对坐标信息的访问
tag_t point_tag=NULL_TAG; double point[3]={ 10.0,9.0,8.0}; double point_coords[3]={ 0.0,0.0,0.0};//定义一个数组并初始化 装访问出的数据 //我是创建的点 UF_CSYS_map_point(UF_CSYS_ROOT_WCS_COORDS,point,UF_CSYS_WORK_COORDS,point);//将工作坐标转换成绝对坐标 UF_CURVE_create_point(point,&point_tag);//创建点 //访问点的tag_t,得到它的点坐标信息函数 UF_CURVE_ask_point_data(point_tag,point_coords); //对访问到的point_coords输出 UF_UI_open_listing_window(); for (int i=0;i<=2;i++) { char str[128]=""; sprintf(str,"%lf\t",point_coords[i]); UF_UI_write_listing_window(str); }
结果展示:
主题三:函数
函数一:listing_windows_point_data listing_windows形式输出三维数组 第2个参数是输出
//listing_windows形式输出三维数组 第2个参数是输出void listing_windows_point_data(tag_t point_tag,double *d){ double point_coords[3]={ 0.0,0.0,0.0}; UF_CURVE_ask_point_data(point_tag,point_coords); UF_UI_open_listing_window(); for (int i=0;i<=2;i++) { char str[128]=""; sprintf(str,"%lf\n",point_coords[i]); UF_UI_write_listing_window(str); } d[0]=point_coords[0]; d[1]=point_coords[1]; d[2]=point_coords[2];}
主函数内代码:
tag_t point_tag=NULL_TAG; double point[3]={ 10.0,9.0,8.0}; double point_coords[3]={ 0.0,0.0,0.0};//定义一个数组并初始化 装访问出的数据 //我是创建的点 UF_CSYS_map_point(UF_CSYS_ROOT_WCS_COORDS,point,UF_CSYS_WORK_COORDS,point);//将工作坐标转换成绝对坐标 UF_CURVE_create_point(point,&point_tag);//创建点 //访问点的tag_t,得到它的点坐标信息函数 UF_CURVE_ask_point_data(point_tag,point_coords); //对访问到的point_coords数组listing_windows输出 listing_windows_point_data(point_tag,point_coords);
函数二:listing_windows_int(int num)
// listing_windows形式输出整数void listing_windows_int(int num){ UF_UI_open_listing_window(); char str[128]=""; sprintf(str,"%d\n",num); UF_UI_write_listing_window(str);}
主函数内代码:
int num=50; listing_windows_int(num);
构建新的函数大大减少了后续测试写代码的工作量!!!