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

NX二次开发UF_CSYS_edit_matrix_of_object 函数介绍

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

UF_CSYS_edit_matrix_of_object

Defined in: uf_csys.h 
int UF_CSYS_edit_matrix_of_object(tag_t object_id, tag_t matrix_id )

overview 概述

Updates the specified coordinate system matrix with the identifier of
the new coordinate system matrix that you specify.
This function does not perform an update. In order for all of the
effects of changing the object’s matrix to occur, you must call
UF_MODL_update at some point after calling this function.

使用指定的新坐标系矩阵的标识符更新指定的坐标系矩阵。此函数不执行更新。为了使更改对象矩阵的所有效果发生,必须在调用此函数之后的某个时间点调用 UF _ MODL _ update。

UFUN例子

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

parameters 参数

tag_tobject_idInputIdentifier of the object whose matrix is to be updated.
要更新其矩阵的对象的标识符。
tag_tmatrix_idInputObject identifier of the new matrix for the object
对象的新矩阵的对象标识符

分割

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/241623.html

相关文章:

  • 封装公共el-form表单
  • OpenHarmony-4.0-Release 源码编译记录
  • HTML新手入门笔记整理:块元素和行内元素
  • Hook+jsdom 解决cookie逆向
  • 【封装UI组件库系列】封装Icon图标组件
  • STM32:基本定时器原理和定时程序
  • EntityFramework 批量删除操作
  • springboot使用的设计模式
  • IP地址定位技术发展与未来趋势
  • AI与交通运输
  • window.requestAnimationFrame+localStorage+canvas实现跨窗口小球连线效果
  • 使用AndResGuard报错:copy res file not in resources.arsc file:Ezi.xml
  • 插入排序(形象类比)
  • ElasticSearch 同步的方式
  • easyExcel实现分批导入,动态表头分批导出,以及导出表格样式设置
  • Android BottomNavigationView底部菜单栏文字显示问题
  • 从零开始学习typescript——运算符(条件运算法、逻辑运算符、类型运算符、位运算)
  • 【开源】基于Vue.js的康复中心管理系统
  • 抢先看|第二届世界直播电商大会邀您共话时代“新电商”
  • 火爆火爆!影响超250万读者,Python入门圣经全新升级!
  • 大数据学习(23)-hive on mapreduce对比hive on spark
  • 通过这个简单的技巧让我们的 JavaScript 代码变得异常快
  • vue怎么实现国际化? vue-i18n 插件实现国际化,支持切换不同语言
  • rabbit MQ的延迟队列处理模型示例(基于SpringBoot延时插件实现)
  • 虽不想承认,但这就是CSGO游戏搬砖行业的现状
  • 想问问各位大佬,网络安全这个专业普通人学习会有前景吗?
  • uniapp IOS从打包到上架流程(详细简单) 原创
  • React Native项目接入Sentry指南
  • 首批!创邻科技入选《图数据库金融应用场景优秀案例》
  • WPF树形控件TreeView使用介绍