NX二次开发-UFUN获得镜像矩阵(做镜像体)uf5946
2021/10/16 23:42:49
本文主要是介绍NX二次开发-UFUN获得镜像矩阵(做镜像体)uf5946,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
内容为转载,出自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日
这篇关于NX二次开发-UFUN获得镜像矩阵(做镜像体)uf5946的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-08如何在敏捷项目中实现高效测试?
- 2024-07-08用户故事一定要有 “So that...” 吗?
- 2024-07-04TiDB 资源管控的对撞测试以及最佳实践架构
- 2024-07-03万字长文聊聊Web3的组成架构
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt