利用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 <uf_modl.h>
#include <uf_assem.h>
#include <uf_obj.h>
#include <uf_ui_ugopen.h>
#include <uf_part.h>
#include <vector>

using std::vector;

//遍历当前显示窗口所有实体
vector<tag_t> MyClass::cycledisplaysolid()
{
	//导出部件
	vector<tag_t> 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<tag_t> 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();

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白雪公主的后妈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值