NX二次开发 定向视图窗口 C++源代码
时间: 2023-09-08 20:11:44 浏览: 162
C++的一个窗口源代码
以下是使用C语言编写的NX二次开发定向视图窗口的源代码:
```c
#include <stdio.h>
#include <uf.h>
#include <uf_ui.h>
#include <uf_disp.h>
/* 定义窗口ID */
static int view_win_id = 0;
/* 定义视图ID */
static tag_t view_tag = NULL_TAG;
/* 定义窗口回调函数 */
static void view_win_cb(int response, int id, void *call_data, void *client_data)
{
switch (response)
{
case UF_UI_OK: /* 窗口关闭时销毁视图 */
UF_DISP_destroy_view(view_tag);
break;
case UF_UI_CANCEL: /* 窗口取消时不销毁视图 */
break;
default:
break;
}
view_win_id = 0;
}
/* 定义打开定向视图窗口的函数 */
extern int open_view_win(tag_t part_tag, double x_dir[3], double y_dir[3])
{
int status = 0;
char *view_name = "Directional View"; /* 定向视图名称 */
UF_DISP_view_orientation_t view_orient; /* 定向视图方向 */
UF_DISP_view_creation_t view_create; /* 定义视图创建参数 */
/* 创建定向视图方向 */
view_orient.type = UF_DISP_VIEW_ORIENTATION;
view_orient.dir_type = UF_DISP_VIEW_ORIENTATION_DIR;
view_orient.direction[0] = x_dir[0];
view_orient.direction[1] = x_dir[1];
view_orient.direction[2] = x_dir[2];
view_orient.up_direction[0] = y_dir[0];
view_orient.up_direction[1] = y_dir[1];
view_orient.up_direction[2] = y_dir[2];
/* 创建视图 */
view_create.type = UF_DISP_VIEW_CREATION;
view_create.view_type = UF_DISP_SAVED_VIEW;
view_create.view_subtype = UF_DISP_SAVED_VIEW_ORTHOGRAPHIC;
view_create.view_name = view_name;
view_create.view_orient = &view_orient;
view_create.is_view_from_part = true;
view_create.part_tag = part_tag;
view_create.view_tag = &view_tag;
status = UF_DISP_create_view(&view_create); /* 创建视图 */
if (status != UF_DISP_NO_ERROR)
{
printf("Failed to create view.\n");
return status;
}
/* 打开定向视图窗口 */
if (view_win_id == 0)
{
status = UF_UI_open_listing_window("Directional View", &view_win_id);
if (status != UF_UI_SUCCESS)
{
printf("Failed to open view window.\n");
return status;
}
}
/* 显示视图 */
UF_DISP_show_view(view_tag, false);
/* 注册窗口回调函数 */
UF_UI_set_response(view_win_id, view_win_cb, NULL);
return UF_DISP_NO_ERROR;
}
```
使用以上代码,可以创建一个打开定向视图窗口的函数`open_view_win`。该函数接受三个参数:
- `part_tag`:需要创建定向视图的部件标签。
- `x_dir`:定向视图的横向方向向量。
- `y_dir`:定向视图的纵向方向向量。
在函数内部,首先创建定向视图方向`view_orient`和视图创建参数`view_create`,然后调用`UF_DISP_create_view`函数创建视图。如果创建视图成功,则打开定向视图窗口,并使用`UF_DISP_show_view`函数显示视图。最后,注册窗口回调函数`view_win_cb`,以便在窗口关闭时销毁视图。
阅读全文