zoukankan      html  css  js  c++  java
  • 【NX二次开发】镜像对象

    使用uf5946获取镜像矩阵
    注意:uf5946镜像这个函数,只能用#define UF_plane_type=46这种类型的数据作为镜像面,不能用#define UF_datum_plane_type=197这种类型的数据作为镜像面。

    镜像对象:

    extern DllExport void ufusr(char *param, int *returnCode, int rlen)
    {
        uc1601("镜像体",1);
        UF_initialize();
        tag_t tagBody0 = 44973;
        tag_t tagBody1 = 44764;
        tag_t tagBody2 = 45086;
        tag_t tagBody3 = 44749;
    
        double dP1[3] = { 0.0,0.0,0.0 };
        double dDir[3] = { 0.0,1.0,0.0 };
        tag_t tagPlane;
        UF_MODL_create_plane(dP1, dDir, &tagPlane);
    
        //获取转换矩阵
        double douMatris[12];
        int iSt = 0;
        tag_t tagPlanes[] = { tagPlane };
        uf5946(tagPlanes, douMatris, &iSt);
    
        tag_t tagObjs[] = { tagBody0,tagBody1,tagBody2,tagBody3 };
        int iCount = 4;
        int iMoveOrCopy = 2;//1:Move 2:Copy
        int iDestLayer = 0;    //0:原来的图层 //-1活动的图层  //1-256指定的图层
        int iTraceCurves = 1;//轨迹状态,1:开,2:关。
        tag_t tagCopies = NULL_TAG; //变化后坐标tag  复制的对象标识符的列表。当move_or_copy等于1 (move)时不使用。
                                    //当move_or_copy为2(copy)时,调用者必须将其赋予足够大的维度,以包含对象数组中相同数量的对象。
        tag_t tagTraceCurveGroup = NULL_TAG; //一组轨迹曲线。当trace_curves输入被设置为2(off)时,不会使用这个函数。
        int iStatus = 0;//0:成功 1-12错误
        if (iSt == 0)
        {
            //转换的实现
            uf5947(douMatris, tagObjs, &iCount, &iMoveOrCopy, &iDestLayer, &iTraceCurves, &tagCopies, &tagTraceCurveGroup, &iStatus);
        }
        UF_terminate();
    }
    
    extern int ufusr_ask_unload(void)
    {
        return (UF_UNLOAD_IMMEDIATELY);
    }

    效果:

  • 相关阅读:
    关于前后端跨域问题的解决
    vue+vuex+router+element ui
    winfrom导入excel文件
    winform 导出excel文件
    winfrom DataGridView 列表操作
    LaTex之CTex初体验一
    图像配准的步骤
    Phase Based Feature Detection and Phase Congruency(相位一致性)
    查找论文中的代码
    KullbackLeibler
  • 原文地址:https://www.cnblogs.com/KMould/p/14084087.html
Copyright © 2011-2022 走看看