找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 16220|回复: 7
打印 上一主题 下一主题

请教有关ug函数参数的问题?

[复制链接]
跳转到指定楼层
1
发表于 2005-12-31 15:01:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
static void do_ugopen_api(void)
{
    char cue[] = "cue message";
    char title[] = "dialog title";
    int response;
    tag_t object, view;
    double cursor[3];
    if(!UF_CALL(UF_UI_select_with_single_dialog(cue,title,
                   UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,
                   &response, &object, cursor, &view)))
    {
        if (response == UF_UI_OBJECT_SELECTED ||
            response == UF_UI_OBJECT_SELECTED_BY_NAME)
        {
            printf("object tag = %d\n", object);
            if (response == UF_UI_OBJECT_SELECTED)
            {
                printf("view = %d\n", view);
                printf("cursor position = %f %f %f\n",
                        cursor[0], cursor[1], cursor[2]);
            }
        }
        /* unhighlight selected object */
        UF_DISP_set_highlight(object,0);
    }
}
/* selection initialization procedure */
static int init_proc(
    UF_UI_selection_p_t select,
    void* user_data)
{
num_triples = 2;
    UF_UI_mask_t mask_triples[] = {
         UF_line_type, 0, 0,
         UF_solid_type, 0, UF_UI_SEL_FEATURE_ANY_EDGE};

UF_UI_mask_s只有三个数据成员object_type、object_subtype、solid_type,但是这个例子里面确是6个,搞不懂怎么回事?特此请教

    /* enable only lines and edges */
    if((UF_CALL(UF_UI_set_sel_mask(select,
            UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
            num_triples, mask_triples))) == 0)
    {
        return (UF_UI_SEL_SUCCESS);
    }
    else
    {
        return (UF_UI_SEL_FAILURE);
    }
}

[ 本帖最后由 zxdawn 于 2005-12-31 07:17 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2005-12-31 15:05:50 | 只看该作者
这是一个选择line的程序,我想改为既可以选择line又可以选择face的程序,不知如何实现?
3
发表于 2005-12-31 15:24:10 | 只看该作者
int num_triples = 2;
UF_UI_mask_t mask_triples[] = {
         {UF_line_type, 0, 0},
         {UF_face_type, 0,0}};
实际上有点像是两维数组,每三个一组,所以叫triples,每一组是你可以选的类型。
以上那个就是又可以选线,又可以选face的。它有两组,所以num_triples 是2

[ 本帖最后由 supergirl 于 2005-12-31 15:25 编辑 ]
4
发表于 2005-12-31 15:36:10 | 只看该作者
to  supergirl
我按照你说的改了,但还是只能选择line不能选择face
5
发表于 2005-12-31 15:49:54 | 只看该作者
我刚试过了,是没有问题的,line和face都可以选的,以下是我的code,你参考一下。
你确定你要选的东东是face而不是什么sheet body之类的?经常有人搞错的说

    int error = 0;

    UF_UI_mask_t face_line_mask[2] = { { UF_line_type, 0, 0 },
                                       { UF_face_type, 0, 0 } };
    UF_STYLER_item_value_type_t sel_data;

    /* get dialog selection item */
    sel_data.item_id   = UF_STYLER_DIALOG_INDEX;
    sel_data.item_attr = UF_STYLER_SELECTION;
    error = UF_STYLER_ask_value( dialog_id, &sel_data );
   
    /* set selection type */
    UF_UI_set_sel_type( sel_data.value.selection, UF_UI_SEL_TYPE_SINGLE_SELECTION );
   
    /* set selection mask */
    error = UF_UI_set_sel_mask( sel_data.value.selection,  /* selection */
                                UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC, /* all type in mask are allowed */
                                2,                         /* number of mask */
                                face_line_mask );               /* mask types */
6
发表于 2005-12-31 15:55:04 | 只看该作者
好的,我去试试,谢谢你啊
7
发表于 2005-12-31 17:32:45 | 只看该作者
一直在UF_obj_types.h里找类型,一个对象类型也找不到。仔细看了看文档,才知道都在UF_object_types.h中。

感觉这头文件,弄的有些乱了。
8
发表于 2005-12-31 18:07:07 | 只看该作者
UG的object感觉是有些乱,好像什么东东,只要它有个tag都是object,真是搞得人晕晕的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-27 15:55 , Processed in 0.027173 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表