999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于NX二次開發的非參數圓孔實現參數化的方法研究

2023-08-18 02:56:08王皓宇何定全楊繼偉鹿小亮鄭萬清葛源坤
機械 2023年3期
關鍵詞:參數化

王皓宇 何定全 楊繼偉 鹿小亮 鄭萬清 葛源坤

摘要:為提高工作效率,基于NX平臺,研究了一種非參數圓孔實現參數化的方法。對本研究所采用的NX二次開發方式進行了分析,通過定制菜單按鈕動作,實現順序調用基于NXOpen C++開發的動態鏈接庫文件和宏文件。同時,基于MenuScript腳本語言,在標準菜單欄和工具條中添加了定制菜單欄和工具條方便程序動態調用,通過在UIStyler模塊中定制對話框實現程序的人機交互與參數傳遞,聯合NXOpen C++和宏命令編寫了非參數圓孔的參數化程序。在單基準面和多基準面非參數圓孔實現參數化的實例中,通過與傳統參數化方式對比,采用本研究的程序化方法均用時較少。經分析和計算,得出:本文研究的非參數圓孔實現參數化的方法,能有效實現模型大批量非參數圓孔的參數化,能提高工作效率約50%。

關鍵詞:NX二次開發;參數化;圓孔;宏命令;C++

中圖分類號:TP311.1 文獻標志碼:A doi:10.3969/j.issn.1006-0316.2023.03.004

文章編號:1006-0316 (2023) 03-0021-06

A Parametric Approach to Nonparametric Circular Hole Based on NX Secondary Development

WANG Haoyu,HE Dingquan,YANG Jiwei,LU Xiaoliang,ZHENG Wanqing,GE Yuankun

( Sichuan Jiuzhou Electric Appliance Group Co., Ltd., Mianyang 621000, China )

Abstract:In order to improve the work efficiency, based on the NX platform, a non-parametric circular hole parameterization method is studied. The NX secondary development method adopted in this study is analyzed, and the dynamic link library files and macro files developed based on NXOpen C++ are called sequentially by customizing the menu button actions. At the same time, based on the MenuScript scripting language, a custom menu bar and a toolbar are added to the standard menu bar and the tool bar to facilitate the dynamic call of the program, the human-computer interaction and parameter transfer of the program are realized by customizing the dialog box in the UIStyler module, and a parametric program for the non-parametric circular hole is written through NXOpen C++ and macro command. In the case of parameterization of single-base and multi-base non-parametric circular holes, compared with the traditional parameterization method, the programming method in this study takes less time. Through the analysis and calculation, it is concluded that the method of realizing the parameterization of non-parametric circular holes studied in this paper can effectively realize the parameterization of large-scale non-parametric circular holes in the model, and can improve the work efficiency by about 50%.

Key words:NX secondary development;parameterization;round hole;macro command;C++

在實際機械設計中,對于大型復雜的機械結構,常采用協同化設計方法。在協同設計過程中,由于各設計人員使用的三維設計軟件各不相同,一般采用STP或X_T的中間格式文件實現數據傳遞,而這種數據傳遞方式主要傳遞結構的拓撲數據,沒有傳遞設計的各項參數,不方便后續設計更改和參數優化[1-2]。

隨著計算機輔助設計(Computer Aided Design,CAD)的發展,各三維結構設計軟件為滿足用戶需求,開放了軟件接口(Application Programming Interface,API)[3-4]。本文根據企業結構設計人員的需求,以提高工作效率為目的,基于NX軟件平臺,研究了非參數化圓孔實現參數化的方法。

1? NX二次開發技術

NX實現二次開發的主要方式包括:GRIP(Graphics Interactive Programming,圖形交互編程)、NXOpen C\C++、MenuScript、UIStyler、KF(Knowledge Fusion,知識熔接技術)和調用宏命令等。雖二次開發方式眾多,但最終還是歸結于調用內部C/C++ API執行相關操作[5]。

1.1? GRIP和KF

二者均是面向對象的解釋性編程語言,簡單易學,對編程基礎要求較低,但功能均沒有NXOpen C\C++全面。GRIP幾乎可以執行UG界面下所有的圖形交互操作,采用GRIP二次開發可以提高客戶在交互界面的操作效率。KF是一種基于知識驅動的開發方式,可用于智能CAD系統的開發[6-7]。

1.2? NXOpen C\C++

NXOpen C\C++提供的API包含一系列的過程與函數,是所有二次開發方式中功能最齊全的,且可通過相關API調用其他二次開發方式生成的執行文件實現聯合開發。常通過API調用UIStyler生成的用戶定義對話框文件*.dlg或*.dlx,實現人機交互式操作。

1.3? MenuScript和UIStyler

MenuScript是一種用于用戶定制開發的菜單腳本語言,遵循特定的語法規則,可實現對標準菜單欄和工具條的增添、刪除和更改[8-9]。為實現與用戶交互式操作,可采用UIStyler模塊定制用戶對話框,類似MFC(Microsoft Foundation Classes,微軟基礎類庫)形式的定制模式,且UIStyler模塊內部集成了大量NX風格的控件,能實現大部份交互操作,不僅能生成對話框文件*.dlg或*.dlx,同時能生成指定編程語言的調用源文件和頭文件[10]。

1.4 宏命令

在NX二次開發過程中,對于某個功能是NX自帶的,但又需要配合二次開發的程序文件來使用,便可通過調用宏命令實現,極大提高開發效率,減少開發錯誤率。調用宏命令一般是通過調用包含宏命令的宏文件來執行相關操作。主要有兩種調用宏文件的方式:一是在二次開發的源程序文件中采用相關API調用;二是通過菜單按鈕順序調用[11]。

2 非參數圓孔實現參數化的方法

對于非參特征,要實現參數化,只能通過特征重建的方式。傳統方式實現非參圓孔的參數化主要流程如圖1所示,

首先建立孔位的基準點,再刪除非參圓孔所包含的面,最后建立圓孔特征。對于多個圓孔,如果有類似陣列和鏡像等關聯性質的,可適當采用此方法,但在射頻前端模塊設計中,一般圓孔不具有關聯性質且數量龐大,如采用傳統方式,需手動對模型中每個非參圓孔重復上述流程,這極大降低了設計人員的工作效率。對于重復的工作流程,一般采用批量化的方式進行簡化。本文對可批量化實現非參數圓孔參數化的方法進行研究。

如果只是簡單地將圖1所示流程進行批量化處理,則在創建圓孔特征的過程中,需要手動編寫孔特征程序,并采用UIStyler模塊設計圓孔特征的對話框。通過NX自帶的孔特征對話框可知,重新生成圓孔特征的對話框需要大量控件,且造成了開發資源的浪費。而采用批量創建基準點,同時刪除構成圓孔的所有面,再通過定制按鈕的動作調用宏文件,啟動NX自帶的孔特征命令完成批量操作,則能極大提高設計開發效率,同時充分利用了NX自帶的孔特征命令。

基于以上分析,完成非參圓孔參數化流程如圖2所示。

其中,參數輸入流程調用UIStyler模塊定制參數輸入對話框,程序主體采用NXOpen C++調用相關API實現操作,通過定制菜單欄和工具條,實現該程序與NX軟件無縫鏈接。

2.1 定制菜單欄和工具條

通過定制菜單欄和工具條,可方便用戶直接調用二次開發程序。與一般的菜單按鈕執行單一的ACTIONS(動作)不同,在本研究方法中,菜單按鈕需依次調用程序主體動態鏈接庫文件(*.dll)和創建孔特征的宏文件(*.macro)。因此,按鈕的ACTIONS需要采用/POST設置在調用*.dll文件后調用*.macro文件。具體程序如下:

VERSION 120 !版本號

EDIT UG_GATEWAY_MAIN_MENUBAR !對主框架進行編輯

AFTER UG_HELP!在“幫助”后進行編輯

CASCADE_BUTTON MyModeTool !添加下聯式菜單

LABEL 自建建模工具 !標簽

END_OF_AFTER !結束編輯

BUTTON UnparamHolesCreateParamHoles!添加按鈕

LABEL 非參孔轉參數孔 !按鈕標簽

MESSAGE 選擇非參孔轉為參數孔 !按鈕提示

BITMAP 非參孔創建參數孔 !按鈕位圖

ACTIONS *.dll !按鈕執行的標準動作

END_OF_MENU

MODIFY !對按鈕進行修改

BUTTON UnparamHolesCreateParamHoles

ACTIONS/POST createholes.macro !按鈕執行完標準動作后繼續調用宏文件

END_OF_MODIFY

啟動NX主程序,打開建模模塊時,定制菜單欄和工具條如圖3和圖4所示。

2.2 定制參數輸入對話框

在實際模型中,含有多類型的面,需要用戶選擇性輸入相關圓孔面。為方便選擇圓孔,將選擇過濾器設置為僅選擇圓柱面,圓孔包含的其余面通過NXOpenC++相關API完成自動集成。對話框(圖5)同時需要輸入基準面,以實現轉換過程中自動更改基準面,如圖6所示,基準面1和基準面2分別為方塊的上下表面,選擇不同基準面,在轉換過程中可實現對圓孔的基準面更改。

2.3? NXOpen C++過程

NXOpen C++程序流程如圖7所示,根據用戶輸入的圓柱面,自動集成圓孔所有面并刪除,同時在基準平面上創建圓孔基準點,為后續調用宏文件創建孔特征提供草圖依據。圓孔所有面自動集成過程為workPart→ScRuleFactory()→CreateRuleFaceBossPocket(Face, true),其中CreateRuleFaceBossPocket()方法表示選擇槽孔的所有面,槽孔的種子面儲存在Face變量中。刪除面的過程需定義一個NXOpen::Features:: DeleteFaceBuilder類,并添加自動集成的所有面,當執行類中Commit()方法時,完成刪除面操作。

創建圓孔基準點有兩種方式。方式一:循環圓柱面的兩圓弧邊,當邊位于基準面內時,通過圓弧邊創建圓心點即為基準點。方式二:提取圓柱面中心線,其與基準平面的交點即為基準點。當圓孔為通孔時,方式一可實現基準面變換;當圓孔為非通孔時,方式一無法實現基準面變換,則采用方式二來創建基準點,提取圓柱面中心線需創建NXOpen::Features:: VirtualCurveBuilder類,中心線與基準平面的交點通過草圖工具“相交”所對應的NXOpen:: SketchIntersectionPointBuilder類實現。創建中心線與基準平面交點的部分代碼如下:

NXOpen::SketchIntersectionPoint *nullNXOpen_SketchIntersectionPoint(NULL);

std::vectorsketchIntersectionPointBuilder( num_of_lines); //創建Builder

std::vector section( num_of_lines);

NXOpen::CurveDumbRule *curveDumbRule1;//每條中心線對應的規則

std::vector rules2(1);//規則合集

NXOpen::NXObject *nullNXOpen_NXObject(NULL);

NXOpen::Point3d POINT; //基準平面參考點

std::vector curves(1); //儲存圓柱中心線

std::vector features( num_of_lines);

for (int i = 0; i

{

sketchIntersectionPointBuilder[i] = workPart->Sketches()->CreateIntersectionPointBuilder(nullNXOpen_SketchIntersectionPoint);

section[i] = sketchIntersectionPointBuilder[i]->Rail();

//僅通過曲線與草圖相交創建點

section[i]->SetAllowedEntityTypes(NXOpen::Section::AllowTypesOnlyCurves);

curves[0] = LinesArray[i];//分別傳遞每條中心線

curveDumbRule1 = workPart->ScRuleFactory()->CreateRuleBaseCurveDumb(curves);

rules2[0]=curveDumbRule1;

section[i]->AddToSection(rules2, LinesArray[i], nullNXOpen_NXObject, nullNXOpen_NXObject,POINT, NXOpen::Section::ModeCreate, false);

sketchIntersectionPointBuilder[i]->UpdateData();

features[i]= sketchIntersectionPointBuilder[i]->CommitFeature();

sketchIntersectionPointBuilder[i]->Destroy();

}

theSession->ActiveSketch()->Deactivate(NXOpen::Sketch::ViewReorientFalse, NXOpen::Sketch::UpdateLevelModel); //退出草圖

為方便用戶統計,可調用模態化窗口反饋給用戶相關信息。其代碼如下:

char out_num[256];

sprintf(out_num,"您選擇了 %d 個圓柱面!",num_of_lines);

theUI->NXMessageBox()->Show("統計",

NXOpen::NXMessageBox::DialogTypeInformation, out_num);

3 方法運用實例

3.1 單基準面非參圓孔參數化

以某射頻連接器安裝面板(圖8)為例,該模型由電路設計人員導出,儲存為STP的中間格式文件,模型包含兩類孔共128個,現需將大孔調整為直徑為4.9 mm的通孔,將小孔調整為M1.6的螺紋孔。根據分析,有三種方式重建圓孔,分別為:采用傳統方式逐一重建圓孔(逐一法)、采用矩陣方式重建圓孔(矩陣法)以及本研究所述方式重建圓孔(程序法)。在64位16G內存的電腦中,基于NX10.0軟件分別采用三種方式對非參數圓孔參數化,參數化結果如圖9所示,耗時統計如表1所示。

由表1可知,在本模型中相較于逐一法,程序法所用時間約為其1/5,建模效率提升了約80%;相較于矩陣法,程序法所用時間約為其1/2,建模效率提升了約50%。矩陣法雖然省去了手動逐一重建圓孔的過程,但測量矩陣間距同樣耗費時間,程序法只需輸入要重建的圓孔,即可自動化實現參數化重建。

3.2 多基準面非參圓孔參數化

以某天線測試轉臺底架(圖10)為例,底架四周均有直徑為2.5 mm的通孔,現將其參數化為M3的螺紋孔。同樣采用逐一法和程序法參數化圓孔,相比于矩陣法,鏡像法更適用于本實例,因此,用鏡像法代替矩陣法參與對比,所用時間如表2所示。

由表2可知,在本模型中逐一法和鏡像法所用時間幾乎相等,而程序法所用時間約為這二者的1/2,建模效率提升了50%以上。

4 結語

分析了NX二次開發技術的主要途徑,并基于參數化設計,研究了一種將非參圓孔參數化的方法。基于NX平臺編寫了非參圓孔批量實現參數化的程序,實現了利用定制按鈕順序調用動態鏈接庫文件和宏文件,將非參圓孔的參數化過程程序化。經實例驗證,工作效率提高了約50%。本文的研究是一次完整的NX二次開發流程,不僅為非參模型實現參數化提供了一種指導方法,同時也為設計人員提高結構建模效率提供借鑒。

參考文獻:

[1]王小明,王耕耘,張文明,等. 基于知識與UG二次開發的吊具參數化設計系統[J]. 機械工程與自動化,2016(1):83-85.

[2]Liu Xinhua,Li Qi,Liu Youhui,et al. Development of a Rapid Design System for Aerial Work Truck Subframe with UG Secondary Development Framework[J]. Procedia Engineering,2011(15):2961-2965.

[3]項輝宇,周哲人,馬麗萍,等. UG NX 二次開發在CAD模型離散中的應用[J]. 機床與液壓,2020,48(5):146-149.

[4]王志雄. 基于UG的焊縫自動清理軟件開發和應用[J]. 現代制造技術與裝備,2020(5):121-122.

[5]唐康林. Siemens NX二次開發[M]. 北京:電子工業出版社,2021.

[6]李明新,李斌. UG NX 二次開發在產品圖樣標準化管理中的應用[J]. 現代制造工程,2016(10):26-50.

[7]潘泓誼,劉淑梅,毛欣然. 基于 UG 二次開發的GRIP標準件庫制作系統研究[J]. 現代制造技術與裝備,2021(4):64-65.

[8]李麗芳,王燕,陳開朗,等. 基于UG的汽車覆蓋件小圓角識別二次開發[J]. 模具制造,2019(12):7-10.

[9]侯永濤,丁向陽. UG/Open二次開發與實例精解[M]. 北京:化學工業出版社,2007.

[10]趙玉善,郭慧. 基于NX/Open的懸掛式爬坡輸送線的碰撞檢測仿真系統開發[J]. 圖學學報,2015(6):950-954.

[11]張樂林,祝錫晶,葉林征. 基于UG二次開發的參數化建模方法[J]. 計算機系統應用,2016(1):146-149.

[12]張偉,劉葵,謝正武,等. 基于UG宏程序后置處理的二次開發技術研究[J]. 新技術新工藝,2022(2):52-56.

收稿日期:2022-04-02

作者簡介:王皓宇(1994-),男,四川廣元人,碩士研究生,主要研究方向為天線雷達結構設計與仿真、CAD/CAE軟件二次開發,E-mail:601531072@qq.com。

猜你喜歡
參數化
基于主斷面參數的車身結構剛度鏈快速求解
參數化設計在當代景觀中的應用初探
從一道考研題談空間曲線積分的計算
Pro/E的三維往復壓縮機參數化模型庫的建立
一種懸架運動仿真快速建模方法研究
汽車科技(2016年6期)2016-12-19 20:32:56
基于參數化的散料輸送機械快速設計系統開發
參數化時代的數控加工與建造研究
股骨頸骨折內固定方式優選方法研究
基于Pro/ENGINEER的圓柱齒輪參數化虛擬設計
液壓挖掘機參數化姿態控制系統
主站蜘蛛池模板: 国产精品.com| 亚洲性影院| 九九九精品成人免费视频7| 3344在线观看无码| 日韩福利视频导航| 91毛片网| 在线中文字幕日韩| 在线播放国产一区| 国产一区二区三区免费观看| 国产高清不卡| 久久国产高潮流白浆免费观看| 夜夜操狠狠操| 四虎影视库国产精品一区| 国产综合亚洲欧洲区精品无码| 国产手机在线ΑⅤ片无码观看| 在线观看亚洲天堂| 国产91久久久久久| 五月婷婷精品| a级毛片免费网站| 麻豆精品在线播放| 欧美yw精品日本国产精品| 亚洲综合狠狠| 欧美日韩在线成人| 国产成人久久综合一区| 九九久久精品免费观看| 拍国产真实乱人偷精品| 亚洲日韩精品无码专区97| 婷婷亚洲视频| 久久香蕉国产线看精品| 国产精品久久精品| 亚洲欧美一区在线| 亚洲人成网站在线播放2019| 日韩福利在线观看| 波多野结衣AV无码久久一区| 欧美视频在线观看第一页| 国产精品男人的天堂| 四虎国产成人免费观看| 91精品最新国内在线播放| 日韩高清成人| 成人国产一区二区三区| 亚洲无码精彩视频在线观看| 97国产精品视频自在拍| 国产精品第一区| 国产精品人成在线播放| 亚洲天堂久久| 97亚洲色综久久精品| 国产精品爽爽va在线无码观看 | 性视频一区| 国产一二三区在线| 欧美一级黄色影院| 国模私拍一区二区三区| 极品私人尤物在线精品首页| 全裸无码专区| 国产区人妖精品人妖精品视频| 国产欧美日韩va另类在线播放| 91视频精品| 久久99国产精品成人欧美| 永久免费av网站可以直接看的| 伊人91在线| 免费A级毛片无码无遮挡| 九色免费视频| 亚洲男人的天堂在线| 亚洲最新网址| 毛片大全免费观看| 国产黄视频网站| 嫩草国产在线| 久久不卡精品| 久久99国产乱子伦精品免| 欧美一级在线| 午夜不卡视频| 99这里只有精品免费视频| 欧美在线视频不卡| 怡春院欧美一区二区三区免费| 青草视频在线观看国产| 天天摸夜夜操| 欧美日韩资源| 国产av一码二码三码无码| 91在线高清视频| 日韩在线第三页| 久草网视频在线| 91精品情国产情侣高潮对白蜜| 中文字幕亚洲综久久2021|