利用ufun对部件进行操作(导入、导出)

一、概述

        在NX二次开发中我们常常会用到导入和导出命令,这些函数一般放在UF_part.h头文件下,下面针对以上有关功能结合案例进行说明。

二、功能函数说明

2.1导出函数UF_PART_export_with_options函数使用案例(导出当前显示窗口所有实体部件)

函数说明:第一个参数名称(包含路径);第二个参数导出个数;第三个参数导出模型TAG值数组;第四个参数结构体:1)部件规格:new_part=true新的,new_part=flase现有,2)params_mode特征参数,UF_PART_maintain_params保留内部参数,UF_PART_maintain_all_params,保留所有参数,UF_PART_remove_params移除参数,3)表达式传递模式,UF_PART_copy_exp_deeply复制参考的对象,UF_PART_copy_exp_shallowly链接至原先。

//用户定义
#include 
#include 
#include 
#include 
#include 
#include 

using std::vector;

//遍历当前显示窗口所有实体
vector MyClass::cycledisplaysolid()
{
	//导出部件
	vector cyclebody;

	//找到工作部件所有的体
	tag_t WorkPartTag = UF_ASSEM_ask_work_part();
	tag_t objTag = NULL_TAG;
	UF_OBJ_cycle_objs_in_part1(WorkPartTag, UF_solid_type, &objTag);

	int type;
	int subtype;
	while (objTag != NULL_TAG)
	{
		UF_OBJ_ask_type_and_subtype(objTag, &type, &subtype);
		if (!subtype)
		{
			cyclebody.push_back(objTag);
		}
		UF_OBJ_cycle_objs_in_part1(WorkPartTag, UF_solid_type, &objTag);
	}
	return cyclebody;
}




UF_initialize();
//导出部件
vector CycleExportBody;
CycleExportBody = cycledisplaysolid();
tag_t ExportBodyTag[100];
for (int j = 0; j < CycleExportBody.size(); j++)
{
	ExportBodyTag[j] = CycleExportBody[j];
}
int number = CycleExportBody.size();
UF_PART_export_options_t options12;
options12.new_part = true;
options12.expression_mode = UF_PART_copy_exp_deeply;
options12.params_mode = UF_PART_remove_params;
UF_PART_export_with_options("D:\\ug\\TKLTOOLS\\Part\\qqs.prt", number, ExportBodyTag, &options12);

2.2导入函数UF_PART_import函数使用案例(导入部件)

函数说明:导入部件,第一个参数路径;第二个参数为结构体:1)layer_mode设置模型图层,layer_mode=0工作图层,layer_mode=1原始图层, 2)group_mode是否分组,group_mode=0不分组,group_mode=1分组,3)view_mode导入视图,view_mode=0不导入视图,view_mode=1导入视图和布局,4)cam_mode关于加工信息导入,cam_mode=true导入加工信息,cam_mode=false 不导入加工信息;第三个参数目标坐标系,wcs坐标系,指定坐标系;第四个参数,坐标原点;第五个参数比例,第六个参数,如果分组输出组件tag

UF_initialize();
	
UF_import_part_modes_t modes;
modes.layer_mode = 0;//工作图层
modes.group_mode = 0;//不创建组
modes.view_mode = 0;//不导入视图和布局
modes.cam_mode = false;//不导入加工信息
double dest_csys[6] = { 1.0,0.0,0.0,0.0,1.0,0.0 };
double dest_point[3] = { 0.0,0.0,0.0 };
double scale = 1.0;
tag_t group = NULL_TAG;
UF_PART_import("C:\\Users\\NINGMEI\\Desktop\\part\\qqs.prt", &modes, dest_csys, dest_point, scale, &group);

UF_terminate();

你可能感兴趣的:(NX二次开发常用函数,ug二次开发,NX二次开发,NX二次开发常用函数)