购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008 QQ号:85585969
函数结构:UF_PS_create_ps_trimmed_curve( tag_t curve_or_edge, tag_t * ps_curve) 函数说明:
创建从NX曲线或边缘对象的Parasolid修剪曲线。输入实体不受此例程。
函数参数:
第1个参数为输入:
curve_or_edge代表参数变量,tag_t 为输入参数类型,NX的曲线或边缘实体的标签
第2个参数为输出:
ps_curve代表参数变量,tag_t * 为输出参数类型,在修剪的Parasolid曲线的标签
UF_PS_create_ps_trimmed_curve函数实例代码演示:
此示例程序创建一个圆锥体,然后创建的Parasolid从锥体的两个圆形边缘修整曲线。注意,该轮廓曲线不使用此功能创建的。
[quote]
#include <stdio.h>
#include <uf.h>
#include <uf_modl.h>
#include <uf_assem.h>
#include <uf_curve.h>
#include <uf_layout.h>
#include <uf_view.h>
#define UF_CALL(X) (report( __FILE__, __LINE__, #X, (X)))
static int report( char *file, int line, char *call, int irc)
{
if (irc)
{
char messg[133];
printf("%s, line %d: %s\n", file, line, call);
(UF_get_fail_message(irc, messg)) ?
printf(" returned a %d\n", irc) :
printf(" returned error %d: %s\n", irc, messg);
}
return(irc);
}
static int example1
(
void
);
/*--------------------------------------------------------------*/
static int example1(void)
{
tag_t part_tag;
double origin_point[3];
double direction[3];
char * height = "10";
char * diam[] = {"5", "2"};
tag_t cone_feature_tag;
tag_t cone_tag;
int edge_count, i;
uf_list_p_t edges;
tag_t edge_id;
tag_t ps_curves[50];
/*
First create a part in which we will initially create a
block.
*/
UF_CALL(UF_PART_new( "uf_trim_curve_test_part", UF_PART_ENGLISH
, &part_tag
));
origin_point[0] = 0.0;
origin_point[1] = 0.0;
origin_point[2] = 0.0;
direction[0] = 0.1;
direction[1] = 0.2;
direction[2] = 0.3;
UF_CALL(UF_MODL_create_cone1( UF_NULLSIGN,
origin_point,
height,
diam,
direction,
&cone_feature_tag ));
UF_CALL(UF_MODL_ask_feat_body( cone_feature_tag, &cone_tag ));
UF_CALL(UF_MODL_ask_body_edges( cone_tag, &edges ));
UF_CALL(UF_MODL_ask_list_count(edges, &edge_count));
for (i=0;i< edge_count;i++)
{
UF_CALL(UF_MODL_ask_list_item(edges,i,&edge_id));
UF_CALL(UF_PS_create_ps_trimmed_curve(edge_id,
&ps_curves[i]));
}
UF_CALL(UF_MODL_delete_list(&edges));
return 0;
}
/*ARGSUSED*/
extern void ufusr(char *param, int *return_value, int paramLen)
{
if (! UF_CALL(UF_initialize()))
{
*return_value = example1();
UF_CALL(UF_terminate());
}
}
[/quote]