盧健釗
(中國電子科技集團公司第十研究所,成都 610036)
基于模型定義技術作為產品數字化定義的先進方法,將產品的設計信息、工藝制造信息和管理信息共同定義到三維模型中,以MBD模型作為產品生命周期的唯一數據源,改變了傳統以工程圖紙為主、三維實體模型為輔的生產制造方式[1~3]。近年來,國內裝備制造企業已認識到MBD技術的優勢,并逐步開始推廣應用MBD技術[4~6]。針對我所產品的設計、制造現狀,基于模型定義的數字化設計需求越發強烈,有必要搭建自己的MBD設計系統以順應數字化設計與制造技術的發展趨勢,建立以三維模型為核心的唯一數據源,實現產品數字化定義信息的有效集成及其應用[7,8]。
NX是Siemens PLM Software公司面向高中端市場推出的新一代數字化產品開發系統,可為設計、仿真和制造等產品開發的各環節提供靈活強大的集成解決方案,深受眾多大中型企業的青睞。NX秉承開放式設計的理念,為用戶提供了豐富高效的開發工具和接口以滿足用戶的個性化需求,實現企業特定需求的功能定制和開發。NX Open作為NX提供的二次開發工具集,支持多種編程語言,通過開放式架構可實現企業的功能定制和集成開發[9]。
結合我所產品的設計、制造現狀,針對基于模型定義的數字化設計需求,以Siemens NX為基礎設計平臺,提出并搭建了MBD設計系統的總體框架。利用NX Open二次開發工具集,結合數據庫和網絡技術,選用VC++編程語言進行集成開發,實現基于模型定義的產品設計系統功能的個性化定制和開發。
針對在MBD設計過程中NX三維軟件自身工具功能不足,有必要進行定制開發。前期已明確了我所MBD設計系統的總體應用框架,主要分為工具層、工程知識層和基礎層三個層次,如圖1所示。整個系統的開發工作量較大,本文著重以MBD設計輔助工具集、材料庫和模型質量自動檢查工具等功能的開發實現過程為關注對象,以點帶面地介紹整個產品設計系統的實現思路和方法。
考慮到產品設計系統需要大量人機交互操作,開發的應用程序采用內部動態鏈接庫的形式創建并編譯,以實現用戶功能函數與NX軟件的無縫集成。

圖1 MBD設計系統總體框架
NX Open是NX提供的二次開發工具集,主要包括通用應用程序編程接口(Common API)、經典應用程序接口(Classic APIs)、日志(Journaling)、知識驅動自動化(Knowledge Driven Automation)以及Block UI Styler、MenuScript、UI Styler等其他NX工具包,支持C、C++、Java、VB.NET、C#等多種編程語言。NX Open通過開放式架構可實現企業的功能定制和集成開發,從專用的工具集定制到高級的系統功能開發,為用戶高效使用、優化NX軟件功能提供了一個靈活開放的平臺[9]。
NX Open應用程序一般包括菜單、工具條、對話框、NX Open API庫函數和應用程序(DLL)等部分,其中菜單、工具條和對話框是應用程序與用戶交互的工具,從菜單和工具條可以啟動應用程序、對話框等,在對話框激活控件時將調用相應的回調函數,應用程序利用編程語言和NX Open提供的相應應用編程接口進行編碼[10]。
針對特定功能的開發,菜單和工具條可通過編寫MenuScript腳本語言實現其創建、編輯和自定義;對話框則結合Block UI Styler、UI Styler和MFC等方式進行相應的用戶界面定義;NX Open API則為所有的NX應用編程接口提供服務;在Visual Studio集成開發環境中選用C++編程語言進行源代碼的創建、編輯、編譯鏈接,進而生成動態鏈接庫文件,實現對NX軟件的集成開發。
為了讓工程技術人員更加方便快捷地完成MBD模型的設計,在NX PMI原有功能的基礎上,遵循我所相關的標準規范,通過MBD設計輔助工具集的定制開發,完善、拓展PMI功能,實現產品的全三維數字化快速響應設計。基于NX Open二次開發工具集,通過集成開發解決了較為急迫的若干功能需求,主要包括:孔特征標注、技術要求、形位公差、條框式工藝、參數表、常用尺寸公差、Φ/M/ST轉換、格式刷、視圖更新和PMI對象管理等諸多功能。

圖2 定制的MBD設計工具條
面向實際需求進行的定制開發,大幅擴展了產品制造信息的標注和管理功能,有利于提高設計效率和質量。限于篇幅受限,下面僅針對孔特征標注功能的定制開發做簡要介紹。NX原有的直徑標注手段效率低下,孔標注的類型、數量、關聯幾何對象需要大量的交互操作才能完成。
開發的孔特征標注功能根據選擇的孔特征自動獲取關聯幾何、自動統計并標注孔的數量,將大量的交互操作簡化為程序自動處理,實現孔特征的快速標注,其主要有以下四個特點:
1)支持單個孔特征及其陣列特征、等直徑的多個孔特征的識別;
2)自動識別孔特征類型,若為通孔則自動標注“Φ”,若為螺紋孔則自動標注“M”;
3)自動提取孔的數量并標注前綴“N-”;
4)自動獲取孔特征的所有幾何面,將其設為尺寸的關聯對象。
孔特征相關函數文件為pmiBase.h、pmiBase.cpp。相關的部分函數定義如下:
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)架構,在服務器端統一部署、管理材料數據庫,保證分布式的NX客戶端的材料數據與服務器端實時同步。服務器端的數據庫基于我所常用金屬和非金屬材料優選清單,涵蓋每種材料的物理性能、化學性能及力學性能等信息,如材料的類型、名稱、牌號、供應狀態、技術標準、規格型號、主要用途、密度、彈性模量、泊松比、剪切模量等多種材料屬性,由系統管理員統一進行材料庫數據的更新、維護。客戶端嵌入NX軟件,通過菜單命令直接訪問服務器數據庫。設計人員在NX界面上可分別針對裝配、零件進行批量或單個實體的材料定義。
圖3為批量材料定義的用戶界面,其交互窗口主要由6部分組成,包括裝配導航區、材料檢索區、圖形預覽區、參數瀏覽區、材料自定義區和執行區。“裝配導航區”為設計人員提供了“列表”、“裝配樹”兩種零部件的組織形式,可進行自制零件的快速查詢、篩選;“材料檢索區”提供材料類型、材料名稱、材料牌號、供應狀態等檢索條件,可進行材料信息的快速檢索;“圖形預覽區”默認狀態下為我所標識,當選擇型材等材料時將顯示型材截面的圖形信息;“參數瀏覽區”將列出當前檢索條件下的所有材料項,當選中列表中的任意條目時,相關的規格型號、主要用途等信息將顯示在相應區域;“材料自定義區”主要用于定義毛坯或新材料等特殊的材料信息,設計師在彈出的對話框中進行材料自定義;“執行區”實現材料屬性的自動賦值,將當前選中或自定義的材料信息快速賦值到NX部件屬性中,并將相關屬性設為鎖定狀態,如圖4所示。

圖3 批量材料定義界面
結合設計人員的工程需求,通過定制開發,材料庫實現了以下功能:
1)材料庫數據統一,方便管理;
2)材料庫數據檢索、可視化功能,方便查詢;
3)材料庫數據自動、快速、批量賦予給NX部件 屬性;
4)材料信息能被下游的工藝、仿真、加工編程等業務流程重用。

圖4 材料屬性自動賦值示意圖
為了提高產品設計的質量和效率,有必要基于我所的標準規范和實際需求進行模型質量自動檢查工具的定制開發。相關的定制工作遵循下列基本原則:1)以相關的三維建模、三維標注等標準規范為技術依據;2)以模型的有效性和規范性檢查為重點;3)根據檢查結果對模型進行修改,修改完成后需重新對模型進行檢查;4)NX模型須進行模型自動檢查,且只有在檢查結果為通過狀態時,才能檢入PDM系統。
根據業務需求,梳理出所需的檢查項目,并逐條明確各檢查項目的檢查內容、通過條件、提示信息和錯誤類型等內容。按照檢查的類別將檢查項目分成了6個部分,每個部分組成一個單獨的檢查包,分別為通用設置檢查、零件模型檢查、草圖檢查、PMI檢查、裝配模型檢查和工程圖檢查。通過與NX Check-Mate的無縫集成,可實現單個文件的交互式檢查和多個文件的批量檢查。
檢查內容及其通過條件必須符合相關的標準規范,并配以相應的提示信息方便查看。同時,根據檢查項目對模型質量的影響程度,定義其錯誤類型并用不同符號區分顯示錯誤等級。自動檢查工具定義了以下三種錯誤類型:
圖5為通用設置檢查列表,共包含圖層類別、圖層狀態、圖層對象、對象圖層、工作坐標系和工作視圖等6條檢查項目,各檢查項目的檢查內容、通過條件、提示信息和錯誤類型均進行了詳細定義。

圖5 通用設置檢查列表
模型自動檢查后的結果通過三維可視化的方式輸出,方便設計人員進行查看、分析及處理。錯誤類型的標識符號與模型、錯誤描述信息相關聯,點擊標識符號可實現模型相關錯誤特征和錯誤描述信息的高亮顯示。
根據模型檢查的結果,定義了三類模型檢查狀態,分別為通過、失敗和過期。檢查后針對NX模型文件自動創建“CHECKMATE_STATE”屬性以表征檢查結果狀態,根據當前的檢查結果對其進行自動賦值并將此屬性設為鎖定狀態,如圖6所示。

圖6 模型檢查屬性示意圖
模型文件的“CHECKMATE_STATE”屬性值作為相關數據接口允許模型文件檢入PDM的先決條件。當觸發檢入操作時,數據接口除了執行其他檢索過濾條件外,還將提取判斷模型文件 “CHECKMATE_STATE”的屬性值,只有當其值為“通過”時,相關的數據接口才允許其檢入PDM系統。
面向Siemens NX軟件平臺,進行了基于模型定義的產品設計系統的開發工作,隨著MBD設計輔助工具集、材料庫和模型質量自動檢查工具等功能的落地實施,實現了產品的全三維數字化定義。

圖7 產品全三維數字化定義示意圖
為搭建基于模型定義的產品設計系統,在MBD設計系統的總體框架下,以Siemens NX為基礎設計平臺,對其相關的二次開發技術進行了簡要介紹。著重研究探討了設計輔助工具集、材料庫以及模型檢查工具等功能的開發實現過程,以點帶面地介紹了整個產品設計系統的實現思路和方法。該系統的成功搭建及應用,基本實現了真正的單一數據源,加速了我所在數字化設計、智能化制造領域前進的步伐。隨著基于模型定義技術的深化應用及其推廣,三維模型上的產品制造信息如何準確高效復用于工藝、制造、檢驗等環節將是下一步的研究重點和方向。