NX二次開發UF_CAM_set_clear_plane_data 函數介紹

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

UF_CAM_set_clear_plane_data

Defined in: uf_cam_planes.h?
int UF_CAM_set_clear_plane_data(tag_t object_tag, double origin [ 3 ] , double normal [ 3 ] )

overview 概述

Define/edit the origin and normal of a clearance plane

定義/編輯間隙平面的原點和法線

UFUN例子

歡迎訂閱《里海NX二次開發3000例專欄》https://blog.csdn.net/wangpaifeixingyuan/category_8840986.html,點擊鏈接掃碼即可訂閱(持續更新中)。已經有幾百人訂閱,訂閱是永久的,無限期閱讀,如需幫助請私信。

parameters 參數

tag_tobject_tagInputthe parent object of the plane
平面的母體
doubleorigin [ 3 ]Inputthe 3D origin of the plane
平面的三維原點
doublenormal [ 3 ]Inputthe 3D normal of the plane
平面的三維法線

分割

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

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

相關文章

快慢指針判斷環形鏈表

我們在前面文章中寫過用快慢指針判斷鏈表是否帶環&#xff1a; leetcode&#xff1a;環形鏈表-CSDN博客 我們用的是slow指針一次走一步&#xff0c;fast指針一次走兩步&#xff0c;當slow入環后開始了追擊&#xff0c;每走一次距離縮短1&#xff0c;最終就會相遇 思考問題 …

【LeetCode】每日一題 2023_11_23 HTML 實體解析器(調庫/打工)

文章目錄 刷題前嘮嗑題目&#xff1a;HTML 實體解析器題目描述代碼與解題思路 結語 刷題前嘮嗑 題目&#xff1a;HTML 實體解析器 題目鏈接&#xff1a;1410. HTML 實體解析器 題目描述 代碼與解題思路 func entityParser(s string) (ans string) {return strings.NewRepla…

redo log 丟失或者損壞-ORA-01194: 文件 1 需要更多的恢復來保持一致性

#故障場景描述&#xff1a; 1、current redo 損壞或者丟失 2、ORA-01194: 文件 1 需要更多的恢復來保持一致性 C:\Users\ZMI>sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on 星期三 11月 22 16:58:07 2023 Version 19.3.0.0.0 Copyright (c) 1982, …

NX二次開發UF_CAM_set_lower_limit_plane_tag 函數介紹

文章作者&#xff1a;里海 來源網站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CAM_set_lower_limit_plane_tag Defined in: uf_cam_planes.h int UF_CAM_set_lower_limit_plane_tag(tag_t object_tag, tag_t target_tag ) overview 概述 Set the tag of a …

使用 PowerShell 創建共享目錄

在 Windows 中&#xff0c;可以使用共享目錄來將文件和文件夾共享給其他用戶或計算機。共享目錄可以通過網絡訪問&#xff0c;這使得它們非常適合用于文件共享、協作和遠程訪問。 要使用 PowerShell 創建共享目錄&#xff0c;可以使用 New-SmbShare cmdlet。New-SmbShare cmdl…

TypeScript 項目 Airbnb 語法風格 ESLint 配置

TypeScript 項目 Airbnb 語法風格 ESLint 配置 1. 配置 安裝&#xff1a; npm i -D eslint-config-airbnb-typescript typescript-eslint/eslint-plugin^6.0.0 typescript-eslint/parser^6.0.0配置&#xff1a; .eslintrc.js: module.exports {root: true,env: {node: true…

【Antd】antd的Form表單項用Form.Item包裹后,表單校驗不生效的原因及解決辦法

以下代碼是用<Form></Form>包裹的子組件中的render部分的代碼&#xff1a; 可以看到Input.TextArea被<div>包裹住了&#xff0c;這會導致無法被Form表單識別并抓取&#xff0c;因為Form默認只允許放一個子元素。 <div className{styles.textAreaWrap}&g…

算法的奧秘:常見的六種算法(算法導論筆記2)

算法的奧秘&#xff1a;種類、特性及應用詳解&#xff08;算法導論筆記1&#xff09; 上期總結算法的種類和大致介紹&#xff0c;這一期主要講常見的六種算法詳解以及演示。 排序算法&#xff1a; 排序算法是一類用于對一組數據元素進行排序的算法。根據不同的排序方式和時間復…

postman定義公共函數這樣寫,測試組長直呼牛逼!!!

postman定義公共函數 在postman中&#xff0c;如下面的代碼&#xff1a; 1、返回元素是否與預期值一致 var assertEqual(name,actual,expected)>{tests[${name}&#xff1a;實際結果&#xff1a; ${actual} &#xff0c; 期望結果&#xff1a;${expected}]actualexpected…

2023年危險化學品經營單位主要負責人證模擬考試題庫及危險化學品經營單位主要負責人理論考試試題

題庫來源&#xff1a;安全生產模擬考試一點通公眾號小程序 2023年危險化學品經營單位主要負責人證模擬考試題庫及危險化學品經營單位主要負責人理論考試試題是由安全生產模擬考試一點通提供&#xff0c;危險化學品經營單位主要負責人證模擬考試題庫是根據危險化學品經營單位主…

Exception:Zero date value prohibited

運行了很久的系統&#xff0c;突然不能訪問&#xff0c;報錯如下&#xff1a; Error attempting to get column updated_time from result set. Cause: java.sql.SQLException: Zero date value prohibited; SQL []; Zero date value prohibited; nested exception is java.…

【追求卓越12】算法--堆排序

引導 前面幾節&#xff0c;我們介紹了有關樹的數據結構&#xff0c;我們繼續來介紹一種樹結構——堆。堆的應用場景有很多&#xff0c;比如從大量數據中找出top n的數據&#xff1b;根據優先級處理網絡請求&#xff1b;這些情景都可以使用堆數據結構來實現。 什么是堆&#xf…

【20年揚大真題】編寫程序,功能是計算1~10之間的偶數之和

【20年揚大真題】 編寫程序&#xff0c;功能是計算1~10之間的偶數之和 #include<stdio.h> int main() {int i 1;int sum 0;for (i 1;i < 10;i){if (i % 2 0){sum i;}}printf("%d", sum); }

Java核心知識點整理大全9-筆記

目錄 null文章瀏覽閱讀9w次&#xff0c;點贊7次&#xff0c;收藏7次。Java核心知識點整理大全https://blog.csdn.net/lzy302810/article/details/132202699?spm1001.2014.3001.5501 Java核心知識點整理大全2-筆記_希斯奎的博客-CSDN博客 Java核心知識點整理大全3-筆記_希斯…

FindMy技術用于充電寶

充電寶是一種便捷的充電器&#xff0c;方便個人隨身攜帶&#xff0c;能夠自行儲備電能&#xff0c;為主流電子設備提供充電服務。它廣泛應用于沒有外部電源供應的場所&#xff0c;例如旅行、戶外活動或緊急情況下&#xff0c;為用戶的手持設備提供持續的電力支持&#xff0c;確…

spring boot加mybatis puls實現,在新增/修改時,對某些字段進行處理,使用的@TableField()或者AOP @Before

1.先說場景&#xff0c;在對mysql數據庫表數據插入或者更新時都得記錄時間和用戶id 傳統實現有點繁瑣&#xff0c;這里還可以封裝一下公共方法。 2.解決方法&#xff1a; 2.1&#xff1a;使用aop切面編程&#xff08;記錄一下&#xff0c;有時間再攻克&#xff09;。 2.1.1&am…

讀書筆記:彼得·德魯克《認識管理》第30章 管理溝通

一、章節內容概述 我們知道&#xff0c;組織中的溝通是感知&#xff0c;也是期望&#xff0c;會產生要求&#xff0c;并且與信息不同&#xff0c;二者是對立的卻相互依賴。 我們知道&#xff0c;下行溝通沒有效果&#xff0c;只有上行溝通才能達到目的&#xff0c;并且 我們還…

軟件工程第十二周

軟件作坊、軟件危機、軟件過程控制、重型控制、敏捷、DevOps 這些術語概括了軟件開發歷史和實踐中的幾個重要概念和階段。讓我們逐一解析它們&#xff1a; 軟件作坊&#xff08;Software Craftsmanship&#xff09;&#xff1a;這是軟件開發的早期模式&#xff0c;強調個人技能…

【面試題】for...in 和 for...of 的區別

給大家推薦一個實用面試題庫 1、前端面試題庫 &#xff08;面試必備&#xff09; 推薦&#xff1a;★★★★★ 地址&#xff1a;web前端面試題庫 JavaScript 是一門強大而靈活的編程語言&#xff0c;提供了多種迭代對象的方式。兩個常見的迭代方式是 for...in 和…

Boost獲取當前時間并格式化為字符串

格式化為字符串 時間轉字符串有兩種方法 #include <boost/date_time/posix_time/posix_time.hpp> #include <iostream>std::string getCurrentTime() {boost::posix_time::ptime currentTime boost::posix_time::microsec_clock::local_time(); std::string …