盧健釗
(中國電子科技集團公司第十研究所,成都 610036)
基于模型定義技術(shù)作為產(chǎn)品數(shù)字化定義的先進方法,將產(chǎn)品的設計信息、工藝制造信息和管理信息共同定義到三維模型中,以MBD模型作為產(chǎn)品生命周期的唯一數(shù)據(jù)源,改變了傳統(tǒng)以工程圖紙為主、三維實體模型為輔的生產(chǎn)制造方式[1~3]。近年來,國內(nèi)裝備制造企業(yè)已認識到MBD技術(shù)的優(yōu)勢,并逐步開始推廣應用MBD技術(shù)[4~6]。針對我所產(chǎn)品的設計、制造現(xiàn)狀,基于模型定義的數(shù)字化設計需求越發(fā)強烈,有必要搭建自己的MBD設計系統(tǒng)以順應數(shù)字化設計與制造技術(shù)的發(fā)展趨勢,建立以三維模型為核心的唯一數(shù)據(jù)源,實現(xiàn)產(chǎn)品數(shù)字化定義信息的有效集成及其應用[7,8]。
NX是Siemens PLM Software公司面向高中端市場推出的新一代數(shù)字化產(chǎn)品開發(fā)系統(tǒng),可為設計、仿真和制造等產(chǎn)品開發(fā)的各環(huán)節(jié)提供靈活強大的集成解決方案,深受眾多大中型企業(yè)的青睞。NX秉承開放式設計的理念,為用戶提供了豐富高效的開發(fā)工具和接口以滿足用戶的個性化需求,實現(xiàn)企業(yè)特定需求的功能定制和開發(fā)。NX Open作為NX提供的二次開發(fā)工具集,支持多種編程語言,通過開放式架構(gòu)可實現(xiàn)企業(yè)的功能定制和集成開發(fā)[9]。
結(jié)合我所產(chǎn)品的設計、制造現(xiàn)狀,針對基于模型定義的數(shù)字化設計需求,以Siemens NX為基礎設計平臺,提出并搭建了MBD設計系統(tǒng)的總體框架。利用NX Open二次開發(fā)工具集,結(jié)合數(shù)據(jù)庫和網(wǎng)絡技術(shù),選用VC++編程語言進行集成開發(fā),實現(xiàn)基于模型定義的產(chǎn)品設計系統(tǒng)功能的個性化定制和開發(fā)。
針對在MBD設計過程中NX三維軟件自身工具功能不足,有必要進行定制開發(fā)。前期已明確了我所MBD設計系統(tǒng)的總體應用框架,主要分為工具層、工程知識層和基礎層三個層次,如圖1所示。整個系統(tǒng)的開發(fā)工作量較大,本文著重以MBD設計輔助工具集、材料庫和模型質(zhì)量自動檢查工具等功能的開發(fā)實現(xiàn)過程為關注對象,以點帶面地介紹整個產(chǎn)品設計系統(tǒng)的實現(xiàn)思路和方法。
考慮到產(chǎn)品設計系統(tǒng)需要大量人機交互操作,開發(fā)的應用程序采用內(nèi)部動態(tài)鏈接庫的形式創(chuàng)建并編譯,以實現(xiàn)用戶功能函數(shù)與NX軟件的無縫集成。
圖1 MBD設計系統(tǒng)總體框架
NX Open是NX提供的二次開發(fā)工具集,主要包括通用應用程序編程接口(Common API)、經(jīng)典應用程序接口(Classic APIs)、日志(Journaling)、知識驅(qū)動自動化(Knowledge Driven Automation)以及Block UI Styler、MenuScript、UI Styler等其他NX工具包,支持C、C++、Java、VB.NET、C#等多種編程語言。NX Open通過開放式架構(gòu)可實現(xiàn)企業(yè)的功能定制和集成開發(fā),從專用的工具集定制到高級的系統(tǒng)功能開發(fā),為用戶高效使用、優(yōu)化NX軟件功能提供了一個靈活開放的平臺[9]。
NX Open應用程序一般包括菜單、工具條、對話框、NX Open API庫函數(shù)和應用程序(DLL)等部分,其中菜單、工具條和對話框是應用程序與用戶交互的工具,從菜單和工具條可以啟動應用程序、對話框等,在對話框激活控件時將調(diào)用相應的回調(diào)函數(shù),應用程序利用編程語言和NX Open提供的相應應用編程接口進行編碼[10]。
針對特定功能的開發(fā),菜單和工具條可通過編寫MenuScript腳本語言實現(xiàn)其創(chuàng)建、編輯和自定義;對話框則結(jié)合Block UI Styler、UI Styler和MFC等方式進行相應的用戶界面定義;NX Open API則為所有的NX應用編程接口提供服務;在Visual Studio集成開發(fā)環(huán)境中選用C++編程語言進行源代碼的創(chuàng)建、編輯、編譯鏈接,進而生成動態(tài)鏈接庫文件,實現(xiàn)對NX軟件的集成開發(fā)。
為了讓工程技術(shù)人員更加方便快捷地完成MBD模型的設計,在NX PMI原有功能的基礎上,遵循我所相關的標準規(guī)范,通過MBD設計輔助工具集的定制開發(fā),完善、拓展PMI功能,實現(xiàn)產(chǎn)品的全三維數(shù)字化快速響應設計?;贜X Open二次開發(fā)工具集,通過集成開發(fā)解決了較為急迫的若干功能需求,主要包括:孔特征標注、技術(shù)要求、形位公差、條框式工藝、參數(shù)表、常用尺寸公差、Φ/M/ST轉(zhuǎn)換、格式刷、視圖更新和PMI對象管理等諸多功能。
圖2 定制的MBD設計工具條
面向?qū)嶋H需求進行的定制開發(fā),大幅擴展了產(chǎn)品制造信息的標注和管理功能,有利于提高設計效率和質(zhì)量。限于篇幅受限,下面僅針對孔特征標注功能的定制開發(fā)做簡要介紹。NX原有的直徑標注手段效率低下,孔標注的類型、數(shù)量、關聯(lián)幾何對象需要大量的交互操作才能完成。
開發(fā)的孔特征標注功能根據(jù)選擇的孔特征自動獲取關聯(lián)幾何、自動統(tǒng)計并標注孔的數(shù)量,將大量的交互操作簡化為程序自動處理,實現(xiàn)孔特征的快速標注,其主要有以下四個特點:
1)支持單個孔特征及其陣列特征、等直徑的多個孔特征的識別;
2)自動識別孔特征類型,若為通孔則自動標注“Φ”,若為螺紋孔則自動標注“M”;
3)自動提取孔的數(shù)量并標注前綴“N-”;
4)自動獲取孔特征的所有幾何面,將其設為尺寸的關聯(lián)對象。
孔特征相關函數(shù)文件為pmiBase.h、pmiBase.cpp。相關的部分函數(shù)定義如下:
void CreateHoleDiameterDimByFace(std::vector
void CreateHoleDiameterDimByEdge(std::vector
void CreateHoleDiameterDimByFaceInst(std::ve
ctor
HRESULT CRefFeatures::GetFeatureInfo(tag_t& objtag, unsigned int tagObj, const CString& strFilter, const CString& strFilterDesc, CRefDataInfo*& pDataInfo) //獲取特征信息
材料庫采用C/S(Client/Server)架構(gòu),在服務器端統(tǒng)一部署、管理材料數(shù)據(jù)庫,保證分布式的NX客戶端的材料數(shù)據(jù)與服務器端實時同步。服務器端的數(shù)據(jù)庫基于我所常用金屬和非金屬材料優(yōu)選清單,涵蓋每種材料的物理性能、化學性能及力學性能等信息,如材料的類型、名稱、牌號、供應狀態(tài)、技術(shù)標準、規(guī)格型號、主要用途、密度、彈性模量、泊松比、剪切模量等多種材料屬性,由系統(tǒng)管理員統(tǒng)一進行材料庫數(shù)據(jù)的更新、維護??蛻舳饲度隢X軟件,通過菜單命令直接訪問服務器數(shù)據(jù)庫。設計人員在NX界面上可分別針對裝配、零件進行批量或單個實體的材料定義。
圖3為批量材料定義的用戶界面,其交互窗口主要由6部分組成,包括裝配導航區(qū)、材料檢索區(qū)、圖形預覽區(qū)、參數(shù)瀏覽區(qū)、材料自定義區(qū)和執(zhí)行區(qū)?!把b配導航區(qū)”為設計人員提供了“列表”、“裝配樹”兩種零部件的組織形式,可進行自制零件的快速查詢、篩選;“材料檢索區(qū)”提供材料類型、材料名稱、材料牌號、供應狀態(tài)等檢索條件,可進行材料信息的快速檢索;“圖形預覽區(qū)”默認狀態(tài)下為我所標識,當選擇型材等材料時將顯示型材截面的圖形信息;“參數(shù)瀏覽區(qū)”將列出當前檢索條件下的所有材料項,當選中列表中的任意條目時,相關的規(guī)格型號、主要用途等信息將顯示在相應區(qū)域;“材料自定義區(qū)”主要用于定義毛坯或新材料等特殊的材料信息,設計師在彈出的對話框中進行材料自定義;“執(zhí)行區(qū)”實現(xiàn)材料屬性的自動賦值,將當前選中或自定義的材料信息快速賦值到NX部件屬性中,并將相關屬性設為鎖定狀態(tài),如圖4所示。
圖3 批量材料定義界面
結(jié)合設計人員的工程需求,通過定制開發(fā),材料庫實現(xiàn)了以下功能:
1)材料庫數(shù)據(jù)統(tǒng)一,方便管理;
2)材料庫數(shù)據(jù)檢索、可視化功能,方便查詢;
3)材料庫數(shù)據(jù)自動、快速、批量賦予給NX部件 屬性;
4)材料信息能被下游的工藝、仿真、加工編程等業(yè)務流程重用。
圖4 材料屬性自動賦值示意圖
為了提高產(chǎn)品設計的質(zhì)量和效率,有必要基于我所的標準規(guī)范和實際需求進行模型質(zhì)量自動檢查工具的定制開發(fā)。相關的定制工作遵循下列基本原則:1)以相關的三維建模、三維標注等標準規(guī)范為技術(shù)依據(jù);2)以模型的有效性和規(guī)范性檢查為重點;3)根據(jù)檢查結(jié)果對模型進行修改,修改完成后需重新對模型進行檢查;4)NX模型須進行模型自動檢查,且只有在檢查結(jié)果為通過狀態(tài)時,才能檢入PDM系統(tǒng)。
根據(jù)業(yè)務需求,梳理出所需的檢查項目,并逐條明確各檢查項目的檢查內(nèi)容、通過條件、提示信息和錯誤類型等內(nèi)容。按照檢查的類別將檢查項目分成了6個部分,每個部分組成一個單獨的檢查包,分別為通用設置檢查、零件模型檢查、草圖檢查、PMI檢查、裝配模型檢查和工程圖檢查。通過與NX Check-Mate的無縫集成,可實現(xiàn)單個文件的交互式檢查和多個文件的批量檢查。
檢查內(nèi)容及其通過條件必須符合相關的標準規(guī)范,并配以相應的提示信息方便查看。同時,根據(jù)檢查項目對模型質(zhì)量的影響程度,定義其錯誤類型并用不同符號區(qū)分顯示錯誤等級。自動檢查工具定義了以下三種錯誤類型:
圖5為通用設置檢查列表,共包含圖層類別、圖層狀態(tài)、圖層對象、對象圖層、工作坐標系和工作視圖等6條檢查項目,各檢查項目的檢查內(nèi)容、通過條件、提示信息和錯誤類型均進行了詳細定義。
圖5 通用設置檢查列表
模型自動檢查后的結(jié)果通過三維可視化的方式輸出,方便設計人員進行查看、分析及處理。錯誤類型的標識符號與模型、錯誤描述信息相關聯(lián),點擊標識符號可實現(xiàn)模型相關錯誤特征和錯誤描述信息的高亮顯示。
根據(jù)模型檢查的結(jié)果,定義了三類模型檢查狀態(tài),分別為通過、失敗和過期。檢查后針對NX模型文件自動創(chuàng)建“CHECKMATE_STATE”屬性以表征檢查結(jié)果狀態(tài),根據(jù)當前的檢查結(jié)果對其進行自動賦值并將此屬性設為鎖定狀態(tài),如圖6所示。
圖6 模型檢查屬性示意圖
模型文件的“CHECKMATE_STATE”屬性值作為相關數(shù)據(jù)接口允許模型文件檢入PDM的先決條件。當觸發(fā)檢入操作時,數(shù)據(jù)接口除了執(zhí)行其他檢索過濾條件外,還將提取判斷模型文件 “CHECKMATE_STATE”的屬性值,只有當其值為“通過”時,相關的數(shù)據(jù)接口才允許其檢入PDM系統(tǒng)。
面向Siemens NX軟件平臺,進行了基于模型定義的產(chǎn)品設計系統(tǒng)的開發(fā)工作,隨著MBD設計輔助工具集、材料庫和模型質(zhì)量自動檢查工具等功能的落地實施,實現(xiàn)了產(chǎn)品的全三維數(shù)字化定義。
圖7 產(chǎn)品全三維數(shù)字化定義示意圖
為搭建基于模型定義的產(chǎn)品設計系統(tǒng),在MBD設計系統(tǒng)的總體框架下,以Siemens NX為基礎設計平臺,對其相關的二次開發(fā)技術(shù)進行了簡要介紹。著重研究探討了設計輔助工具集、材料庫以及模型檢查工具等功能的開發(fā)實現(xiàn)過程,以點帶面地介紹了整個產(chǎn)品設計系統(tǒng)的實現(xiàn)思路和方法。該系統(tǒng)的成功搭建及應用,基本實現(xiàn)了真正的單一數(shù)據(jù)源,加速了我所在數(shù)字化設計、智能化制造領域前進的步伐。隨著基于模型定義技術(shù)的深化應用及其推廣,三維模型上的產(chǎn)品制造信息如何準確高效復用于工藝、制造、檢驗等環(huán)節(jié)將是下一步的研究重點和方向。