NX二次开发UFUN获得缩放矩阵(复制移动体)uf5944

NX9+VS2012

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


UF_initialize();


//创建块
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);

//获得缩放矩阵
int type = 1;//1.一致 2.不均匀
double scales[3] = {0.5, 0.8, 0.9};
double origin[3] = {0, 500, 0};
double matrix[12] = { 0 };
int status = 0;
uf5944(&type, scales, origin, matrix, &status);


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 (status == 0)
{
    //转换的实现
    uf5947(matrix, tagObjs, &iCount, &iMoveOrCopy, &iDestLayer, &iTraceCurves, &tagCopies, &tagTraceCurveGroup, &iStatus);
}

UF_terminate();

阿飞
2021年10月16日

 

阿飞

2021年10月16日

原文地址:https://www.cnblogs.com/nxopen2018/p/15415619.html