购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008 QQ号:85585969
函数结构:UF_DRF_ask_centerline_info( tag_t centerline_tag, UF_DRF_valid_cline_form_t * centerline_type, double centerline_origin [ 3 ], UF_DRF_centerline_info_p_t * centerline_info) 函数说明:
返回中心线类型,中心线对象的数量,和中心线数据给出指定中心线标签。对于圆形和螺栓圆周中心线,则总是返回中心点方法为centerline_type。对于偏移中心线的圆柱形,UF_DRF_offcyl_cline总是返回centerline_type。使用UF_DRF_ask_associativity_data查询中心线的关联性数据包括相关的位置(S)的坐标。
函数参数:
第1个参数为输入:
centerline_tag代表参数变量,tag_t 为输入参数类型,中心线的标签
第2个参数为输出:
centerline_type代表参数变量,UF_DRF_valid_cline_form_t * 为输出参数类型,中心线的类型(见uf_drf_types.h)
第3个参数为输出:
输出double 双精度类型的参数,参数的变量格式为centerline_origin [ 3 ],中线起源
第4个参数为输出:
centerline_info代表参数变量,UF_DRF_centerline_info_p_t * 为输出参数类型,中线信息。这必须通过调用UF_DRF_free_centerline释放。
UF_DRF_ask_centerline_info函数实例代码演示:
在下面的示例中的代码查询中心线信息。
[quote]
#include <stdio.h>
#include <uf.h>
#include <uf_assem.h>
#include <uf_defs.h>
#include <uf_drf.h>
#include <uf_obj.h>
#include <uf_object_types.h>
#include <uf_part.h>
void ufusr(char *param, int *retcod, int param_len)
{
int ifail = 0;
int subtype, type;
tag_t centerline_tag = NULL_TAG;
char error_message[133] = "";
double centerline_origin[ 3 ];
UF_DRF_valid_cline_form_t centerline_type;
UF_DRF_centerline_info_t *centerline;
/* Initialize NX Open API. */
ifail = UF_initialize();
/* Find the tag to a drafting entity. */
ifail = UF_OBJ_cycle_objs_in_part( UF_ASSEM_ask_work_part(),
UF_drafting_entity_type,
¢erline_tag );
/* Retrieve the object subtype. */
if( !ifail && centerline_tag )
{
ifail = UF_OBJ_ask_type_and_subtype( centerline_tag,
&type, &subtype );
}
/* Test centerline subtype. */
if( !ifail && ( subtype >= UF_draft_linear_cntrln_subtype
&& subtype <= UF_draft_sym_cntrln_subtype ))
{
ifail = UF_DRF_ask_centerline_info ( centerline_tag,
¢erline_type,
¢erline_origin[0],
¢erline );
/* Free the memory that contains centerline information.*/
if( !ifail )
{
UF_DRF_free_centerline( ¢erline );
}
}
printf( "UF_DRF_ask_centerline_info sample " );
if( ifail )
{
ifail = UF_get_fail_message( ifail, error_message );
printf( "fails.\nError is: %s\n", error_message );
}
else
printf( "is successful.\n" );
UF_terminate();
}
[/quote]