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

效果:
效果

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/168149.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/168149.shtml
英文地址,請注明出處:http://en.pswp.cn/news/168149.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

nodejs+vue+python+PHP+微信小程序-青云商場管理系統的設計與實現-安卓-計算機畢業設計

研究步驟、措施&#xff1a; &#xff08;1&#xff09;與指導老師確定系統主要功能&#xff1b; &#xff08;2&#xff09;做需求分析及功能模塊劃分&#xff1b; &#xff08;3&#xff09;指導老師通過后&#xff0c;設計出用例圖&#xff0c;E-R圖&#xff0c;功能模塊圖 …

【XSLVGL2.0】如何新增一種語言和詞條

XSLVGL2.0 開發手冊 【XSLVGL2.0】如何新增一種語言和詞條 1、概述2、以外置資源的方式增加詞條3、以內置資源的方式增加詞條4、使用方法1、概述 本文件旨在介紹新增一種語言詞條的方法 2、以外置資源的方式增加詞條 假設項目需要增加一種英文的詞條。一般地,我們采用國際…

Git-將指定文件回退到指定版本

場景1&#xff1a;修改了文件/path/to/file&#xff0c;沒有提交&#xff0c;但是覺得改的不好&#xff0c;想還原。 解決&#xff1a; git checkout -- /path/to/file 場景2&#xff1a;修改了文件/path/to/file&#xff0c;已經提交&#xff0c;但是覺得改的不好&#xff0c…

老牌開源 SVG 編輯器 SVGEdit 是如何架構的?

大家好&#xff0c;我是前端西瓜哥。這次簡單看看 SVGEdit 的架構。 SVGEdit 的版本為 7.2.0。 SVGEdit 一款非常老牌的 SVG 圖形編輯器&#xff0c;用于編輯處理 SVG&#xff0c;start 數目前是 5.8k。 它的優點在于經過多年的開發&#xff0c;完成度高&#xff0c;較為成熟&a…

大眾博客系統測試報告【改】

一、項目背景 大眾博客系統采用前后端分離的方法來實現&#xff0c;同時使用了數據庫來存儲相關的數據&#xff0c;同時將其部署到云服務器上。前端主要有四個頁面構成&#xff1a;登錄頁、列表頁、詳情頁以及編輯頁&#xff0c;以上模擬實現了最簡單的大眾博客系統。其結合后端…

Tars-GO 開發

默認環境是安裝好的 創建服務: tarsgo make App Server Servant GoModuleName Tars 實例的名稱&#xff0c;有三個層級&#xff0c;分別是 App&#xff08;應用&#xff09;、Server&#xff08;服務&#xff09;、Servant&#xff08;服務者&#xff0c;有時也稱 Object&am…

LeetCode Hot100 74.搜索二維矩陣

題目&#xff1a; 給你一個滿足下述兩條屬性的 m x n 整數矩陣&#xff1a; 每行中的整數從左到右按非嚴格遞增順序排列。每行的第一個整數大于前一行的最后一個整數。 給你一個整數 target &#xff0c;如果 target 在矩陣中&#xff0c;返回 true &#xff1b;否則&#x…

數據結構——堆的實現

堆的實現-----C語言版 目錄&#xff1a;一、堆的實現1.1堆的定義1.2堆的實現1.2.1堆的各個接口1.2.2堆的向上調整1.2.3堆的向下調整1.2.4堆的定義聲明和初始化1.2.5堆的數據處理1.2.6堆的判空和堆的數據個數以及堆銷毀1.2.7堆的代碼實現 二、TOP—K問題 目錄&#xff1a; 一、…

C++ 文件和流、異常處理、動態內存、預處理器

一、C文件和流&#xff1a; 在C中進行文件處理&#xff0c;需要包含頭文件<iostream>和<fstream>。fstream標準庫定義的三個新的數據類型&#xff1a; 數據類型 描述 ofstream 該數據類型表示輸出文件流&#xff0c;用于創建文件并向文件寫入信息。 ifstream …

vscode項目推送到git

1、打開項目文件 打開文件后點擊vs code左側工具欄中第三個源代碼管理圖標&#xff0c;點擊初始化倉庫&#xff0c;此時會創建一個本地倉庫會檢查該項目中的文件變更 2、創建遠程倉庫 點擊克隆/下載&#xff0c;復制HTTPS地址 3、添加遠程地址 1&#xff09;圖形化操作 2…

Leetcode刷題之用隊列實現棧(C語言版)

Leetcode刷題之用隊列實現棧&#xff08;C語言版&#xff09; 一、題目描述二、題目要求三、題目示例四、題目解析Ⅰ、MyStack* myStackCreateⅡ、void myStackPush(MyStack* obj, int x)Ⅲ、int myStackPop(MyStack* obj)Ⅳ、int myStackTop(MyStack* obj)Ⅴ、bool myStackEmp…

文件夾重命名:徹底擺脫數字困擾,批量修改文件夾名去除數字

在日常生活和工作中&#xff0c;經常會遇到需要修改文件夾名稱的情況。有時候是因為文件夾名稱中包含了數字&#xff0c;有時候是因為文件夾名稱不符合規范。無論出于什么原因&#xff0c;修改文件夾名稱都是一件非常繁瑣的事情。尤其是需要修改大量文件夾名稱時&#xff0c;手…

Jenkins 整合 Docker 自動化部署

Docker 安裝 Jenkins 配置自動化部署 1. Docker 安裝 Jenkins 1.1 拉取鏡像文件 docker pull jenkins/jenkins1.2 創建掛載文件目錄 mkdir -p $HOME/jenkins_home1.3 啟動容器 docker run -d -p 8080:8080 -v $HOME/jenkins_home:/var/jenkins_home --name jenkins jenkin…

CentOS rpm安裝Nginx和配置

CentOS rpm安裝Nginx和配置 官方下載地址: http://nginx.org/en/download.html 介紹 Nginx(“engine x”)是一款由俄羅斯的程序設計師Igor Sysoev所開發高性能的 Web和 反向代理 服務器&#xff0c;也是一個 IMAP/POP3/SMTP 代理服務器。 rpm包安裝 #安裝nginx&#xff0c…

k8s部署的java服務查看連接nacos緩存的配置文件

一、問題描述 k8s部署的java服務&#xff0c;使用nacos中的配置文件&#xff0c;需要在緩存中查看該服務具體是使用到了哪些配置文件 二、解決 參考文檔: https://nacos.io/zh-cn/docs/system-configurations.html 文檔描述如下: 進入java服務容器進入用戶目錄下的nacos&a…

4-Docker命令之docker version

1.docker version介紹 docker version命令是用于查看docker容器的版本信息 2.docker version用法 docker version [參數] [root@centos79 ~]# docker version --helpUsage: docker version [OPTIONS]Show the Docker version informationOptions:-f, --format string Fo…

Android 12.0 mt6771新增分區功能實現四

1.前言 在12.0的系統rom開發中,在對某些特殊模塊中關于數據的存儲方面等需要新增分區來保存, 所以就需要在系統分區新增分區,接下來就來實現這個功能,看第四部分的新增分區的實現過程 2.mt6771新增分區功能實現四的核心類 device/mediatek/mt6771/ueventd.mt6771.rcdevice…

Java枚舉詳解

一、什么是枚舉類型 枚舉類型是一種特殊的數據類型&#xff0c;用于定義一組固定的命名常量。枚舉類型提供了一種更強大、更安全和更易讀的方式來表示一組相關的常量。 在Java中&#xff0c;枚舉類型是通過使用enum關鍵字來定義的。枚舉類型可以包含一個或多個枚舉常量&#xf…

常見狀態碼總結

常見狀態碼總結 2xx 200 OK&#xff1a;表示服務器成功處理了客戶端的請求&#xff0c;并返回所請求的數據。這是最常見的狀態碼&#xff0c;表示一切正常。201 Created&#xff1a;表示服務器成功處理了客戶端的 POST 請求&#xff0c;并在服務器上創建了新的資源。204 No C…

vue005——vue組件入門(非單文件組件和單文件組件)

一、非單文件組件 1.1、單文件組件的使用 1.1.1、局部注冊 1、第一步&#xff1a;創建school組件 2、第二步&#xff1a;注冊組件&#xff08;局部注冊&#xff09; 3、第三步&#xff1a;使用組件&#xff08;編寫組件標簽&#xff09; <!DOCTYPE html> <html>…