购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008 QQ号:85585969
函数结构:UF_MODL_create_boss( double location [ 3 ], double direction [ 3 ], char * diame, char * height, char * angle, tag_t face, tag_t * feature_obj_id) 函数说明:
使用给老板出身,方向,直径老板的功能,高度,刀尖角度,和位置的脸。放置面用于确定哪些面对老板关联。此输出功能是相关联的老板的对象标识符。
函数参数:
第1个参数为输入:
输入double 双精度类型的参数,参数的变量格式为location [ 3 ],老大的位置。
第2个参数为输入:
输入double 双精度类型的参数,参数的变量格式为direction [ 3 ],老大的方向。
第3个参数为输入:
输入char * 字符类型的参数,参数的变量格式为diame,老板直径。
第4个参数为输入:
输入char * 字符类型的参数,参数的变量格式为height,老板的高度。
第5个参数为输入:
输入char * 字符类型的参数,参数的变量格式为angle,老板刀尖角度。
第6个参数为输入:
face代表参数变量,tag_t 为输入参数类型,面临的RPO约束(可能是一个基准面)
第7个参数为输出:
feature_obj_id代表参数变量,tag_t * 为输出参数类型,创建老板的功能对象标识符
UF_MODL_create_boss函数实例代码演示:
描述此功能是展示一个小样本程序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]