本文介绍: 计算2x2矩阵的行列式。

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

UF_MTX2_determinant

Defined in: uf_mtx.h 
void UF_MTX2_determinant(const double mtx [ 4 ] , double * determinant )

overview 概述

Calculates the determinant of a 2 x 2 matrix.

计算2x2矩阵的行列式。

UFUN例子

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

parameters 参数

const double mtx [ 4 ] Input Matrix whose determinant in required
需要其行列式的矩阵
double * determinant Output Matrix determinant
矩阵行列式

分割

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&gt;
#include <stdarg.h&gt;
#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;
	//块起点相对于ABS
	double block_orig[3] = { 0.0,0.0,0.0 };
	//方向相对于WCS
	char* block_len[3] = { "10", "30", "10" };
	tag_t blk_obj;//体特征
	UF_MODL_create_block1(sign, block_orig, block_len, &amp;blk_obj);
	int iEdit = 0;  
	char* size[3];
	UF_MODL_ask_block_parms(blk_obj, iEdit, size);
	ECHO("%s,%s,%sn", 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, &amp;cyl_obj_id);
	int iEdit2 = 0;  
	char* cDiameter;
	char* cHeight;
	UF_MODL_ask_cylinder_parms(cyl_obj_id, iEdit2, &amp;cDiameter, &amp;cHeight);
	ECHO("%s,%sn", cDiameter, cHeight);//输出:p9=10,p10=20
	UF_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, &amp;cone_obj_id);
	int iEdit3 = 0;  
	char* cD1;
	char* cD2;
	char* cH;
	char* cAngle;
	UF_MODL_ask_cone_parms(cone_obj_id, iEdit3, &amp;cD1, &amp;cD2, &amp;cH, &amp;cAngle);
	ECHO("%s,%s,%s,%sn", cD1, cD2, cH, cAngle);//输出:p11=10,p12=5,p13=20,p14=7.1250163489018
	UF_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, &amp;sphere_obj_id);
	int iEdit4 = 0;  
	char* cDiam_parm;
	UF_MODL_ask_sphere_parms(sphere_obj_id, iEdit4, &amp;cDiam_parm);
	ECHO("%sn", cDiam_parm);//输出:p15=8
	UF_free(cDiam_parm);
	UF_terminate();
}
extern int ufusr_ask_unload(void)
{
	return (UF_UNLOAD_IMMEDIATELY);
}

效果
效果

原文地址:https://blog.csdn.net/WangPaiFeiXingYuan/article/details/134710553

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_16007.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注