NX二次开发-将3X3矩阵修正为正交且长度为单位长度的矩阵
函数:UF_MTX3_ortho_normalize()
函数说明:将矩阵修正为正交且xyz长度为单位长度的矩阵。下图中输入的矩阵为三条线段的端点,经过修正后,生成一个坐标系。

1 #include "Text.h"
2 extern DllExport void ufsta(char *param, int *returnCode, int rlen)
3 {
4 UF_initialize();
5
6 double douMatrixValues[9] = {1, 1, 1, 1, 0 ,0, 0, 0, 1};
7
8 tag_t tagLine;
9 UF_CURVE_line_t tLin;
10 tLin.start_point[0] = 0;
11 tLin.start_point[1] = 0;
12 tLin.start_point[2] = 0;
13 tLin.end_point[0] = douMatrixValues[0];
14 tLin.end_point[1] = douMatrixValues[1];
15 tLin.end_point[2] = douMatrixValues[2];
16 UF_CURVE_create_line(&tLin, &tagLine);
17 tLin.end_point[0] = douMatrixValues[3];
18 tLin.end_point[1] = douMatrixValues[4];
19 tLin.end_point[2] = douMatrixValues[5];
20 UF_CURVE_create_line(&tLin, &tagLine);
21 tLin.end_point[0] = douMatrixValues[6];
22 tLin.end_point[1] = douMatrixValues[7];
23 tLin.end_point[2] = douMatrixValues[8];
24 UF_CURVE_create_line(&tLin, &tagLine);
25
26 UF_MTX3_ortho_normalize(douMatrixValues);
27
28 //通过数组创建矩阵
29 tag_t tagMatrixId = NULL_TAG;
30 UF_CSYS_create_matrix(douMatrixValues, &tagMatrixId);
31
32 double douCsysOrigin[3] = { 0,0,0 };
33 //创建坐标系
34 tag_t tagCSYS = NULL_TAG;
35 UF_CSYS_create_csys(douCsysOrigin, tagMatrixId, &tagCSYS);
36 UF_terminate();
37 }
38
39 extern int ufusr_ask_unload(void)
40 {
41 return (UF_UNLOAD_IMMEDIATELY);
42 }
NX二次开发-将3X3矩阵修正为正交且长度为单位长度的矩阵的更多相关文章
- NX二次开发-通过3x3矩阵获取XYZ轴矢量
函数:UF_CSYS_ask_wcs() 函数说明:通过3x3矩阵获取XYZ轴矢量 用法: 1 #include <uf.h> 2 #include <uf_mtx.h> 3 ...
- NX二次开发-获取WCS坐标系的原点坐标和矩阵标识
函数:UF_CSYS_ask_csys_info() 函数说明:获取工作坐标系对象的标识符. 用法: #include <uf.h> #include <uf_csys.h> ...
- 【NX二次开发】获取指定矩阵标识的矩阵值
函数:UF_CSYS_ask_matrix_values () 函数说明:获取指定矩阵标识的矩阵值. 用法: #include <uf.h> #include <uf_csys.h& ...
- NX二次开发-获取WCS标识
函数:UF_CSYS_ask_wcs() 函数说明:获取工作坐标系对象的标识. 用法: 1 #include <uf.h> 2 #include <uf_csys.h> 3 e ...
- 【NX二次开发】移动WCS坐标系
说明:移动WCS坐标系 用法: #include <uf.h> #include <uf_csys.h> extern DllExport void ufusr(char *p ...
- NX二次开发-创建(临时)坐标系
函数:UF_CSYS_create_csys() . UF_CSYS_create_temp_csys() 函数说明:创建坐标系 .创建临时坐标系 用法: #include <uf.h> ...
- 【NX二次开发】根据视图名称旋转视图,在布局中替换视图uc6464
uc6464("布局名","旧视图名","新视图名");输入布局名.旧视图名.新视图名.如果布局名为空则更新当前布局.如果旧视图名为空,则工 ...
- 【NX二次开发】多种变换
变换的种类: uf5942 矩阵乘积变换 uf5943 平移变换 uf5944 缩放变换 uf5945 旋转变换 uf5946 镜像变换 最后使用 uf5947 实现uf5942-uf5946的变换. ...
- 【NX二次开发】根据根据坐标系、对象旋转视图旋转视图uc6434
uc6434 (); //旋转视图 参数1:如果输入""则旋转当前工作视图参数2:1.按照ABS旋转视图.2.按照WCS选择视图.3.按照参数3旋转视图.4.按照参数4旋转视图参数 ...
随机推荐
- Compare the contents of two arrays
✍️Define a methed to compare the contents of two arrays and return the result . 定义一个方法,用于比较两个数组的内容是否 ...
- Mac下配置Git 的全局忽略文件
$ git config --global core.excludesfile ~/.gitignore_global $ vim ~/.gitignore_global #配置文件参考如下 # fo ...
- python通过字符串定义函数名
记录python里的一个有意思的小技巧:通过字符串定义函数名称. import sys m=sys.modules[__name__] def temp(x): return x+1 setattr( ...
- Django(3)pycharm创建项目
创建项目 我们创建django项目有两种方式,命令行方式和使用pycharm工具创建,本文就介绍常用的pycharm工具创建 首先点击django,输入项目的名称,选择创建好的虚拟环境,最后点击c ...
- 『动善时』JMeter基础 — 20、JMeter配置元件【HTTP Cookie管理器】详细介绍
目录 1.HTTP Cookie管理器介绍 2.HTTP Cookie管理器界面详解 3.JMeter中对Cookie的管理 (1)Cookie的存储 (2)Cookie的管理策略 4.补充:Cook ...
- [Python] tkinter 之 Listbox & Combobox
示例: 1 #用户界面 2 import os 3 os.chdir('F:\\spyder_workspace\\ColCal') 4 import Main 5 from tkinter impo ...
- Zabbix 监控介绍
Zabbix 监控介绍 1.Zabbix监控架构 2.Zabbix 优点 开源无软件成本投入 Server对设备性能要求低 支持设备多,自带多种监控模板 支持分布式集中管理,有自动发现功能,可以实现自 ...
- 035.Python正则表达式
正则表达式 一 介绍 拼正则表达式是什么? 它是约束字符串匹配某种形式的规则 正则表达式有什么用? 检测某个字符串是否符合规则比如:判断手机号,身份证号是否合法 提取网页字符串中想要的数据.比如:爬虫 ...
- 分布式存储ceph---ceph添加/删除osd(5)
一.添加osd 当前ceph集群中有如下osd,现在准备新添加osd: 1.选择一个osd节点,添加好新的硬盘: 2.显示osd节点中的硬盘,并重置新的osd硬盘: 列出节点磁盘:ceph-deplo ...
- strcasecmp函数和strncasecmp函数原型
函数说明 strcasecmp()用来比较参数s1和s2字符串,比较时会自动忽略大小写的差异. 返回值 若参数s1和s2字符串相同则返回0.s1长度大于s2长度则返回大于0 的值,s1 长度若小 ...