UF_CSYS_map_point用来变换点的坐标,比较简单且实用。例如工作坐标系与绝对坐标系转换,一个部件的坐标与另一个部件坐标系之间的转换。下面的例子是在三个坐标下创建三个点相对坐标为{10,50,100};

下面是UF_CSYS_map_point函数用到的三个坐标系的参数:

//根部件的绝对坐标系
#define UF_CSYS_ROOT_COORDS 1
//工作部件的绝对坐标系
#define UF_CSYS_WORK_COORDS 2
//根部件的工作坐标系
#define UF_CSYS_ROOT_WCS_COORDS 3

源码:

 1 #include "Text.h"
2 extern DllExport void ufusr(char *param, int *returnCode, int rlen)
3 {
4 UF_initialize();
5 tag_t tagP;
6 double douP1[3] = { 10,50,100 };
7 UF_CURVE_create_point(douP1,&tagP);
8
9 //将工作坐标系下的点 转换为 绝对坐标系下
10 double douP_WCS[3] = { 10,50,100 };
11 double douP_ABS[3] = { 0,0,0 };
12 UF_CSYS_map_point( UF_CSYS_ROOT_WCS_COORDS, douP_WCS, UF_CSYS_ROOT_COORDS, douP_ABS);//工作部件绝对 转 根部件WCS
13 UF_CURVE_create_point(douP_ABS, &tagP);
14
15 //将工作部件 绝对坐标系下的点 转换为 根部件绝对坐标系下
16 double douP0_WCS[3] = { 10,50,100 };
17 double douP0_ABS[3] = { 0,0,0 };
18 tag_t tagPart1 = 44814;
19 UF_ASSEM_set_work_part(tagPart1);
20 UF_CSYS_map_point(UF_CSYS_WORK_COORDS, douP0_WCS, UF_CSYS_ROOT_COORDS, douP0_ABS);//工作部件绝对 转 根部件WCS
21 UF_ASSEM_set_work_part(UF_PART_ask_display_part());//显示部件设为工作部件
22 UF_CURVE_create_point(douP0_ABS, &tagP);
23
24 UF_terminate();
25 }
26
27 extern int ufusr_ask_unload(void)
28 {
29 return (UF_UNLOAD_IMMEDIATELY);
30 }

结果:

【NX二次开发】UF_CSYS_map_point()函数,绝对坐标,工作坐标,部件之间坐标转换。的更多相关文章

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

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

  2. 【NX二次开发】按层查找工作部件中的对象 UF_LAYER_cycle_by_layer

    第一次调用 :返回第一个启用层中的第一个对象. 第二次调用 :返回下一个已启用层中的下一个对象. 最后一次调用:当所有对象都被耗尽时,将返回object_tag = NULL_TAG. 在循环数据库时 ...

  3. NX二次开发CreateDialog函数在UI.hxx文件和WinUser.h中的冲突【转载】

    文章出自https://blog.csdn.net/qq_41843732/article/details/91422764 在UG二次开发中,若使用MFC库,一旦加上#include<Afx. ...

  4. 【NX二次开发】Block UI 从列表选择部件

    属性说明 属性   类型   描述   常规           BlockID    String    控件ID    Enable    Logical    是否可操作    Group    ...

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

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

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

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

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

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

  8. NX二次开发-基于NX开发向导模板的NX对Excel读写操作(OLE方式(COM组件))

    在看这个博客前,请读者先去完整看完:NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))https://ufun-nxopen.blog.csdn.net/article ...

  9. NX二次开发-基于MFC界面对话框与NX交互的开发

    打开VS2013 点击新建,选择MFC DLL 点击确定 点下一步 什么都不改,直接点完成 进来之后先编译一下,看是否编译成功 打开项目属性,更改这几处 $(UGII_BASE_DIR)\ugopen ...

  10. 【NX二次开发】查找部件中的对象 UF_OBJ_cycle_objs_in_part

    返回所有层上指定类型部件中的所有对象,不管它们的当前显示状态如何.这个例程不返回表达式.指定对象.临时(系统创建的)对象或休眠对象.休眠对象指的是从模型中删除的对象例如,如果你混合了一条边,那么这条边 ...

随机推荐

  1. 【Docker】7. 镜像-加载原理、分层原理、commit镜像

    一.什么是镜像 镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件. 它包含运行某个软件所需的所有内容,包括代码.运行时环境.库.环境变量和配置文件. 所有的应用,直接 ...

  2. Introduction to x265 Rate Control Algorithm

    The rate control in x265 is the same as x264's implementation, which is mostly empirical. It include ...

  3. 发布声明$\beta$

    一.新功能 \(\beta\)阶段集中开发了3大核心功能:支持模块的嵌套.模型市场.模型推理,这三项基本上都是从零开始.徒手开发的功能,没有轮子可以参照,因此也不具有可以对比的先前版本. 除此之外,开 ...

  4. redis中keys命令带来的线上性能问题

    起因 下午接到运维反馈,生产redis有个执行keys的命令请求太慢了,要两三秒才能响应 涉及命令如下: KEYS ttl_600::findHeadFootData-15349232-*-head ...

  5. [bug] JavaScript:Uncaught SyntaxError: missing ) after argument list

    function拼写错误

  6. echo "This is line $LINENO"返回行号

    echo "This is line $LINENO"返回行号 LINENO 变量LINENO返回它在脚本里面的行号. #!/bin/bash echo "This is ...

  7. gitlab同步插件gitlab-mirrors报错<已解决,未找到原因>

    今天下午在使用gitlab-mirrors同步插件时,发现一直在报错 # ~/gitlab-mirrors/add_mirror.sh --git --project-name manifests - ...

  8. :整数 跳转到该行 Vim中常用的命令

    :set nu 显示行号 :set nonu 不显示行号 :命令 执行该命令 :整数 跳转到该行 :s/one/two 将当前光标所在行的第一个one替换成two :s/one/two/g 将当前光标 ...

  9. 使用Wok管理kvm虚拟机

    [Centos7.4] !!!测试环境我们首关闭防火墙和selinux [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# ...

  10. Phoenix 使用教程

    引言 hbase 提供很方便的 shell 脚本,可以对数据表进行 CURD 操作,但是毕竟是有一定的学习成本的,基本上对于开发来讲,sql 语句都是看家本领,那么,有没有一种方法可以把 sql 语句 ...