ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

NX二次开发-UFUN获得镜像矩阵(做镜像体)uf5946

2021-10-16 23:02:09  阅读:224  来源: 互联网

标签:TAG NULL int 0.0 UFUN tag 二次开发 镜像 UF


内容为转载,出自https://www.cnblogs.com/KMould/p/14084087.html

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

#include <uf.h>
#include <uf_ui.h>
#include <uf_modl.h>
#include <uf_trns.h>


    
UF_initialize();


uc1601("镜像体",1);

//创建块
UF_FEATURE_SIGN Sign = UF_NULLSIGN;//设置布尔
double Corner_pt[3] = {0.0, 100.0, 0.0};//设置原点
char *Edge_Len[3] = {"100", "100", "100"};//设置长宽高
tag_t BlkTag = NULL_TAG;
UF_MODL_create_block(Sign, NULL_TAG, Corner_pt, Edge_Len, &BlkTag);

//特征找体
tag_t body_tag = NULL_TAG;
UF_MODL_ask_feat_body(BlkTag, &body_tag);

//创建基准面
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[] = { body_tag };
int iCount = 1;
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();

 

错误示例

当使用UF_MODL_create_fixed_dplane创建基准面时,不能镜像

NX9+VS2012

#include <uf.h>
#include <uf_ui.h>
#include <uf_modl.h>
#include <uf_trns.h>


    
UF_initialize();


uc1601("镜像体",1);

//创建块
UF_FEATURE_SIGN Sign = UF_NULLSIGN;//设置布尔
double Corner_pt[3] = {0.0, 100.0, 0.0};//设置原点
char *Edge_Len[3] = {"100", "100", "100"};//设置长宽高
tag_t BlkTag = NULL_TAG;
UF_MODL_create_block(Sign, NULL_TAG, Corner_pt, Edge_Len, &BlkTag);

//特征找体
tag_t body_tag = NULL_TAG;
UF_MODL_ask_feat_body(BlkTag, &body_tag);


//创建固定的基准平面
double Origin_Point[3] = { 0.0,0.0,0.0 };
double Plane_Normal[3] = { 0.0,1.0,0.0 };
tag_t tagPlane = NULL_TAG;
UF_MODL_create_fixed_dplane(Origin_Point, Plane_Normal, &tagPlane);


//获取转换矩阵
double douMatris[12];
int iSt = 0;
tag_t tagPlanes[] = { tagPlane };
uf5946(tagPlanes, douMatris, &iSt);

tag_t tagObjs[] = { body_tag };
int iCount = 1;
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();

 

 

阿飞

2021年10月16日

标签:TAG,NULL,int,0.0,UFUN,tag,二次开发,镜像,UF
来源: https://www.cnblogs.com/nxopen2018/p/15415592.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有