点击查看详细介绍

UF_ASSEM_create_component_part() 函数的参数解释说明、函数详细用法,以及实例代码演示

misnn 8年前 1407 0

购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008  QQ号:85585969  


函数结构:
UF_ASSEM_create_component_part
(
tag_t parent_part,
const char * new_part_name,
const char * refset_name,
const char * instance_name,
int units,
int layer,
double origin [ 3 ],
double csys_matrix [ 6 ],
int n_objects,
tag_t * objects,
tag_t * instance
)

函数说明:
创建一个新的组成部分,移动选定的对象给它,然后添加一个实例它于母 *** 的部分。任何其他的转让对象赖以给定对象依赖也被搬进组件。实例将根据设置被添加到部件列表全球开关,看UF_ASSEM_ask_assem_options。注意:对象和事件发生的部分不能移动到一个零件。如果一个对象依赖于另一个对象,它是不可转让,然后该对象不移动到部件和一个返回值UF_PART_warn_objects_not_copied的返回。操作继续虽然,以及任何其他所需的转让对象是还是搬进组件。这种情况可能会出现,因为如果其相关联的几何形状不是牵伸对象不被转移转入。如果出现任何其他错误,操作没有成功,而相应的错误代码返回。

函数参数:
第1个参数为输入:
parent_part代表参数变量,tag_t 为输入参数类型,父零件的标签

第2个参数为输入:
输入const char * 字符类型的参数,参数的变量格式为new_part_name,新组成部分的名称

第3个参数为输入:
输入const char * 字符类型的参数,参数的变量格式为refset_name,引用集名称;必须大于UF_OBJ_NAME_NCHARS字符。

第4个参数为输入:
输入const char * 字符类型的参数,参数的变量格式为instance_name,例如添加到父零件的名称;必须大于UF_OBJ_NAME_NCHARS字符。

第5个参数为输入:
输入int 整数型的参数,参数的变量格式为units,1= MM2 =英寸

第6个参数为输入:
输入int 整数型的参数,参数的变量格式为layer,-1 =原0 =使用工作层1-255=用户指定层

第7个参数为输入:
输入double 双精度类型的参数,参数的变量格式为origin [ 3 ],在母体部分的位置,其中该实例是要创建。

第8个参数为输入:
输入double 双精度类型的参数,参数的变量格式为csys_matrix [ 6 ],实例的取向

第9个参数为输入:
输入int 整数型的参数,参数的变量格式为n_objects,对象的“对象”数组中的号码。

第10个参数为输入:
objects代表参数变量,tag_t * 为输入参数类型,指针的应该移动到新的组成部分的对象的标签阵列。

第11个参数为输出:
instance代表参数变量,tag_t * 为输出参数类型,实例的标签

UF_ASSEM_create_component_part函数实例代码演示:
下面的示例创建两个多维数据集,然后将它们移动到一个新的组成部分。这个例子必须以有效的工作运行部分。
[quote]
#include <stdio.h>
#include <uf.h>
#include <uf_modl.h>
#include <uf_defs.h>
#include <uf_part.h>
#include <uf_assem.h>
/*ARGSUSED*/
extern void ufusr(char *param, int *retcod, int param_len)
{
double origin[3] = {0.0, 0.0, 0.0};
double csys[6] = {1.0, 0.0, 0.0,
0.0, 1.0, 0.0};
double corner_pts[2][3] = { {5.0, 2.0, 0.0},
{0.0, 0.0, 0.0} };
char *edge_lens[3] = {"1.0", "3.2", "1.5"};
tag_t features[2];
tag_t blocks[2];
tag_t work_part;
tag_t instance;
int units;
int status;
int i;
UF_initialize();
for (i = 0; i < 2; i++)
{
status = UF_MODL_create_block1(UF_NULLSIGN, corner_pts[i],
edge_lens, &features[i]);
if (status != 0)
{
fprintf(stderr, "Failed to create block\n");
UF_terminate();
return;
}
status = UF_MODL_ask_feat_body(features[i], &blocks[i]);
if (status != 0)
{
fprintf(stderr, "Failed to get body from block\n");
UF_terminate();
return;
}
}
work_part = UF_ASSEM_ask_work_part();
UF_PART_ask_units(work_part, &units);

status = UF_ASSEM_create_component_part(work_part, "blocks.prt",
NULL, NULL, units, 0,
origin, csys, 2, blocks,
&instance);
if (status != 0)
{
fprintf(stderr, "Failed to move blocks to new component\n");
}
UF_terminate();
}




[/quote]

0

最新回复 (0)
请登录后发表新帖