iCAx开思网

标题: 跪求怎样用二次开发函数偏移一个加厚体上的某个表面 [打印本页]

作者: wangyong_1982    时间: 2011-10-25 16:59
标题: 跪求怎样用二次开发函数偏移一个加厚体上的某个表面
之前做了一下用的UF_MODL_create_face_offset可是便宜之后不是单独的一个面偏移了 而是整个实体变厚了
作者: qindongjun88    时间: 2011-10-26 08:45
你要先找到你所要偏移的那个面才行!!!!
作者: tomaini    时间: 2011-10-26 09:35
同意楼上,帖段代码看下
作者: wangyong_1982    时间: 2011-10-27 19:55
是这样的我本来有一个面,然后加厚了,程序改动了现在如果是选择 原来那个面可以进行偏移了,但是如果选择的是加厚产生的那一面就不行,可问高手怎样解决?
作者: wangyong_1982    时间: 2011-10-27 19:56
qindongjun88 发表于 2011-10-26 08:45
你要先找到你所要偏移的那个面才行!!!!

是这样的我本来有一个面,然后加厚了,程序改动了现在如果是选择 原来那个面可以进行偏移了,但是如果选择的是加厚产生的那一面就不行,可问高手怎样解决?
作者: wangyong_1982    时间: 2011-10-27 19:58
    UpdateData(true);                                    
       
        double translation[3]={0,0,0};  
        double matrix[16];
        FTN(uf5943)(translation, matrix);
       
        tag_t objects[1];
        //tag_t body_tag;
        //UF_MODL_ask_feat_body(m_surftest, &body_tag);
        objects[0]=m_OBJsId3[0];
        int n_objects=1;
        int move_or_copy=2; //wrhit copy
        int dest_layer=-1;
        int trace_curves=2;
        tag_t copies[1];
        tag_t trace_curve_group[1];
        int status;
        FTN(uf5947)(matrix, objects, &n_objects,&move_or_copy,
                &dest_layer, &trace_curves, copies,trace_curve_group,
                &status);

   uf_list_p_t feature_tag_list;
   UF_MODL_create_list(&feature_tag_list);
   UF_MODL_ask_body_feats(copies[0],&feature_tag_list );

    char str[5];
        itoa(m_offset3, str, 10);
        char *offset=str;  
              tag_t feat;
        UF_MODL_ask_list_item(feature_tag_list,0,&feat);
       
        uf_list_t features;
       
        features.eid=feat;
        features.next=NULL;

        UF_MODL_create_feature_offset(offset, &features, &m_OffsetSurf3);
        UF_MODL_delete_list(&feature_tag_list);
作者: qindongjun88    时间: 2011-10-28 12:37
经过转换后,copies[0]已经不是一个特征了,你用UF_MODL_copy_paste_features()来代替uf5947吧......
作者: ZHOUN    时间: 2011-10-28 13:24
帮你顶一顶。。。




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