函数: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矩阵修正为正交且长度为单位长度的矩阵的更多相关文章

  1. NX二次开发-通过3x3矩阵获取XYZ轴矢量

    函数:UF_CSYS_ask_wcs() 函数说明:通过3x3矩阵获取XYZ轴矢量 用法: 1 #include <uf.h> 2 #include <uf_mtx.h> 3 ...

  2. NX二次开发-获取WCS坐标系的原点坐标和矩阵标识

    函数:UF_CSYS_ask_csys_info() 函数说明:获取工作坐标系对象的标识符. 用法: #include <uf.h> #include <uf_csys.h> ...

  3. 【NX二次开发】获取指定矩阵标识的矩阵值

    函数:UF_CSYS_ask_matrix_values () 函数说明:获取指定矩阵标识的矩阵值. 用法: #include <uf.h> #include <uf_csys.h& ...

  4. NX二次开发-获取WCS标识

    函数:UF_CSYS_ask_wcs() 函数说明:获取工作坐标系对象的标识. 用法: 1 #include <uf.h> 2 #include <uf_csys.h> 3 e ...

  5. 【NX二次开发】移动WCS坐标系

    说明:移动WCS坐标系 用法: #include <uf.h> #include <uf_csys.h> extern DllExport void ufusr(char *p ...

  6. NX二次开发-创建(临时)坐标系

    函数:UF_CSYS_create_csys() . UF_CSYS_create_temp_csys() 函数说明:创建坐标系 .创建临时坐标系 用法: #include <uf.h> ...

  7. 【NX二次开发】根据视图名称旋转视图,在布局中替换视图uc6464

    uc6464("布局名","旧视图名","新视图名");输入布局名.旧视图名.新视图名.如果布局名为空则更新当前布局.如果旧视图名为空,则工 ...

  8. 【NX二次开发】多种变换

    变换的种类: uf5942 矩阵乘积变换 uf5943 平移变换 uf5944 缩放变换 uf5945 旋转变换 uf5946 镜像变换 最后使用 uf5947 实现uf5942-uf5946的变换. ...

  9. 【NX二次开发】根据根据坐标系、对象旋转视图旋转视图uc6434

    uc6434 (); //旋转视图 参数1:如果输入""则旋转当前工作视图参数2:1.按照ABS旋转视图.2.按照WCS选择视图.3.按照参数3旋转视图.4.按照参数4旋转视图参数 ...

随机推荐

  1. php基础-php基本语法

    http://study.163.com/course/courseMain.htm?courseId=246003

  2. Python中Socket编程server与client简单的合法性认证

    导入python自带的hmac模块对随机生成的位数32字节和自定义token进行加密处理 import osmsg = os.urandom(32)  #随机生成msgOut[4]: b"F ...

  3. 解决移动端300ms延迟fastclick

    为什么要使用fastclick 移动设备上的浏览器默认会在用户点击屏幕大约延迟300毫秒后才会触发点击事件,这是为了检查用户是否在做双击.为了能够立即响应用户的点击事件,才有了fastclick. f ...

  4. 『政善治』Postman工具 — 11、Postman中对Cookie的操作

    目录 1.关联接口说明 2.测试关联接口实现步骤 3.补充:Postman中将请求转换成代码 上一篇文章说明了Postman中关于Cookie的相关操作,还是以Cookie举例,来说明下一在Postm ...

  5. 详解Redis中两种持久化机制RDB和AOF

    redis是一个内存数据库,数据保存在内存中,但是我们都知道内存的数据变化是很快的,也容易发生丢失.幸好Redis还为我们提供了持久化的机制,分别是RDB(Redis DataBase)和AOF(Ap ...

  6. BugkuCTF——wp(旧版)

    title: BugkuCTF--wp(旧版) date: 2020-4-25 tags: CTF,比赛 categories: CTF 比赛 Web篇 0x001-web2 解题思路: 1.直接按F ...

  7. LeetCode 617. 合并二叉树 Java

    给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠. 你需要将他们合并为一个新的二叉树.合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 ...

  8. 【建议收藏】缺少 Vue3 和 Spring Boot 的实战项目经验?我这儿有啊!

    缺少 Vue3 和 Spring Boot 的实战项目经验?缺少学习项目和练手项目?我这儿有啊! 从 2019 年到 2021 年,空闲时间里陆陆续续做了一些开源项目,推荐给大家啊!记得点赞和收藏噢! ...

  9. Qt - QLineEdit编辑框

    QLineEdit输入内容获取及合理性检查? 控件自带触发信息: void textChanged(const QString &);void textEdited(const QString ...

  10. xl release 安装

    前提,该版本需要jdk-1.8以上(包括1.8),内存大于等于2G,磁盘最小空间2G,操作系统windows或者unix-family xl release是一个端到端的管道编排工具. 下载XL-re ...