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. SSRF_FastCGI

    SSRF_FastCGI 目录 SSRF_FastCGI FastCGI协议 SSRF ssrf + fastcgi 参考 FastCGI协议 简介 Fast CGI源自旧版本的CGI 路由/结构图 ...

  2. Docker安装教程(超详细)

    Docker安装教程(超详细) 欢迎关注博主公众号「Java大师」, 专注于分享Java领域干货文章, 关注回复「资源」, 免费领取全网最热的Java架构师学习PDF, 转载请注明出处 http:// ...

  3. 逆向工程初步160个crackme-------7

    这两天有点发烧,被这个疫情搞得人心惶惶的.我们这里是小镇平常过年的时候人来人往的,今年就显得格外的冷清.这是老天帮让在家学习啊,破解完这个crackme明天就去接着看我的加密解密,算了算没几天就开学了 ...

  4. 改善c++程序的150个建议(读后总结)-------27-35

    27. 区分内存分配的方式 c++中内存分为5个不同的区 ①栈区 栈是一种特殊的数据结构,其存取数据特点为(先进后出,后进先出).栈区中主要用于存储一些函数的入口地址,函数调用时的实参值以及局部变量. ...

  5. 笔记·RCNN系相关

    这篇博客总述了从RCNN到Mask RCNN的发展过程 https://blog.csdn.net/heavenpeien/article/details/80534963 简单的说,Fast RCN ...

  6. SaaS模式的CRM系统有哪些优势?

    早在10年前(2010年),就出现了SaaS模式的CRM系统.SaaS CRM一经面世,便迅速受到广大企业的青睐. SaaS CRM是指CRM厂家把CRM软件部署在自己的服务器上,有需要的客户能够根据 ...

  7. 10.Debug

    1.Debug模式 1.1 什么是Debug模式 是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序. 1.2 Debug介绍与操作流程 Debug调式, ...

  8. VS·.Net WCF多项目调试方法

    阅文时长 | 0.12分钟 字数统计 | 252.8字符 主要内容 | 1.引言&背景 2.声明与参考资料 『VS·.Net WCF多项目调试方法』 编写人 | SCscHero 编写时间 | ...

  9. Gin框架介绍与使用

    Gin // 初识 Gin框架 //下载(可能会下载不全.缺什么get什么即可) //go get -u -v github.com/gin-gonic/gin package main import ...

  10. [刷题] PTA 02-线性结构1 两个有序链表序列的合并

    程序: 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 typedef int ElementType; 5 typedef st ...