购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008 QQ号:85585969
函数结构:UF_DIE_ask_draw_faces( int type_of_tool, int * num_faces, tag_t * * faces) 函数说明:
下面的函数将提供的面的各种工具。用于粘合剂环和冲头返回的面将基于所述最后DIE_BINDER_RING功能。如果在没有DIE_BINDER_RING特征部分,没有面孔将被退回。为模面返回的面将经DIE_FACE特征相同的操作中可根据该最后DIE_BINDER_RING存在。如果没有DIE_FACE特征,所述属于DIE_OUTPUT功能,是对孩子的脸上述DIE_BINDER_RING功能返回。
函数参数:
第1个参数为输入:
输入int 整数型的参数,参数的变量格式为type_of_tool,0 =压边圈,1 =冲床,2 =面对死亡
第2个参数为输出:
输出int * 整数型的参数,参数的变量格式为num_faces,刀具面数要求
第3个参数为输出:
faces代表参数变量,tag_t * * 为输出参数类型,为工具面阵列要求
UF_DIE_ask_draw_faces函数实例代码演示:
描述该程序演示如何使用下面的开放的API函数:UF_DIE_ask_draw_facesUF_DIE_ask_material_properties项目描述下面的例子中需要含有的每一个的一种的开口部分以下特点:DIE_BINDER_RINGDIE_FACE和产物片体材料型属性相关联。此功能将使三个电话给UF_DIE_ask_draw_faces,为每个类型的面的,我们希望找到并高亮每个组面具有信息性消息。最后,它将为UF_DIE_ask_material_properties打电话找表金属的厚度和材料属性和显示的厚度和材料名称在infomrational消息。
[quote]
#include <stdio.h>
#include <uf.h>
#include <uf_defs.h>
#include <uf_dieeng.h>
#include <uf_disp.h>
#include <uf_ui.h>
#include <uf_sf.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 void do_ugopen_api(void)
{
tag_t material_type_tag, *faces;
double metal_thickness;
int num_faces, response, ii;
int highlight = 1, unhighlight = 0;
char *binder_faces_msg = "Binder Ring faces are highlighted";
char *punch_faces_msg = "Die Punch faces are highlighted";
char *die_face_faces_msg = "Die Face faces are highlighted";
char material_msg[MAX_LINE_SIZE+1], *string_msg;
char *material_name;
UF_SF_material_prop_t material_properties;
/* Find faces for binder ring */
UF_CALL(UF_DIE_ask_draw_faces(0, /* ask for binder ring faces */
&num_faces,
&faces));
/* Highlight faces for binder ring */
for (ii=0; ii<num_faces; ii++)
UF_DISP_set_highlight(faces[ii],highlight);
UF_UI_message_dialog( "", UF_UI_MESSAGE_INFORMATION, &binder_faces_msg, 1, TRUE, NULL, &response );
for (ii=0; ii<num_faces; ii++)
UF_DISP_set_highlight(faces[ii],unhighlight);
if (faces)
UF_free(faces);
/* Find faces for punch */
UF_CALL(UF_DIE_ask_draw_faces(1, /* ask for die punch faces */
&num_faces,
&faces));
/* Highlight faces for punch */
for (ii=0; ii<num_faces; ii++)
UF_DISP_set_highlight(faces[ii],highlight);
UF_UI_message_dialog( "", UF_UI_MESSAGE_INFORMATION, &punch_faces_msg, 1, TRUE, NULL, &response );
for (ii=0; ii<num_faces; ii++)
UF_DISP_set_highlight(faces[ii],unhighlight);
if (faces)
UF_free(faces);
/* Find faces for die face */
UF_CALL(UF_DIE_ask_draw_faces(2, /* ask for die face faces */
&num_faces,
&faces));
/* Highlight faces for die face */
for (ii=0; ii<num_faces; ii++)
UF_DISP_set_highlight(faces[ii],highlight);
UF_UI_message_dialog( "", UF_UI_MESSAGE_INFORMATION, &die_face_faces_msg, 1, TRUE, NULL, &response );
for (ii=0; ii<num_faces; ii++)
UF_DISP_set_highlight(faces[ii],unhighlight);
if (faces)
UF_free(faces);
/* Find part thickness and material properties */
UF_CALL(UF_DIE_ask_material_properties(&metal_thickness, /* ask for die face faces */
&material_type_tag));
/* Display message with thickness and material property name */
if (material_type_tag)
{
UF_SF_ask_material(material_type_tag,
&material_name,
&material_properties);
UF_SF_free_matl_prop(&material_properties);
sprintf(material_msg,"Metal Thickness %f, Material Name %s",
metal_thickness, material_name);
string_msg = material_msg;
UF_UI_message_dialog( "",
UF_UI_MESSAGE_INFORMATION,
&string_msg,
1,
TRUE,
NULL,
&response );
UF_free(material_name);
}
/* No material property, just display message with thickness */
else
{
sprintf (material_msg,"Metal Thickness %f",
metal_thickness);
string_msg = material_msg;
UF_UI_message_dialog( "",
UF_UI_MESSAGE_INFORMATION,
&string_msg,
1,
TRUE,
NULL,
&response );
}
}
/*ARGSUSED*/
void ufusr(char *param, int *retcode, int paramLen)
{
if (!UF_CALL(UF_initialize()))
{
do_ugopen_api();
UF_CALL(UF_terminate());
}
}
int ufusr_ask_unload(void)
{
return (UF_UNLOAD_IMMEDIATELY);
}
[/quote]