《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > TiGEMS二次開發接口的設計與實現
TiGEMS二次開發接口的設計與實現
來源:電子技術應用2012年第9期
曹 方
威睿電通(杭州)有限公司, 浙江 杭州 311112
摘要: 分析了CAD/CAM軟件二次開發平臺的基本設計理論和設計原則。針對典型的商業三維幾何造型系統——TiGEMS提出了采用動態鏈接庫技術的二次開發接口設計方法和實現過程。解決了TiGEMS二次開發接口的難點和問題。
中圖分類號: TP311
文獻標識碼: A
文章編號: 0258-7998(2012)09-0125-03
Design and implementation of applications development interface for TiGEMS
Cao Fang
VIA Technologies, Inc., Hangzhou 311112, China
Abstract: In this paper, the essential theories of the applications development interface for the CAD/CAM software systems are discussed and analyzed. Based on the dynamic link library, we implemented the applications development interface for a commercial geometric modeling software system TiGEMS. Some key techniques about the applications development interface also are illustrated.
Key words : dynamic link library; interface; application development; feature modeling; TiGEMS

    隨著計算機技術的發展,軟件系統越來越復雜。這種變化在計算機輔助設計/制造(CAD/CAM)領域表現得尤為明顯,以往大而全的CAD/CAM軟件越來越顯得力不從心。眾多CAD/CAM軟件開發者轉而開始對這類軟件的基礎和共性進行研究,希望提供可進行二次開發的CAD/CAM平臺支撐系統[1],使用戶能在該支撐系統上進行二次開發,實現所需的特殊功能,定制出用戶所在特殊領域的專用CAD/CAM軟件。目前,為用戶提供功能強大、使用靈活的二次開發接口,已經成為對CAD/CAM軟件的普遍要求。二次開發也成為發揮CAD/CAM軟件功能的重要途徑之一[2]。TiGEMS是采用特征造型技術的三維幾何造型軟件[3],而特征造型技術也是當前CAD軟件主流實現技術[4]。如何在二次開發接口中體現特征造型思想的特色和優點,是本文要探討的主要問題。

    二次開發接口的實現方式多種多樣,目前流行的有通用文件格式實現的接口[5]、組件技術實現的接口[6]、數據庫技術實現的接口[7]以及動態鏈接庫技術實現的接口。不同的實現技術各有其優缺點,并且隨軟件技術的發展,二次開發接口技術也在發展變化中。當前很多CAD/CAM軟件系統都同時實現了多種接口方式,以滿足不同用戶的不同需求。不論使用何種技術,能夠將接口編程技術與宿主軟件完美結合,在接口中體現宿主軟件的特色和優點才是關鍵。并在三維幾何造型系統TiGEMS中,選用動態庫技術實現TiGEMS的二次開發接口的原因在于:(1)動態庫技術有利于在接口中體現TiGEMS的特征造型思想,保持了各類用戶對TiGEMS技術和使用特征的認知一致性;(2)用戶有自定義特征的需求,在考察多種實現方式后認為,動態庫技術為實現該需求的最好方式;(3)動態鏈接庫技術發展時間長,技術成熟,掌握該種編程技術的程序員較多,適宜為工程技術人員做二次開發用; (4)使用基于動態庫技術編寫的用戶程序執行效率高、速度快,能夠充分滿足用戶的各種需求。
1 設計目標及原則
1.1 設計目標

    設計目標用于規定設計的大方向和基本功能描述,在設計中起總括和綱領的作用,設計目標應該在設計方案中被逐一細化并最終得到實現。
    (1)設計良好的三維幾何造型系統的二次開發接口應該能夠向用戶展示系統的設計思想,引導用戶正確、快速地掌握三維幾何造型系統的特點;使接口開發用戶對系統的感知與直接操作三維幾何造型系統的感知一致。用戶可以無障礙地從直接操作轉到二次開發上來。
    (2)用戶通過接口開發模塊能以插件形式載入三維幾何造型系統中,也能以獨立程序的形式與三維幾何造型系統共同運行。用戶可根據自己的需求和喜好在用戶界面加入自己的設計元素,因此接口應該實現動態的用戶界面(UI)管理功能,方便用戶根據自己的需要定制操作界面,甚至重新構造用戶操作界面[8]。
    (3) 二次開發接口應該具有良好的可擴展性。二次開發接口不但要求實現用戶直接操作的所有功能,還應該實現更底層的數據定義和微操作功能,以及更高層的批量操作和集合操作功能。用戶能夠通過二次開發賦予三維幾何造型系統更強大或更專業的功能。
1.2 設計原則
    設計原則規定了在二次開發接口設計過程中需要遵守的規則和方法。遵守設計規則可以保證最終代碼的質量、效率和穩定性,并為今后工作的可延續性提供方便。
    (1) 屏蔽不必要的細節。進行二次開發的用戶多數是工程技術人員,不太可能精通專業的程序開發技術。他們要求的二次開發接口在功能強大的同時又要易學好用。因此封裝細節信息,簡化操作過程非常必要。
    (2) 嚴格封裝內部對象和方法。二次開發程序對CAD軟件功能的調用和對變量的存取,都要通過二次開發接口進行,嚴禁越過接口函數直接存取變量對象或者調用內部方法。
    (3) 保證接口的魯棒性和獨立性。用戶往往會以設計人員沒有想到的方式調用二次開發接口,因此必須保證接口函數的魯棒性,不能在屏蔽細節的同時埋下隱患。每個接口函數實現的功能要單一、明確[9]。
    (4) 充分考慮接口可擴充性。二次開發接口程序架構應該是開放性的,可平滑擴展,能根據應用需求的增加將新的功能加入到接口中去,同時不影響已經實現的接口功能[9]。
2 TiGEMS二次開發接口的設計方案
    TiGEMS是多文檔/視圖結構的應用程序,共實現了零件、裝配、渲染、有限元和工程圖5種文檔類型。用戶可以同時打開多種類型的多個文檔,但在同一時刻只能編輯一個文檔,即當前活動文檔。TiGEMS使用特征樹組織和管理特征并表示它們之間的相互關系。特征就是TiGEMS的核心數據,特征樹即TiGEMS的核心數據組織方式: (1)二次開發接口應開放特征和特征樹的操作方法,讓用戶能夠編程實現對TiGEMS文檔的操作;(2)實現用戶定義特征功能,擴展特征外延;(3)能夠對多個用戶插件進行有效管理,最后可修改用戶界面,實現動態UI。
2.1 接口功能模塊綜述
    TiGEMS的二次開發接口可分為插件管理模塊、UI控制模塊、用戶特征管理模塊和用戶接口模塊,如圖1所示。

    為了使得TiGEMS支持二次開發,首先對TiGEMS的核心進行修改:增加了插件管理、UI控制和用戶特征管理3個模塊,然后在TiGEMS核心之外創建用戶接口模塊,封裝所有TiGEMS功能調用,并向用戶提供函數調用和對象定義的頭文件和庫文件。
2.2 插件管理模塊
    TiGEMS允許用戶通過二次開發接口編寫插件,插件可以調用所有二次開發接口提供的功能,但是不能獨立運行,必須載入TiGEMS中才能使用。插件管理模塊作為常住TiGEMS核心的一個功能模塊,提供了載入、管理、卸載用戶插件的功能。
    由于TiGEMS的不同文檔類型使用不同的類實現,具有不同的屬性和操作方法,所以某個插件在某種文檔中的功能對另一種文檔并不適用。因此,要將插件和文檔對應起來,同類文檔的插件可以共享,不同類文檔的插件必須相互隔離。
    插件管理模塊管理用戶插件,根據用戶需求將用戶插件載入或者卸載,同時隔離對應不同文檔類型的插件模塊,避免沖突和混亂。
2.3 UI控制模塊
    UI控制模塊可根據用戶載入插件中定義的界面信息構造用戶界面,以及在卸載插件時恢復以前的用戶界面。當用戶在不同文檔類型中切換時,UI控制模塊還需根據當前活動文檔的不同重新構造用戶界面。
2.4 用戶特征管理模塊
    用戶特征管理模塊專門用來管理用戶自定義的特征,由于用戶定義的特征需要被TiGEMS的核心處理和識別[10],因此TiGEMS核心不可避免地要對用戶定義的特征處理函數進行調用,這極大增加了TiGEMS的潛在不穩定性。為了最大可能地避免這種風險,用戶特征管理模塊統一負責用戶定義特征的注冊和TiGEMS核心對用戶特征的調用,嚴格限制用戶特征的行為。
2.5 用戶接口模塊
    所有接口函數都封裝在動態鏈接庫文件中,與API函數聲明、對象定義頭文件一起提供給用戶。用戶編寫好的插件程序也以動態鏈接庫的形式載入TiGEMS。
    接口函數部分根據功能的不同可以分為通用特征操作函數、UI控制函數、用戶特征操作函數、插件管理函數及其他雜項函數。
    通用特征即TiGEMS已經定義好的特征,這些特征的操作函數包括特征創建函數、特征修改函數、特征刪除函數、特征復制函數、特征查詢函數、特征重構函數和特征加入函數。
    UI控制函數專門用來創建和修改用戶菜單、工具條、按鈕及浮動面板等用戶界面元素,同時還可以添加更改窗口布局,整體顯示風格等。UI控制接口函數通過調用處于TiGEMS核心的UI控制模塊起作用。
    用戶特征操作函數可向TiGEMS注冊、修改及刪除用戶自定義的特征類。
    插件管理函數為用戶提供在自主開發程序中管理TiGEMS二次開發接口插件的功能,當然也可以在插件中管理其他插件,進行插件的載入、卸載等操作。插件甚至可以通過管理接口函數實現卸載自身的操作。
    其他雜項函數包括對象操作函數和輔助功能函數及文件操作函數。其中文件操作函數可用來打開、保存和關閉TiGEMS創建的特定格式,因為保密或者其他原因不能將格式開放給用戶的文件。
3 TiGEMS二次開發接口的實現

 


    TiGEMS二次開發接口的代碼實現在Windows平臺下VC++6.0中完成,具體工作可以分為TiGEMS核心代碼修改和接口函數封裝兩大部分。TiGEMS二次開發接口代碼實現的關健主要集中在TiGEMS核心代碼的修改。插件管理、UI控制和用戶特征管理都涉及到了對TiGEMS核心代碼的修改。
3.1 插件管理
    TiGEMS是多文檔/視圖結構的程序,同類文檔的用戶插件是共享的,但是不同類文檔的用戶插件互相隔離。實現插件的載入/卸載以及初始化都有一套專用的接口函數,并且插件管理模塊在載入插件的同時將當前活動文檔的類型作為插件的類型保存起來,為以后可能發生的文檔切換等操作保存必要的信息。插件管理模塊使用一個結構數組m_moduleList來管理所有被載入的用戶插件,這個數組的每個組元對應一個插件,存放插件的名稱、句柄、類型以及插件內部相關信息。其他模塊通過識別插件的類型來判斷該插件是否屬于當前的活動文檔。
3.2 UI控制
    所有用戶插件造成的用戶界面的動態變化都由UI控制模塊進行統一的調度和控制。用戶插件中會攜帶有關用戶界面的修改信息,在載入初始化時向UI控制模塊提出界面請求,UI控制模塊使用一個結構數來保存每個插件對用戶界面的更改要求。每遇到一個新插件的界面更改要求,UI控制模塊都會先進行條件預判斷,全部或部分允許該用戶插件對用戶界面的改變。之后UI控制模塊就不再干預界面與插件之間的交互。直到有插件載入、卸載以及文檔切換時,UI控制模塊才會干預用戶界面的生成。
    UI控制模塊的另一個重要功能是在非同類文檔切換時保證用戶界面隨之改變,對于可以與MFC文檔類關聯,隨文檔的切換而切換的界面元素(如菜單等),UI控制模塊無需干預。但對于無法隨文檔切換而切換的界面元素(如命令窗口等),UI控制器需要捕捉文檔切換消息,在消息處理中完成界面元素的重新構造。
3.3 用戶定義特征管理
    用戶特征實現的關鍵在于如何定義以及TiGEMS如何識別并處理用戶特征。為了讓用戶能在插件中創建特征定義,需要繼承特征基類C_FeatureDef和c_FeatureStep的定義。考慮到用戶特征的特殊性,在GEMSAPI模塊中繼承這兩個類,定義了兩個新的用戶特征基類C_UserFeatureDef和C_UserFeatureStep,增加了表征用戶特征的變量,并規定所有用戶特征必須繼承這兩個特征基類。這樣就解決了用戶特征定義的問題,同時用戶特征識別問題也因為用戶特征繼承自TiGEMS通用特征基類而得到解決,TiGEMS可以從特征基類中的m_property變量中獲取所需的特征信息。用戶特征在使用前需要先向用戶特征管理模塊注冊,只有不存在重名和其他沖突的用戶定義特征類才被允許注冊。用戶特征管理模塊使用一個結構數組m_userFeature來管理用戶特征。TiGEMS對用戶特征的任何調用都要通過用戶特征管理模塊間接執行。這樣做的好處在于提高了TiGEMS的穩定性,而且用戶特征管理模塊可以及時攔截某些可能出錯的調用,如用戶插件已卸載,但TiGEMS卻要調用該插件中用戶特征處理函數等。TiGEMS核心代碼中所有需要判斷特征類型并調用對應處理的模塊,都要加入對用戶特征判斷的代碼,以及通過用戶特征管理模塊調用用戶特征處理的代碼,以便實現TiGEMS對新加用戶特征的響應。
    為用戶提供二次開發接口,滿足各種專業用戶的不同需求是提高三維造型軟件使用范圍和生命力的一個重要途徑。TiGEMS作為一個成功的國產CAD軟件,實現了二次開發接口,其功能得到進一步完善,應用范圍得到了擴展,使用方式也變得更加豐富。
參考文獻
[1] SABIN M. CAD system component [J]. Computer-Aided Design, 1996,28(3):183-192.
[2] 趙衛東, 柳先輝, 衛剛. CAD軟件二次開發平臺實現技術[J]. 計算機輔助設計與圖形學學報, 2003,15(4):512- 516.
[3] 袁奕. 特征造型在GEMS5.0中的實現[D]. 北京: 清華大學,1998.
[4] 葉修梓,彭維,何利力. 從工業界的角度看CAD 技術的研究主題與發展方向[J]. 計算機輔助設計與圖形學學報,2003,15(10):1194-1199.
[5] 陳為. 基于AutoCAD 二次開發的研究[J]. 計算機工程與應用,1997,33(1):39-43.
[6] 陸薇,劉強,周琛,等.基于組件的開放式CAD系統模型[J].軟件學報, 1998,9(9):651-655.
[7] 趙付青,余冬梅,張聚禮. CAD智能工程數據庫實現方法的研究與應用[J]. 計算機工程與應用 ,2003,39(2):215-219.
[8] 吳余華,童水光,許躍敏. 國外CAD/CAM系統二次開發關鍵技術的研究[J]. 計算機輔助設計與制造,1996,15(8):11-12.
[9] 王云鵬,雷毅,潘翔,等. CAXA電子圖版的二次開發技術[J].計算機輔助設計與圖形學學報,2002,14(2):189-192.
[10] 宋玉銀, 蔡復之, 張伯鵬,等. 基于特征設計的CAD系統[J]. 計算機輔助設計與圖形學學報, 1998,10(2):145-151.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 日韩免费影院 | 成人免费国产欧美日韩你懂的 | 国产免费一级视频 | 黄色国产精品 | 精品欧美日韩一区二区 | 免费黄色毛片视频 | 天堂网www在线资源中文 | 日批免费在线观看 | 91日本 | 欧美性bbbb | 二区三区在线 | 天天操bb | 在线视频永久在线视频 | 亚洲免费色图 | 欧美成人www在线观看网页 | 一级做a爱过程免费视频时看 | 天天舔天天插 | 直接观看黄网站免费视频 | 欧美三级欧美成人高清www | 成人爱做日本视频免费 | 免费一级特黄欧美大片勹久久网 | 国产精品视频网址 | 国产日韩欧美中文 | 天天躁狠狠躁 | 亚洲丁香色婷婷综合欲色啪 | 黄 色 免 费 网站在线观看 | 视频黄色免费 | 国产成人永久在线播放 | 色哟哟www网站入口成人学校 | 2020天堂中文字幕一区在线观 | 午夜影剧院 | 天天色天天拍 | 国产2021精品视频免费播放 | 国产一级黄色大片 | 日韩欧美亚洲综合 | 婷婷开心激情网 | 在线观看91精品国产入口 | 国产成人亚洲精品影院 | 亚洲视频免 | 草草国产成人免费视频 | 亚洲日本va午夜中文字幕一区 |