iCAx开思网

标题: 求助,UG装配二次开发 [打印本页]

作者: obana    时间: 2007-3-2 22:19
标题: 求助,UG装配二次开发
小弟做了个装配二次开发的程序,出了点小问题,现在急着出结果,哪位大虾能帮上忙的,不胜感激!!
问题如下:

把两个零件装配到一起,用了三个装配约束关系,定义了一个函数addmate,施加单独的装配约束均能成功
但是只要把三个装配约束加到一起,就不行了,后两个加不上去,但零件位置的确变化了。

UF_ASSEM_solve_mc和UF_ASSEM_apply_mc_data返回值也是对的,约束查看窗口里只能看到一个约束,另外从自由度上看,后朗个约束的确没加上去。

快崩溃了!!!

addmate函数的代码如下,
        UF_ASSEM_init_mc (&ftf);  //初始化约束关系
        ftf.name=NULL;
        ftf.user_name=FALSE;
        ftf.suppressed=FALSE;
        ftf.num_constraints=1;
               
        ftf.constraints[0].name = NULL;
        ftf.constraints[0].user_name = FALSE;


        ftf.constraints[0].from_status = UF_ASSEM_ok;
        ftf.constraints[0].to_status = UF_ASSEM_ok;
       
        //约束类型
        //mod by obana 20070302
        ftf.constraints[0].mate_type=UF_ASSEM_v16_mate;


        //自己定义的得到occ和inst的函数,测试没问题
        ftf.constraints[0].from_part_occ = GetOccByName((const char*)pfrom1->text);

        ftf.mated_object=GetInstByName((const char*)pfrom2->text); /////
               

        ftf.constraints[0].to_part_occ = GetOccByName((const char*)pto1->text);
        ftf.constraints[0].from = GetPrtoByName((char*)pto2->text);

        ftf.constraints[0].to = GetPrtoByName((char*)pPrto->text);
       
        ftf.constraints[0].offset = NULL_TAG;

        ret=UF_ASSEM_solve_mc (&ftf, &status, &dof, transform);//条件计算
        if(ret != 0)
        {
                UF_get_fail_message(ret,message);
                UF_UI_write_listing_window("solve_mc failed!!");
                UF_UI_write_listing_window("\n");
        }
        UF_UI_write_listing_window("solve_mc success!!");
        UF_UI_write_listing_window("\n");
        if (ret==0||status==UF_ASSEM_mc_solved)
        {
                ret=UF_ASSEM_apply_mc_data (&ftf, &struct_status, &status );//执行匹配
                return TRUE;
        }
        else
                return FALSE;
作者: UGstady    时间: 2007-6-9 20:08
顶一贴
作者: diruijing    时间: 2011-11-28 16:28
haodongxi
作者: diruijing    时间: 2011-11-28 22:16
搂主能把源代码发上来学习学习吗




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