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.pswp.cn/news/167029.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/167029.shtml
英文地址,請注明出處:http://en.pswp.cn/news/167029.shtml

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

相關文章

Android11編譯第七彈:串口文件讀寫

問題&#xff1a;需要對SIM卡進行管理&#xff0c;支持APP切換SIM卡。此功能需要訪問串口文件&#xff0c;并且對串口文件進行讀寫。APP操作串口文件/dev/ttyUSB1時&#xff0c;串口文件打開失敗。 2023-11-23 10:59:44.092 14264-14264 MULTI_CARD_SerialHandle com.wellnkio…

三分鐘快速理解 ChatGPT 背后的大模型技術

在過去的十年中&#xff0c;人工智能領域取得了重大突破&#xff0c;其中自然語言處理&#xff08;NLP&#xff09;是其重要子領域之一。NLP使用的模型之一是大型語言模型&#xff08;LLMs&#xff09;。LLMs被設計用于處理大量文本數據&#xff0c;采用先進的神經網絡架構&…

nodejs 文件目錄監聽 chokidar watchpack

文件監聽實現&#xff0c;推薦使用chokidar&#xff1a; chokidar 默認是基于事件監聽文件 const chokidar require("chokidar"); const folderToWatch path.join(__dirname, "lib"); const watcher chokidar.watch(folderToWatch, { ignored: /(^|[…

在Vue中使用Echarts

文章目錄 Echarts1. 介紹2. 體驗NPM 安裝 Echarts定義 Echarts 容器引入 Echarts 3. 基礎配置 Echarts 1. 介紹 常見的數據可視化庫&#xff1a; D3.js 目前 Web 端評價最高的 Javascript 可視化工具庫(入手難)ECharts.js 百度出品的一個開源 Javascript 數據可視化庫Highch…

鼠標拖拽問題,不選中文本不觸發單擊事件

文章目錄 1. 為什么鼠標單擊的時候觸發了mousemove事件&#xff1f;明明鼠標沒有移動2. 鼠標拖拽元素怎么能不觸發單擊事件&#xff1f;怎么處理鼠標在元素內的相對定位&#xff0c;而不是每次定位到左上角&#xff1f;方式一&#xff1a;拖拽的元素沒有注冊click監聽就不會觸發…

10年測試老鳥,自動化測試經驗10條建議,一路狂飆...

目錄&#xff1a;導讀 前言一、Python編程入門到精通二、接口自動化項目實戰三、Web自動化項目實戰四、App自動化項目實戰五、一線大廠簡歷六、測試開發DevOps體系七、常用自動化測試工具八、JMeter性能測試九、總結&#xff08;尾部小驚喜&#xff09; 前言 1、哪一刻&#x…

Java面試題(每天10題)-------連載(37)

目錄 Mysql篇 1、Mysql如何優化DISTINCT&#xff1f; 2、如何輸入字符為十六進制數字&#xff1f; 3、如何顯示前50行&#xff1f; 4、可以使用多少列創建索引&#xff1f; 5、NOW()和CURRENT_DATE()有什么區別&#xff1f; 6、什么樣的對象可以使用CREATE語句創建&…

Postman如何使用(二):Postman Collection的創建/使用/導出分享等

一、什么是Postman Collection&#xff1f; Postman Collection是可讓您將各個請求分組在一起。 您可以將這些請求組織到文件夾中。中文經常將collection翻譯成收藏夾。如果再下文中看到這樣的翻譯不要覺得意外。Postman Collection會使你的工作效率更上一層樓。Postman Colle…

【洛谷 B2080】計算多項式的值 題解(順序結構+四則運算)

計算多項式的值 題目描述 假定多項式的形式為 x n x ( n ? 1 ) x^nx^{(n-1)} xnx(n?1) … x 2 x 1 x^2x1 x2x1&#xff0c;請計算給定單精度浮點數 x x x 和正整數 n n n 值的情況下這個多項式的值。多項式的值精確到小數點后兩位&#xff0c;保證最終結果在 doub…

NFS 速度變慢問題排查 性能優化

NFS 使用 RPC 來進行客戶端和服務器之間的通信。而在 RPC 的底層&#xff0c;NFS 使用 TCP 來進行數據的可靠傳輸&#xff0c;以便客戶端和服務器之間能夠有效地傳輸文件和進行遠程調用&#xff08;默認為TCP,也可調整為udp&#xff09; 1.首先服務器端啟動RPC服務portmap&…

教師工作就業前景

在這個知識爆炸的時代&#xff0c;當老師無疑是社會發展的重要基石。隨著科技的進步和社會的發展&#xff0c;教育行業的需求也在不斷增長。那么&#xff0c;教師工作的就業前景如何呢&#xff1f; 我們來看看教師工作的市場需求。隨著國家對教育的重視和投入的增加&#xff0c…

C/C++ 實現Socket交互式服務端

在 Windows 操作系統中&#xff0c;原生提供了強大的網絡編程支持&#xff0c;允許開發者使用 Socket API 進行網絡通信&#xff0c;通過 Socket API&#xff0c;開發者可以創建、連接、發送和接收數據&#xff0c;實現網絡通信。本文將深入探討如何通過調用原生網絡 API 實現同…

「Java開發中文指南」IntelliJ IDEA插件安裝(一)

IntelliJ IDEA是java編程語言開發的集成環境。IntelliJ在業界被公認為最好的Java開發工具&#xff0c;尤其在智能代碼助手、代碼自動提示、重構、JavaEE支持、各類版本工具(git、svn等)、JUnit、CVS整合、代碼分析、 創新的GUI設計等方面的功能是非常強大的。 插件擴展了Intel…

【分布式】分布式中的時鐘

一、物理時鐘 vs 邏輯時鐘 時鐘的存在主要是為了標識事件的發生順序。 分布式系統不使用物理時鐘記錄事件&#xff0c;分布式系統中每個節點記錄的時間并不一樣&#xff0c;即使設置了 NTP 時間同步節點間也存在毫秒級別的偏差 所以需要有另外的方法記錄事件順序關系&#x…

vue2中使用echarts

1,安裝echarts npm install --save echarts 2&#xff0c;具體頁面 <template><div class"app-container"><div class"aa" id"main" style"width: 500px; height: 400px;"></div></div> </te…

PDF 批量處理軟件BatchOutput PDF mac中文版介紹

BatchOutput PDF mac是一款適用于 Mac 的 PDF 批量處理軟件。它可以幫助用戶將多個 PDF 文件進行異步處理&#xff0c;提高工作效率。 BatchOutput PDF 可以自動化執行許多任務&#xff0c;包括 PDF 文件的打印、轉換、分割、壓縮、加密、重命名等&#xff0c;而且它還可以將自…

Elasticsearch知識

目錄 Elasticsearch邏輯設計和物理設計 邏輯設計物理設計Elasticsearch原理 倒排索引文檔的分析過程保存文檔搜索文檔寫數據的底層原理 數據刷新&#xff08;fresh&#xff09;事務日志的寫入ES在大數據量下的性能優化 文件系統緩存優化數據預熱文檔&#xff08;Document&…

【數據分享】2023年我國省市縣三級的瞪羚企業數量(免費獲取/Excel/Shp格式)

企業是經濟活動的參與主體。一個城市的企業數量決定了這個城市的經濟發展水平&#xff01;比如一個城市的金融企業較多&#xff0c;那這個城市的金融產業肯定比較發達&#xff1b;一個城市的制造業企業較多&#xff0c;那這個城市的制造業肯定比較發達。 之前我們給大家分享了…

《opencv實用探索·二》根據RGB的像素排列來理解圖像深度、像素深度和位深度

通常對于RGB圖像主要分為RGB16&#xff0c;RGB24和RGB32。RGB16從高位到低位的排列為R->G->B&#xff0c;RGB24和RGB32從高位到低位的排列為B->G->R。 RGB16: 16 位為一個存儲單元&#xff08;一個像素&#xff09;&#xff0c;來存儲一個RGB像素;因為人眼對綠色比…

社區物聯網云服務架構設計

文章目錄 1 摘要2 架構圖2.1 社區物聯網云服務網絡拓撲圖2.2 社區物聯網云服務通訊流程圖2.3 社區遠程開鎖功能流程圖 3 應用場景 1 摘要 隨著社區管理越來越智能化&#xff0c;社區物聯網升級與改造的市場空間也越來越大。社區物聯網包含樓宇對講、門禁門鎖、通道閘等等設備系…