NX二次开发-从一个坐标系到另一个坐标系的转换
函数:UF_MTX4_csys_to_csys()、UF_MTX4_vec3_multiply()
函数说明:从一个坐标系统到另一个坐标系统的转换。如下图红色坐标系下有个红色的点,将红色的点转到绿色的坐标系下,得到绿色的点。可以使用UF_MTX4_csys_to_csys()和UF_MTX4_vec3_multiply()函数。
三个角度的截图:

1 // UF_MTX4_csys_to_csys从一个坐标系统到另一个坐标系统的转换:*
2
3 #include <stdio.h>
4 #include <uf.h>
5 #include <uf_part.h>
6 #include <uf_defs.h>
7 #include <uf_modl.h>
8 #include <uf_mtx.h>
9
10 #define UF_CALL(X) (report( __FILE__, __LINE__, #X, (X)))
11
12 static int report(char *file, int line, char *call, int irc)
13 {
14 if (irc)
15 {
16 char messg[133];
17 printf("%s, line %d: %s\n", file, line, call);
18 (UF_get_fail_message(irc, messg)) ?
19 printf(" returned a %d\n", irc) :
20 printf(" returned error %d: %s\n", irc, messg);
21 }
22 return(irc);
23 }
24
25 static void do_ugopen_api(void)
26 {
27
28
29 double from_origin[3] = { 0.0, 0.0, 0.0 };
30 double from_x_axis[3] = { 1.0, 0.0, 0.0 };
31 double from_y_axis[3] = { 0.0, 1.0, 0.0 };
32
33 double to_origin[3] = { 10.0, 10.0, 10.0 };
34 double to_x_axis[3] = { 0.0, 1.0, 0.0 };
35 double to_y_axis[3] = { 1.0, 0.0, 0.0 };
36
37 double new_target[3];
38 double target[3] = { 2, 4, 6 };
39
40 tag_t tagP_target;
41 UF_CURVE_create_point(target, &tagP_target);//创建点
42
43 double transform[16];
44 tag_t part_tag;
45 UF_CALL(UF_MTX4_csys_to_csys(from_origin, from_x_axis, from_y_axis,to_origin, to_x_axis, to_y_axis,transform));
46 UF_MTX4_vec3_multiply(target, transform, new_target);
47
48 tag_t tagP_new_target;
49 UF_CURVE_create_point(new_target, &tagP_new_target);//创建转换后的点
50
51 }
52
53
54 void ufusr(char *param, int *retcode, int param_len)
55 {
56 if (!UF_CALL(UF_initialize()))
57 {
58 do_ugopen_api();
59 UF_CALL(UF_terminate());
60 }
61 }
62
63 int ufusr_ask_unload(void)
64 {
65 return (UF_UNLOAD_IMMEDIATELY);
66 }
NX二次开发-从一个坐标系到另一个坐标系的转换的更多相关文章
- NX二次开发-如何在类外面定义一个结构体
#include <uf.h> #include <uf_obj.h> #include <uf_part.h> using namespace NXOpen; u ...
- 【NX二次开发】根据根据坐标系、对象旋转视图旋转视图uc6434
uc6434 (); //旋转视图 参数1:如果输入""则旋转当前工作视图参数2:1.按照ABS旋转视图.2.按照WCS选择视图.3.按照参数3旋转视图.4.按照参数4旋转视图参数 ...
- NX二次开发-获取WCS坐标系的原点坐标和矩阵标识
函数:UF_CSYS_ask_csys_info() 函数说明:获取工作坐标系对象的标识符. 用法: #include <uf.h> #include <uf_csys.h> ...
- NX二次开发-创建(临时)坐标系
函数:UF_CSYS_create_csys() . UF_CSYS_create_temp_csys() 函数说明:创建坐标系 .创建临时坐标系 用法: #include <uf.h> ...
- 【NX二次开发】移动WCS坐标系
说明:移动WCS坐标系 用法: #include <uf.h> #include <uf_csys.h> extern DllExport void ufusr(char *p ...
- NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))
NX二次开发API里没有对EXCAL读写操作的相关函数,市面上有很多种方法去实现,比如UFUN调KF,ODBC,OLE(COM组件)等等.这里我是用的OLE(COM组件)方式去做的,这种在VC上创建的 ...
- NX二次开发-基于NX开发向导模板的NX对Excel读写操作(OLE方式(COM组件))
在看这个博客前,请读者先去完整看完:NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))https://ufun-nxopen.blog.csdn.net/article ...
- NX二次开发-基于MFC界面对话框与NX交互的开发
打开VS2013 点击新建,选择MFC DLL 点击确定 点下一步 什么都不改,直接点完成 进来之后先编译一下,看是否编译成功 打开项目属性,更改这几处 $(UGII_BASE_DIR)\ugopen ...
- NX二次开发-BlockUI对话框嵌套MFC对话框制作进度条
半年前在一些QQ群看到有大神NX二次开发做出了进度条,那个时候我还不会弄,也不知道怎么弄得,后来断断续续得研究了一下,直到今天我把它做出来了.内心还是很喜悦的!回想自己这两年当初从没公司肯给我做NX二 ...
- NX二次开发-UDO用户自定义对象(UFUN)【持续完善】
每当提起UDO总是会让我想起大专毕业那会失业找工作,后来有个宝贵机会去了软件公司上班,拿到了我人生中的第一个NX二次开发项目,一个关于测量汽车前后左右摄像头的项目.当时那个项目就用到了UDO,对于只看 ...
随机推荐
- 『政善治』Postman工具 — 4、HTTP请求基础组成部分介绍
目录 1.Method 2.URL 3.Headers 4.body 一般来说,所有的HTTP Request都有最基础的4个部分组成:URL. Method. Headers和body. 1.Met ...
- git的一些常用命令总结
1.拉取代码Git clone "链接名称" 2.新建分支 git checkout -b "分支名称" 3.提交代码步骤 (1)Git status查看项目 ...
- Asp.NetCore Web开发之会话技术
这节讲一下会话技术,首先了解一下什么是会话,会话是指浏览器打开到关闭的过程中,多次与服务器发送接收数据的过程. 由于HTTP是无状态协议,一次请求响应过后,产生的数据就随之释放了,可是在某些情况下,我 ...
- 【BUAA软工】第一次团队作业——团队介绍
项目 内容 班级:北航2020春软件工程 博客园班级博客 作业:团队介绍与采访往届团队 团队作业-团队介绍和采访 Part I 团队成员介绍 有图有真(jia)相 大名 个人介绍 角色意向 李PX 来 ...
- queryset惰性与缓存
https://blog.csdn.net/zhu6201976/article/details/83550461
- [bug] vue cli 部署在 springboot中报404
复制资源时,在static目录下新建了一个static目录,估计是引起了spring解析的混乱,改为one后即可正常访问 参考 https://www.cnblogs.com/qianjinyan/p ...
- shell练习(1)创建100个用户
shell练习(1)创建100个用户 默默努力的小白. 2020-04-15 16:28:49 49 收藏文章标签: linuxshell版权随机创建100个用户,并生成随机密码,并将密码放入一个文件 ...
- 创建第一个django工程
一.环境搭建 使用anaconda + pycharm的环境. 1.创建虚拟环境并安装django1.8的包 # 创建虚拟环境 conda create -n django python=3.6 # ...
- Otter远程调试
Otter远程调试 环境配置: 机器 172.16.0.2 172.16.0.3 172.16.0.4 ZK FOLLOWER FOLLOWER LEADER MySQL Manager MySQL ...
- shell基础之后台运行脚本
使shell脚本后台执行,基本的方法有两种,第一种为在脚本后面追加&符号,第二种为在脚本前面使用nohup命令,结尾再追加&符号 一.后台运行脚本1 1.执行脚本test.sh:./t ...