当前位置: 首页 > news >正文

NX二次开发UF_CSYS_map_point 函数介绍

文章作者:里海
来源网站:https://blog.csdn.net/WangPaiFeiXingYuan

UF_CSYS_map_point

Defined in: uf_csys.h 
int UF_CSYS_map_point(int input_csys, double input_point [ 3 ] , int output_csys, double output_point [ 3 ] )

overview 概述

Maps a point from one coordinate system to a point in another
coordinate system. The coordinate system can be one of the following
constants.
UF_CSYS_ROOT_COORDS is the ABS of the displayed part.
UF_CSYS_WORK_COORDS is the ABS of the work part.
UF_CSYS_ROOT_WCS_COORDS is the WCS of the displayed part.
For example:
To convert a point from absolute coordinates of the displayed part to
the WCS:
input_csys = UF_CSYS_ROOT_COORDS;
output_csys = UF_CSYS_ROOT_WCS_COORDS;
To convert a point from the work part absolute coordinates to the
displayed part absolute coordinates:
input_csys = UF_CSYS_WORK_COORDS;
output_csys = UF_CSYS_ROOT_COORDS;

将一个点从一个坐标系映射到另一个坐标系。坐标系可以是下列常量之一。UF _ CSYS _ ROOT _ COORDS 是显示部件的 ABS。UF _ CSYS _ WORK _ COORDS 是工作部分的 ABS。UF _ CSYS _ ROOT _ WCS _ COORDS 是显示部分的 WCS。例如: 将一个点从显示部分的绝对坐标转换为 WCS: input _ csys = UF _ CSYS _ ROOT _ COORDS; output _ csys = UF _ CSYS _ ROOT _ WCS _ COORDS; 将一个点从工作部分的绝对坐标转换为显示部分的绝对坐标: input _ csys = UF _ CSYS _ WORK _ COORDS; output _ csys = UF _ CSYS _ ROOT _ COORDS;

UFUN例子

欢迎订阅《里海NX二次开发3000例专栏》https://blog.csdn.net/wangpaifeixingyuan/category_8840986.html,点击链接扫码即可订阅(持续更新中)。已经有几百人订阅,订阅是永久的,无限期阅读,如需帮助请私信。

parameters 参数

intinput_csysInputCSYS of point to be mapped which can be: UF_CSYS_ROOT_COORDS ( Coordinate space of the root part which is the whole part being displayed), UF_CSYS_WORK_COORDS ( Coordinate space of the work part), UF_CSYS_ROOT_WCS_COORDS ( Root WCS)
要映射的点的 CSYS 可以是: UF _ CSYS _ ROOT _ COORDS (根部分的坐标空间,即显示的整个部分) ,UF _ CSYS _ WORK _ COORDS (工作部分的坐标空间) ,UF _ CSYS _ ROOT _ WCS _ COORDS (根 WCS)
doubleinput_point [ 3 ]InputThe point (xyz) to be mapped.
要映射的点(xyz)。
intoutput_csysInputCSYS to be mapped to
要映射到的 CSYS
doubleoutput_point [ 3 ]OutputThe resultant point (xyz) of the mapping
映射的合点(xyz)

分割

C++语言在UG二次开发中的应用及综合分析

  1. C++ 是C语言的扩展,它既可以执行C语言的过程化程序设计,也可以进行以抽象数据类型为特点的基于对象的设计,以及面向对象的程序设计。C++ 在处理问题规模上具有很大的适应性。
  2. C++不仅具有计算机高效运行的实用性特征,并且致力于提升大规模程序的编程质量以及程序设计语言的问题描述能力。

在UG二次开发中,C++语言具有以下特点

  1. C++语言支持多种程序设计风格
  2. C++的许多特性以库的形式存在,保证了语言的简洁和开发运行的效率
  3. 与C语言相比,C++引入了面向对象的概念,使得UG二次开发的人机交互界面更加简洁
  4. 通过借助UG自带的2000多种API函数,结合高级语言C++以及编程软件Visual Studio,可以对UG进行二次开发
  5. 需要注意的是,市场上的Visual Studio和UG版本众多,并非所有版本都能兼容

程序设计过程通常包括以下步骤:

  1. 问题分析:对要解决的问题进行深入的分析,理解问题的具体需求和限制。
  2. 需求定义:明确程序的目标和功能,包括用户需求、系统需求等。
  3. 设计:根据需求进行设计,包括算法设计、数据结构设计、界面设计等。
  4. 编码:根据设计的结果,使用一种编程语言将程序代码实现出来。
  5. 测试:通过各种测试方法来确保程序的正确性,包括单元测试、集成测试、系统测试等。
  6. 维护:对程序进行修改和完善,以解决可能出现的问题或满足新的需求。
  7. 文档编写:编写程序文档,描述程序的功能、操作方法、注意事项等。

以下是一个创建体素特征(块、柱、锥、球)的二次开发例子

#include <stdio.h>
#include <stdarg.h>
#include <uf_modl_primitives.h>
#include <uf_ui_ugopen.h>
#include <uf.h>
#include <uf_defs.h>
//封装打印函数,用于将信息打印到信息窗口
//QQ3123197280
int ECHO(const char* szFormat, ...)
{char szMsg[5000] = "";va_list arg_ptr;va_start(arg_ptr, szFormat);vsprintf_s(szMsg, szFormat, arg_ptr);va_end(arg_ptr);UF_UI_open_listing_window();UF_UI_write_listing_window(szMsg);return 0;
}
extern DllExport void ufusr(char* param, int* returnCode, int rlen)
{UF_initialize();//创建块UF_FEATURE_SIGN sign = UF_NULLSIGN;//块起点相对于ABSdouble block_orig[3] = { 0.0,0.0,0.0 };//方向相对于WCSchar* block_len[3] = { "10", "30", "10" };tag_t blk_obj;//体特征UF_MODL_create_block1(sign, block_orig, block_len, &blk_obj);int iEdit = 0;  char* size[3];UF_MODL_ask_block_parms(blk_obj, iEdit, size);ECHO("%s,%s,%s\n", size[0], size[1], size[2]);//输出: p6=10,p7=30,p8=10//创建圆柱UF_FEATURE_SIGN sign1 = UF_NULLSIGN;double origin[3] = { 10.0,0.0,10.0 };char  height[] = "20";char  diam[] = "10";double direction[3] = { 0,0,1 };//方向tag_t  cyl_obj_id;UF_MODL_create_cyl1(sign1, origin, height, diam, direction, &cyl_obj_id);int iEdit2 = 0;  char* cDiameter;char* cHeight;UF_MODL_ask_cylinder_parms(cyl_obj_id, iEdit2, &cDiameter, &cHeight);ECHO("%s,%s\n", cDiameter, cHeight);//输出:p9=10,p10=20UF_free(cDiameter);UF_free(cHeight);//创建圆锥UF_FEATURE_SIGN sign2 = UF_NULLSIGN;double origin2[3] = { 0.0,0.0,10.0 };char  height2[] = "20";char* diam2[2] = { "10" ,"5" };double direction2[3] = { 0,0,1 };//方向tag_t  cone_obj_id;UF_MODL_create_cone1(sign2, origin2, height2, diam2, direction2, &cone_obj_id);int iEdit3 = 0;  char* cD1;char* cD2;char* cH;char* cAngle;UF_MODL_ask_cone_parms(cone_obj_id, iEdit3, &cD1, &cD2, &cH, &cAngle);ECHO("%s,%s,%s,%s\n", cD1, cD2, cH, cAngle);//输出:p11=10,p12=5,p13=20,p14=7.1250163489018UF_free(cD1);UF_free(cD2);UF_free(cH);UF_free(cAngle);//创建球UF_FEATURE_SIGN sign3 = UF_NULLSIGN;double douCenter2[3] = { 0.0,0.0,30.0 };char  cDiam[] = "8";tag_t  sphere_obj_id;UF_MODL_create_sphere1(sign3, douCenter2, cDiam, &sphere_obj_id);int iEdit4 = 0;  char* cDiam_parm;UF_MODL_ask_sphere_parms(sphere_obj_id, iEdit4, &cDiam_parm);ECHO("%s\n", cDiam_parm);//输出:p15=8UF_free(cDiam_parm);UF_terminate();
}
extern int ufusr_ask_unload(void)
{return (UF_UNLOAD_IMMEDIATELY);
}

效果:
效果

http://www.lryc.cn/news/241538.html

相关文章:

  • Spring Web MVC
  • Debian系列的Linux发行版上部署wvp
  • 无人智能柜:经营成本低,运维智能化
  • java.lang.UnsupportedOperationException 关于Arrays.asList问题解决
  • 2023.11.23 云服务器实现 Spring Boot 项目文件上传并访问
  • SAP实现多个统御科目:特殊总账SGL+备选统驭科目Alternative Reconciliation Accounts
  • 【数据分享】2023年我国省市县三级的瞪羚企业数量(免费获取/Excel/Shp格式)
  • 用于计算机屏幕安全摄像头系统:Screen Anytime Crack
  • Redis深入理解-Socket连接建立流程以及文件事件处理机制
  • Docker run 命令
  • Vue中的$nextTick的作用
  • 浅谈Linux bash脚本----getopts获取脚本POSIX标准传参
  • PyCharm玩转ESP32
  • uniapp自定义导航栏返回按键
  • 「可移动工具车」物料管理的得力助手
  • 授时小课堂——北斗卫星信号和GPS卫星信号谁更强?
  • 网站会遭受那些攻击,要怎么应对
  • 后端-锁专题:synchronized(java对象结构、锁的类型、锁升级流程...)
  • vscode在运行c语言时,无法scanf输入
  • ROLLUP 的几点说明(十七)
  • 项目经理面试题持续更新
  • 基于JavaWeb+SSM+Vue校园水电费管理小程序系统的设计和实现
  • 主从复制读写分离?
  • h5小游戏-盖楼游戏
  • 量子计算的发展
  • YOLOv3老矣尚能战否?基于YOLOv3开发构建建钢铁产业产品智能自动化检测识别系统,我们来与YOLOv5进行全方位对比评测
  • 【lodash】 关于Some的相关用法
  • JavaScript基础—引入方式、注释和结束符、输入和输出、变量、常量、数据类型、检测数据类型、类型转换、综合案例—用户订单信息
  • 替换jar文件中的jar文件中的class
  • 基于51单片机倾角MPU6050老人跌倒远程GSM短信报警器+源程序