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,对于只看 ...
随机推荐
- Andrew Ng机器学习算法入门(八):正规方程
正规方程 在先学习正规方程之前,先来复习一下之前学过的常规的回归方程的解法. 假设存在如果的代价函数, ,解法也十分的简答. 但是有时候遇到的情况或许会变得相当的复杂. 的数,如果是按照常规的方式进行 ...
- 【Unity】实验二 游戏场景搭建
实验要求 实验二 游戏场景搭建 实验目的:掌握游戏场景搭建. 实验要求:能够使用Unity的地形引擎创建地形,熟悉场景中的光照与阴影,掌握天空盒和雾化效果等. 实验内容: 地形的绘制:使用高度图绘制: ...
- 安装和简单使用apidoc
安装nodejs 参考链接 安装apidoc 参考链接 使用 https://www.bilibili.com/video/BV1MW411Q7g4 https://www.bilibili.com/ ...
- 【SpringMVC】数据校验时,抛出javax.validation.UnexpectedTypeException: HV000030: No validator could be found for type: java.util.Date.
老魏原创,转载请留言. 原因:给Javabean中的字段注解多余或者错误导致. @NotEmpty @Past @DateTimeFormat(pattern="yyyy-MM-dd&quo ...
- svn客户端访问失败,错误“请求的名称有效,但是找不到请求的类型”的解决
1.问题描述:visualSVN客户端在其他机子访问出现以下问题(服务端装在我的电脑上,我本机客户端可以正常访问) 2. 原因分析:SVN客户端访问服务器需要输入URL地址,URL地址分为两种方式.一 ...
- 基于ray的分布式机器学习(一)
基本思路:1.对数据分块,使用多个worker分别处理一个数据块,每个worker暴露两个接口,分别是损失计算的接口loss和梯度计算的接口grad:2.同时定义full_loss和full_grad ...
- FPS游戏方框透视基本原理
计算机图形学基础 计算机图形学最基础的目标就是把建模时构建好的3D物体显示在2D屏幕上,这就涉及到物体在不同坐标系中坐标的转换.(物体/建模坐标系 ---------> 屏幕坐标系) 坐标系 在 ...
- c#私钥加密统一JAVA
public static string RSADecryptByPavKey(string pavKey,string strEncryptString) { string clearText = ...
- qsort和sort学习与比较
阅读另一篇博文Uva 642 - Word Amalgamation sort qsort 1.qsort函数: 原 型: void qsort(void *base, int nelem, int ...
- Linux使用gcc编译时设置编码格式
我们编写 C 程序时,可以使用 ANSI 编码,或是 UTF-8 编码:在编译程序时,可以使用以下的选项告诉编译器: -finput-charset=GB2312 -finput-charset=UT ...