顧 琪,周臨震
(1.鹽城紡織職業技術學院機電工程系,江蘇鹽城 224000;2.鹽城工學院優集學院,江蘇鹽城 224000)
組合機床是一種根據被加工件的特征以通用部件為基礎、專用部件為補充的高效專用機床,其中通用部件達70% ~90%[1]。當前,隨著CAD技術的普及組合機床的設計已經普遍跟計算機技術相結合,許多組合機床CAD系統應運而生[2-4]。越來越多的企業在產品開發過程中引入參數化設計技術來提高產品開發效率,而要真正能夠實現開發并行管理、產品參數全相關性就需要有建立在統一數據庫之上的標準模型。開發基于外部動態鏈接及數據庫的機床通用部件可以為組合機床整體設計提供支持,也可以實現機床眾多通用零部件的快速設計與開發,為縮短機床產品的開發周期,提高開發效率和質量提供保障。
外部數據庫訪問技術通常主要有數據訪問對象(Data Access Object,DAO)、開放數據庫互連(Open Database Connectivity,ODBC)以及ActiveX數據對象(ActiveX Data Objects,ADO)。
(1)通過ODBC訪問外部數據庫
ODBC是由微軟公司提出的數據庫訪問接口標準。它提供了一組對數據庫訪問的標準API,這些API獨立于各種數據庫管理系統。ODBC可以由統一的驅動程序來實現對幾乎所有的數據庫的操作管理。
(2)通過DAO訪問外部數據庫
DAO使用Microsoft Jet數據庫引擎來訪問數據庫,是第一個面向對象的接口。通過DAO訪問數據庫可以通過Visual C++提供的五個MFC DAO類訪問,其與ODBC類兩者除使用的數據引擎不同之外,它們還有很多相同的地方。DAO提供的多數成員函數和類都與ODBC提供的對應的函數和類相似。
(3)通過ADO訪問外部數據[5]
ADO與ODBC相比,使用更加簡便,免去了繁瑣的配置數據源工作。ADO庫包含3個基本接口,通過這三個基本接口可實現對數據庫的訪問,它們的主要功能為:_ConnectionPtr接口負責打開或連接數據庫文件;_CommandPtr接口存取數據庫的內容;_RecordsetPtr接口對數據庫下達行動查詢指令,以及執行SQL Server的存儲過程。
NX/OPEN訪問其他數據,例如可以通過UF_XS_extract_spreadsheet和UF_XS_store_spreadsheet抽取和儲存 SpreadSheet、通過 uc4504、uc4514、uc4524 等 NX/OPEN API中有關文件的操作函數來訪問文本文件。
使用NX/Open進行二次開發時主要使用其提供的菜單腳本文件、對話框設計以及應用程序接口函數集三個二次開發包。NX/Open API是NX提供的與外部應用程序實現接口的函數集,運用它幾乎可以實現所有能在NX界面上的操作。NX/OPEN API程序能在內部程序和外部程序兩種環境下運行[6]。內部UF是以動態鏈接庫(*.DLL)的形式創建并編譯的,外部UF程序是可執行程序(*.EXE)。以動態鏈接庫運行必須啟動NX Gateway,它執行時每個步驟都可以從NX的客戶窗口中得到動態反映;以可執行程序運行只要有NX License的支持不需要啟動NX,因而不能和NX Gateway發生聯系。BlockStyler模塊提供了與NX界面風格完全一致對話框可視化設計工具;MenuScript模塊用于創建或編輯NX的標準菜單和工具條腳本文件。
在NX平臺上,運用NX/OPEN二次開發工具開發客戶定制軟件平臺關鍵在于實現NX軟件、基礎數據庫以及定制應用程序之間的相互通信。圖1為運用內部動態鏈接庫及ODBC方式實現組合機床通用零部件設計的原理方案。

圖1 通用部件庫設計原理方案
根據組合機床通用部件的實際設計需求,在分析具體二次開發技術的基礎上開發基于外部數據及動態鏈接庫的通用部件設計實例,其中利用ODBC技術實現外部數據庫的訪問,利用DLL方式實現定制客戶運用程序運行,利用Microsoft Office Access建立本地組合機床通用部件數據庫。
(1)菜單、對話框定制
根據客戶定制要求可以使用NX/OPEN提供的MenuScript模塊創建或編輯系統菜單和工具條,使用BlockStyler模塊開發系統對話框。通過編輯菜單文件,定義菜單按鈕響應對用DLL,通過對對話框添加回調函數來響應客戶定制事件。對話框本身可以通過在菜單項中的調用,實現定制客戶程序與NX環境相互融合。圖2為組合機床通用部件滑臺設計對話框。
(2)環境變量設置
NX 規定的目錄有startup、application、udo和dfa,Startup目錄存放NX啟動時加載的動態鏈接庫文件(*.dll)、菜單文件(*.men)和工具欄文件(*.tbr);Application目錄存放具體的功能定制程序文件,如對話框文件;Udo目錄用于存放與用戶自定義對象相關的動態鏈接庫文件;Dfa目錄存放KF程序文件及對應的對話框文件。

圖2 組合機床通用部件滑臺設計對話框
NX環境配置文件 ugii_env.dat中存在“UG_VENDOR_DIR”、“UG_SITE_DIR”、“UG_USER_DIR”3個用于注冊工程路徑的環境變量。組合機床通用部件設計環境變量設置為“UGII_USER_DIR=開發路徑”。另外多數應用程序開發還可以添加一個位圖文件,通過“UGII_BITMAR_PATH=開發路徑位圖文件”指定位圖文件。
通過Access建立本地組合機床通用部件數據庫,包括機械滑臺、液壓滑臺、動力頭、滑臺底座等通用部件數據庫,如圖3所示。

圖3 通用部件數據庫
使用ODBC訪問數據庫時需要指定一個DSN(Data Source Name)以便于連接到一個指定的ODBC驅動程序。DSN是用于指定ODBC與相關的驅動程序相對應的一個入口。對通用部件數據庫的操作,通常可以使用CDatabase類對象實現對數據庫的聯接、使用CRecordSet類對象實現對記錄集的操作。
通過NX/Open AppWizard應用程序開發向導,或者通過Win32應用程序向導、MFC應用程序向導都可以創建實現客戶調用的內部DLL。
通過添加回調函數可以實現客戶定制應用程序。如下為滑臺設計對話框【OK】按鈕的回調函數片段:

運用NX/OPEN二次開發應用程序設計組合機床一般通用零部件,只需設計師根據應用程序導航選擇所需通用部件的型號及部分主要性能參數,應用程序便可以根據設計師決策自動匹配相關通用部件的標準模型,并根據數據庫寄存數據對模型進行更新操作,實現通用部件的快速化設計。同時設計師還可以檢索部件詳細尺寸參數和性能參數來輔助決策。圖4通過應用程序設計的滑臺三維模型。

圖4 1HYT50液壓滑臺3D模型
在外部數據庫支持下,運用NX提供的外部應用程序接口創建并編譯DLL形式的用戶定制函數,實現對組合機床通用部件的設計。可以明顯縮短組合機床通用部件的開發周期,提高機床整體開發效率、降低成本,同時可以對機床通用部件設計參數和信息實現數據管理,對企業知識的繼承和重用也具有重要的意義。
[1]謝家瀛.組合機床設計簡明手冊[M].北京:機械工業出版社,2002.
[2]高飛,孫俊蘭,李青祝,等.基于UGNX的組合機床多軸箱通用件庫的研究[J].煤礦機械,2011,32(8):227-229.
[3]周臨震,顧琪,倪紅軍,等.基于知識的組合機床總體設計CAD系統的研究與開發[J].機械設計與制造,2012(1):260-262.
[4]王旭華,廖文和,劉德仿.基于知識的組合機床總體方案CAD系統的研究[J].組合機床與自動化加工技術,2002(2):45-47.
[5]葉建平,賀海暉,石林祥,等.基于ADO的Pro/E數據庫接口研究開發[J].制造業自動化,2009,31(4):98-100.
[6]侯永濤,丁向陽.UG/Open二次開發與實例精解[M].北京:化學工業出版社,2007.