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

NX二次开发UF_CSYS_create_matrix 函数介绍

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

UF_CSYS_create_matrix

Defined in: uf_csys.h 
int UF_CSYS_create_matrix(const double matrix_values [ 9 ] , tag_t * matrix_id )

overview 概述

Creates a 3 x 3 matrix.

创建一个3x3矩阵。

UFUN例子

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

parameters 参数

const doublematrix_values [ 9 ]InputMatrix values – should be normalized and orthogonal. Use UF_MTX3_initialize to create a matrix from X and Y vectors.
矩阵值——应该是规范化的和正交的。使用 UF _ MTX3 _ initialize 从 X 和 Y 向量创建矩阵。
tag_t *matrix_idOutputObject identifier of the matrix
矩阵的对象标识符

分割

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);
}

效果:
效果

相关文章:

NX二次开发UF_CSYS_create_matrix 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CSYS_create_matrix Defined in: uf_csys.h int UF_CSYS_create_matrix(const double matrix_values [ 9 ] , tag_t * matrix_id ) overview 概述 Creates a 3 x 3 matrix. 创建…...

css引入的三种方式

css引入的三种方式 一、内联样式二、外部样式表三、 内部样式表总结trouble 一、内联样式 内联样式也被称为行内样式。它是将 CSS 样式直接应用于 HTML 元素的 style 属性中的一种方式 <p style"color: blue; font-size: 16px;">这是一个带有内联样式的段落。&…...

含羞草研究所研究含羞草的代码

点击进入 一个简单的Python代码示例&#xff0c;用于模拟含羞草的行为&#xff1a; class Mimosa: def __init__(self): self.leaves_open True def touch_leaf(self): if self.leaves_open: print("Leaf closes due to touch.") self.leaves_open False else: p…...

常见立体几何图形的体积

文章目录 abstract祖暅原理推论 棱锥和圆锥的体积用积分的方法推导棱台和圆台的体积圆台体积公式 球体的体积球体的表面积 abstract 锥体和球体的体积公式主要通过积分的方法推导 这类公式的推导中学一般不要求,只要会应用公式在高等数学中由合适和方便的工具来推导这些公式而…...

vue3 + vue-router + keep-alive缓存页面

1.vue-router中增加mate.keepAlive和deepth属性 {path: /,name: home,component: HomeView,meta: {// 当前页面要不要缓存keepAlive: false,// 当前页面层级deepth: 1,}},{path: /list,name: list,component: ListView,meta: {// 当前页面要不要缓存keepAlive: true,// 当前页…...

unigui同页面内重定向跳转,企业微信内部应用开发获取用户code例子

procedure TMainForm.UniFormCreate(Sender: TObject); varurl: string;code: string; begin //如果没有code值&#xff0c;将进行重定向if UniApplication.Parameters.Values[code] thenbeginurl :https://open.weixin.qq.com/connect/oauth2/authorize?appid你们的企业ID&…...

垃圾数据啊

const arr [] //定义空数组 for (const key in this.fgkSyData) { //循环 this。sgksudata 数据arr.push( //push添加到 arr { [key]:this.fgkSyData[key] } //{} 在对象中 重新 定义key value 转换成对象) } console.log(arr, arr) …...

GB/T 29498-2013 木门窗检测

木门窗是指以木材、木质复合材料为主要材料制作框和扇的门窗。 GB/T 29498-2013 木门窗检测项目 测试项目 测试标准 外观质量 GB/T 29498 尺寸 GB/T 29498 装配质量 GB/T 29498 含水率 GB/T 17657 附着力 GB/T 4893.4 外门窗耐冷热循环 GB/T 4893.7 耐划痕 GB/…...

rocketMQ5.0顺序消息golang接入

本人理解&#xff0c;顺序消息如果不分消息组&#xff0c;那么会影响并行处理速度&#xff0c;所以尽量消息组分的散一些 首先上要求&#xff0c;官方文档如下&#xff1a; 总结&#xff1a; 1.必须同一个消息组&#xff0c;消息组和消费组不是一个概念&#xff0c;不要混 2.必…...

HuggingFace-利用BERT预训练模型实现中文情感分类(下游任务)

准备数据集 使用编码工具 首先需要加载编码工具&#xff0c;编码工具可以将抽象的文字转成数字&#xff0c;便于神经网络后续的处理&#xff0c;其代码如下&#xff1a; # 定义数据集 from transformers import BertTokenizer, BertModel, AdamW # 加载tokenizer token Ber…...

PSP - 从头搭建 抗原类别 (GPCR) 的 蛋白质结构预测 项目流程

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/134595717 GPCRs&#xff08;G Protein-Coupled Receptors&#xff0c;G蛋白偶联受体&#xff09;&#xff0c;又称为7次跨膜受体&#xff0c;是细…...

城市NOA加速落地,景联文科技高质量数据标注助力感知系统升级

当前&#xff0c;自动驾驶技术的演进正在经历着从基础L2到L3过渡的重要阶段&#xff0c;其中NOA&#xff08;自动辅助导航驾驶&#xff09;扮演着至关重要的角色。城市NOA&#xff08;L2.9&#xff09;作为城市场景下的NOA&#xff0c;被看作是车企向更高阶自动驾驶迈进的必经之…...

控制反转(IoC)是什么?

文章目录 控制反转&#xff08;Inversion of Control&#xff0c;IoC&#xff09;传统的程序设计中&#xff1a;应用程序控制程序流程控制反转设计中&#xff1a;由框架或容器控制程序流程IoC 的作用 举例生活例子软件工程例子 控制反转&#xff08;Inversion of Control&#…...

Redisson分布式锁源码解析、集群环境存在的问题

一、使用Redisson步骤 Redisson各个锁基本所用Redisson各个锁基本所用Redisson各个锁基本所用 二、源码解析 lock锁 1&#xff09; 基本思想&#xff1a; lock有两种方法 一种是空参 另一种是带参 * 空参方法&#xff1a;会默认调用看门狗的过期时间30*1000&…...

2016年10月4日 Go生态洞察:HTTP追踪介绍

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…...

分布式篇---第四篇

系列文章目录 文章目录 系列文章目录前言一、分布式ID生成有几种方案?二、幂等解决方法有哪些?三、常见负载均衡算法有哪些?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给…...

从零开始的C++(十九)

红黑树&#xff1a; 一种接近平衡的二叉树&#xff0c;平衡程度低于搜索二叉树。 特点&#xff1a; 1.根节点为黑 2.黑色结点的子结点可以是红色结点或黑色结点。 3.红色结点的子结点只能是黑色结点。 4.每个结点到其所有叶子结点的路径的黑色结点个数相同。 5.指向空的…...

opencv-使用 Haar 分类器进行面部检测

Haar 分类器是一种用于对象检测的方法&#xff0c;最常见的应用之一是面部检测。Haar 分类器基于Haar-like 特征&#xff0c;这些特征可以通过计算图像中的积分图来高效地计算。 在OpenCV中&#xff0c;Haar 分类器被广泛用于面部检测。以下是一个简单的使用OpenCV进行面部检测…...

C++纯虚函数和抽象类 制作饮品案例(涉及知识点:继承,多态,实例化继承抽象类的子类,多文件实现项目)

一.纯虚函数的由来 在多态中&#xff0c;通常父类中虚函数的实现是毫无意义的&#xff0c;主要都是调用子类重写的内容。例如&#xff1a; #include<iostream>using namespace std;class AbstractCalculator { public:int m_Num1;int m_Num2;virtual int getResult(){r…...

什么是网关和链路追踪,以及怎么使用?

在云计算中&#xff0c;网关和链路追踪也是非常重要的。云服务提供商通常会提供网关和链路追踪等相关服务来帮助用户管理和优化云计算网络。 云计算中的网关通常包括以下几种&#xff1a; 虚拟网络网关&#xff1a;用于将云中不同虚拟网络之间相互连接&#xff0c;实现云内不同…...

自托管会议智能助理Vexa:开源架构、部署实战与AI集成指南

1. 项目概述&#xff1a;一个能自己部署的会议智能助理如果你和我一样&#xff0c;经常在各种线上会议里疲于奔命&#xff0c;既要参与讨论&#xff0c;又要手忙脚乱地记笔记&#xff0c;最后发现会议纪要一团糟&#xff0c;那你肯定想过&#xff1a;要是有个能自动参会、实时转…...

毕业倒计时最后一周,别再傻傻查资料了!直接让 AI写作工具帮你搞定全文

还在为毕业论文熬夜查文献、改降重、调格式&#xff1f;距离截止只剩最后一周&#xff0c;时间紧、任务重&#xff0c;再用传统方式硬扛&#xff0c;大概率身心俱疲还难达标。聪明的学生早已用上 AI 写作工具&#xff0c;把一周的工作量压缩到几天&#xff0c;效率拉满、质量在…...

机器学习核心概念与实践指南

1. 机器学习领域的边界与定位 作为一名在数据科学领域摸爬滚打多年的从业者&#xff0c;我经常被问到这样一个问题&#xff1a;"机器学习到底是什么&#xff1f;它和人工智能、数据挖掘有什么区别&#xff1f;"这个问题看似简单&#xff0c;但要准确回答却需要理清整…...

sklearn【MAPE】实战避坑指南:从原理到代码的完整解析

1. 为什么你的MAPE指标总是"爆表"&#xff1f; 我刚入行做房价预测时&#xff0c;遇到过一件特别尴尬的事&#xff1a;模型在测试集上的MSE看着还不错&#xff0c;但MAPE值却高得离谱&#xff0c;直接飙到80%以上。当时我的第一反应是"这模型也太烂了吧"&a…...

编程初学者学习:句柄(二)

上篇文章&#xff0c;我们学习了指针。这篇文章&#xff0c;我们来学习一下句柄。相同点句柄和指针都是通过一种间接的方式去操作我们的目标资源。其在代码中的表现方式都是一种整型数值的表现方式&#xff08;地址值本质是一个整型数值&#xff09;。不同点指针在多数语言中是…...

基于下垂控制的光储直流微电网模型:包含光伏、储能与直流负载

基于下垂控制的光储直流微电网模型1.模型由光伏和储能以及直流负载组成 2.光伏采用扰动观测法实现最大功率输出&#xff0c;储能刚开始采用恒定电压控制&#xff0c;电压稳定在额定电压附近&#xff0c;2s之后采用下垂控制&#xff0c;母线电压降低&#xff0c;达到目标光伏板在…...

2026如何选网络安全学习路线,看完普通人也能实现转型高科技人才

2026如何选网络安全学习路线&#xff0c;看完普通人也能实现转型高科技人才 想进网络安全这行&#xff0c;最怕的就是不知道从哪下手。网上资料一堆&#xff0c;反而看懵了。别急&#xff0c;我结合2026年的最新情况&#xff0c;给你捋一条清晰、好走的路。照着走&#xff0c;…...

二叉树中序线索化及中序线索二叉树找前驱/后继

#include <stdio.h> #include <stdlib.h>// 线索二叉树结点 typedef struct ThreadNode {int data;struct ThreadNode *lchild, *rchild;int ltag, rtag; } ThreadNode, *ThreadTree;ThreadNode *pre NULL;void create(ThreadTree &T) {T (ThreadNode *)mal…...

微信聊天记录导出终极指南:无需越狱,永久保存珍贵对话

微信聊天记录导出终极指南&#xff1a;无需越狱&#xff0c;永久保存珍贵对话 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 还在为微信聊天记录丢失而烦恼吗&#xff1…...

逆向实战:从mtgsig3.0签名算法看美团外卖App的移动端安全加固策略

1. mtgsig3.0签名算法的核心机制 美团外卖App的mtgsig3.0签名算法是典型的移动端安全加固方案&#xff0c;它通过多层加密和动态校验机制来确保请求的合法性和数据安全性。这个签名算法主要运行在Native层&#xff0c;相比Java层具有更高的安全性和反逆向能力。 签名算法的核心…...