购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008 QQ号:85585969
函数结构:UF_MODL_create_rect_pocket( double location [ ], double direction [ ], double x_dir [ ], char * len [ 3 ], char * corner, char * floor, char * angle, tag_t face, tag_t * feature_obj_id) 函数说明:
使用位置,方向,X创建一个矩形凹槽功能方向,大小,圆角半径,半径地板和锥角。 随着这些物品放置一个面子需要,以确定哪些面对口袋被关联到。此函数的输出是对象关联于矩形腔标识符。
函数参数:
第1个参数为输入:
输入double 双精度类型的参数,参数的变量格式为location [ ],矩形腔的位置。
第2个参数为输入:
输入double 双精度类型的参数,参数的变量格式为direction [ ],矩形腔的方向。
第3个参数为输入:
输入double 双精度类型的参数,参数的变量格式为x_dir [ ],矩形腔x方向。
第4个参数为输入:
输入char * 字符类型的参数,参数的变量格式为len [ 3 ],矩形口袋大小。
第5个参数为输入:
输入char * 字符类型的参数,参数的变量格式为corner,矩形腔圆角半径。
第6个参数为输入:
输入char * 字符类型的参数,参数的变量格式为floor,矩形腔地板半径。
第7个参数为输入:
输入char * 字符类型的参数,参数的变量格式为angle,矩形腔锥角。
第8个参数为输入:
face代表参数变量,tag_t 为输入参数类型,脸上的RPO约束(可能是一个基准面)。
第9个参数为输出:
feature_obj_id代表参数变量,tag_t * 为输出参数类型,创建矩形特征对象标识符。 口袋
UF_MODL_create_rect_pocket函数实例代码演示:
描述此功能是展示一个小样本程序UF_MODL_create_boss,UF_MODL_create_rect_pad的调用,和UF_MODL_create_rect_pocket。它被放置我们直接文档UFUN在开始的包括语句。
[quote]
#include <stdio.h>
#include <uf.h>
#include <uf_defs.h>
#include <uf_modl.h>
#include <uf_modl_primitives.h>
#include <uf_part.h>
/* ARGSUSED */
void ufusr(char *param, int *retcod, int param_len)
{
int ifail=0;
int units=1; /*1=metric, 2=english*/
char error_message[MAX_LINE_SIZE + 1];
char * prtnam = "cre_fea_by_dtm_tst";
char * blk_edg_len[3] = {"50", "60", "70"};
char * pad_size[3]={"5","6","5.5"};
char * pock_len[3]={"6.2","6.3","6.4"};
char * boss_diam="5";
char * boss_height="6";
char * boss_ang="10";
char * pad_corner="1";
char * pad_ang="10";
char * pock_corner="3";
char * pock_floor=".1";
char * pock_ang="5";
tag_t blk_tag;
tag_t targ_tag=NULL_TAG;
tag_t plane_tag;
tag_t boss_tag;
tag_t pad_tag;
tag_t pock_tag;
tag_t part_tag;
double blk_corner[3] = {0,0,0};
double planepnt[3]={0,0,0};
double planedir[3]={1,0,0};
double boss_loc[3]={0,45,65};
double boss_dir[3]={-1,0,0};
double pad_loc[3]={0,45,15};
double pad_dir[3]={-1,0,0};
double pad_x_dir[3]={0,0,-1};
double pock_loc[3]={0,45,35};
double pock_dir[3]={1,0,0};
double pock_x_dir[3]={0,0,-1};
ifail = UF_initialize();
if( !ifail )
{
/* Create new part. */
ifail = UF_PART_new( prtnam, units, &part_tag );
}
if( !ifail )
{
/* Create block. */
ifail = UF_MODL_create_block( UF_NULLSIGN, targ_tag,
blk_corner, blk_edg_len,
&blk_tag );
}
if( !ifail )
{
/* Create fixed datum plane. */
ifail = UF_MODL_create_fixed_dplane( planepnt, planedir,
&plane_tag );
}
if( !ifail )
{
/* Create Boss */
ifail = UF_MODL_create_boss( boss_loc, boss_dir, boss_diam,
boss_height, boss_ang, plane_tag,
&boss_tag );
}
if( !ifail )
{
/* Create Pad */
ifail = UF_MODL_create_rect_pad( pad_loc, pad_dir, pad_x_dir,
pad_size, pad_corner, pad_ang,
plane_tag, &pad_tag);
}
if( !ifail )
{
/* Create Pocket */
ifail = UF_MODL_create_rect_pocket( pock_loc, pock_dir,
pock_x_dir,pock_len,
pock_corner, pock_floor,
pock_ang, plane_tag, &pock_tag);
}
printf( "UF_MODL_cre_fea_by_dtm sample " );
if( ifail )
{
ifail = UF_get_fail_message( ifail, error_message );
printf( "fails.\nError is: %s\n", error_message );
}
else
printf( "is successful.\n" );
ifail = UF_terminate();
}
[/quote]