iCAx开思网

标题: ugapi里面导出parasolid等文件的函数是那个啊? [打印本页]

作者: my_dear2002    时间: 2008-4-1 18:03
标题: ugapi里面导出parasolid等文件的函数是那个啊?
请大侠告知,找了一天没找到,ufpart export不能导出parasolid格式的啊
含泪跪谢
作者: cam-yp    时间: 2008-4-2 08:36
extern int UF_PS_export_data (
uf_list_p_t body_list,
char * file_name );
作者: my_dear2002    时间: 2008-4-2 10:25
我用老大您的这个方法导出parasolid文件,只能导出一次啊,file_name = "d:pp.x_t",导出后我在adams里面看到是空的没东西,然后再次运行死活报错,我都将pp.x_t删除了,然后命名为别的file_name还是不行,需要调用别的删除吗》?

原帖由 cam-yp 于 2008-4-2 08:36 发表
extern int UF_PS_export_data (
uf_list_p_t body_list,
char * file_name );

作者: cam-yp    时间: 2008-4-2 12:56
原帖由 my_dear2002 于 2008-4-2 10:25 发表
我用老大您的这个方法导出parasolid文件,只能导出一次啊,file_name = "d:pp.x_t",导出后我在adams里面看到是空的没东西,然后再次运行死活报错,我都将pp.x_t删除了,然后命名为别的file_name还是不 ...

函数是没有错的,我用的就是这个
file_name = "d:pp.x_t",  应该是file_name = "d:\\pp.x_t",

还有你要create LIST ,不要直接把SOLID 当作 LIST导出
作者: my_dear2002    时间: 2008-4-2 16:46
我把源码贴给你看看啊,这个不会报错但是倒不出来啊
    int errorCode = UF_initialize();

    if ( 0 == errorCode )
    {
                  char            part_fspec[MAX_FSPEC_SIZE+1];
                  int             curr_part, num_parts;
                  int             type;
                  int             count_1;
                  tag_t           part;
                  tag_t           feature;
                  uf_list_t *tag_list;//创建链表放所有的solid的tag
                  UF_MODL_create_list(&tag_list);
                  /* Get the total number of loaded parts. */
                  num_parts = UF_PART_ask_num_parts();
                  for ( curr_part=0 ; curr_part < num_parts ; curr_part++ )
                  {
                        /* Get the part tag for the current part number of the
                           loaded part and get its part name.
                        */
                        part = UF_PART_ask_nth_part( curr_part );
                        UF_PART_ask_part_name( part, part_fspec );
                        printf( title0, part_fspec );
                        count_1 = 0;
                        type = UF_solid_type;
                        feature = NULL_TAG;
                        /* Start the cycling process by passing in a NULL_TAG. */
                        UF_OBJ_cycle_objs_in_part( part, type, &feature );
                        UF_MODL_put_list_item(tag_list,feature);//添加tag值
                        /* Keep cycling until there are no more features to cycle. */
                        while ( feature != NULL_TAG )
                        {
                                int status = UF_OBJ_cycle_objs_in_part( part, type, &feature );
                                status = UF_MODL_put_list_item(tag_list,feature);//添加tag值
                        }
                        char filepath[20];
                        filepath[0] = '\0';
                        strcpy(filepath, "d:\\dddd.x_t");
                        UF_PS_export_data(tag_list,filepath);//导出parasolid文件
                        uc1601("dddddddddd",1);
                  }
                errorCode = UF_terminate();               
    }

原帖由 cam-yp 于 2008-4-2 12:56 发表

函数是没有错的,我用的就是这个
file_name = "d:pp.x_t",  应该是file_name = "d:\\pp.x_t",

还有你要create LIST ,不要直接把SOLID 当作 LIST导出

作者: my_dear2002    时间: 2008-4-2 16:51
我都调到里面单步调试了,没有问题的,但是就是到不出来啊
作者: my_dear2002    时间: 2008-4-2 17:15
版主俊男,小弟我倒出来了,但是在adams里面导入这个文件什么都不显示,我手动从ug导出parasolid导入adams一样不显示,显然不是程序问题了,为什么adams不显示呢,请大侠继续指教,谢谢
作者: airen    时间: 2008-4-2 20:30
函数错误啦,不是这个倒出的
作者: zzz    时间: 2008-4-2 20:46
只用UF_solid_type去cycle是不行的,这样遍历到的对象不止是solid body,
还包括face,edge等,还要进一步判断subtype
作者: fourwood_0328    时间: 2008-4-2 22:10
zzz还活着?!
作者: my_dear2002    时间: 2008-4-3 09:50
请教您老几个问题啊
1、导出parasolid格式只导出solid在别的软件能用吗?我导出面啥的不是这个模型更完整吗?
2、怎么判断subtype来判断呢?麻烦告知详情,不胜感激。

原帖由 zzz 于 2008-4-2 20:46 发表
只用UF_solid_type去cycle是不行的,这样遍历到的对象不止是solid body,
还包括face,edge等,还要进一步判断subtype

作者: cam-yp    时间: 2008-4-6 08:54
原帖由 my_dear2002 于 2008-4-3 09:50 发表
请教您老几个问题啊
1、导出parasolid格式只导出solid在别的软件能用吗?我导出面啥的不是这个模型更完整吗?
2、怎么判断subtype来判断呢?麻烦告知详情,不胜感激。


parasolid在API帮助里面特别说明是针对SOLID的,所以你还要判断SOLID是不是真正的实体,真如ZZZ所说
作者: my_dear2002    时间: 2008-4-6 13:54
请问:我怎么判断才能确定是真正的solid呢?


原帖由 cam-yp 于 2008-4-6 08:54 发表

parasolid在API帮助里面特别说明是针对SOLID的,所以你还要判断SOLID是不是真正的实体,真如ZZZ所说

作者: cam-yp    时间: 2008-4-7 12:58
ask_subtype
作者: zzz    时间: 2008-4-8 09:50
UF_OBJ_ask_type_and_subtype()




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3