CAD實時協同圖形系統設計
2013-05-25 by:廣州有限元分析、培訓中心-1CAE.COM 來源:仿真在線
AutoCAD系統是目前最常用的工程制圖軟件,基于AutoCAD系統開發實時協同圖形設計系統具有較好的市場前景.開發了基于AutoCAD的實時協同設計系統模型,并對其通訊機制、協同方式、界面設計等關鍵技術進行了研究,最后給出了一個建筑協同設計的實例.
計算機支持的實時協同設計CSRCD(Computer Supported Real-time Cooperative Design) 是CSCW 在設計工作中的一項重要應用,它主要支持設計群體并發工作即使交流思想、協調工作進展情況、發現工作過程中出現的矛盾和沖突等,防止、避免和盡可能的減少設計過程中反復修改的問題。目前在實時協同設計領域已經進行了大量的研究和開發工作,有SketchPad、Shsatra、Co-CAD 等。但大多數還是集中于模型設計階段,很少可以真正達到遠程的同步協同設計。SketchPad是一個支持多個用戶的分布式草圖系統,主要用于視頻會議上對共享的圖像進行瀏覽并作草圖標注等操作:Shastra 是在桌面系統上實現的一種多媒體協同設計環境,它支持基于用戶層和應用層的協同操作; Co-CAD 是一個協同的機械CAD 系統, 它提供一些零件,可以支持地理上分散的機械CAD 工程師進行同步協同操作。AutoCAD 是AutoDesk 公司設計的一個用于工程設計的軟件,目前己經在機械、電子、土木等領域得到了廣泛的應用。目前,國內的很多工程軟件都是基于AutoCAD 二次開發的系統, 這不僅簡化了系統開發的復雜度,還降低了用戶操作的難度,充分體現了"以人為本"。考慮到這一事實,該文也將以AutoCAD系統為平臺,對實時協同圖形系統的開發進行嘗試。
1 系統結構
1.1 實時協同系統的基本要求
實時協同系統設計的目的是提供有效的支持,使用計算機技術來幫助設計群體的交互,從而協同完成一個共同的任務和合作目標。一般來說還要滿足分布性、動態性、實時通訊信息存儲等要求。
1.2 基于AutoCAD的實時協同系統模型
基于AutoCAD的實時協同系統模型由3個部分組成,分別為用戶界面、AutoCAD內核和代理群。AutoCAD內核是AutoCAD系統提供的核心功能:代理群和用戶界面用于在AutoCAD基礎上采用Visual C++和ObjectARX 二次開發完成。其系統模型如圖1所示。
圖1系統模型
用戶界面是設計參與者與系統交流的通道,是用戶使用系統完成一種或多種操作所需要的一系列工具的有機組合。實時協同系統中,用戶界面是個性化的,它根據用戶的不同角色和權限動態生成。
AutoCAD 內核在這里指AutoCAD 系統,包括它的所有資源,例如,數據庫、編輯功能、ARX類庫等。
代理群是在AutoCAD基礎上,結合實時協同系統的需求進行二次開發完成的。主要包括數據庫代理、編輯代理、信息激勵代理和通訊狀態代理。數據庫代理用于監視數據庫對象的創建、修改、刪除等事件:編輯代理用于監視用戶操作AutoCAD 系統時編輯器的狀態,主要監視監視器的命令狀態和文件操作狀態:信息激勵代理是把當前發生的狀態變化形成信息激勵,然后通過通訊網絡傳遞給其它設計群體:通訊狀態代理負責捕獲其它設計人員通過網絡發布的協同消息,并轉化為本地命令,然后傳遞給AutoCAD內核實現協同。
2 系統實現
2.1 用戶界面
基于AutoCAD的實時協同圖形系統中用戶的操作是通過用戶界面實現的,用戶界面在整個系統運行過程中隨著用戶身份和權限的不同動態變化。用戶界面管理系統是根據用戶身份和權限的不同,對其設計界面進行動態的管理,用戶身份、用戶權限和用戶界面等信息進行管理,目的是增加系統的透明度、可擴展性和簡化系統設計。圖2是動態用戶界面管理的系統模型。
該模型中用戶界面管理模塊的主要功能包括:用戶身份認證、用戶權限管理和用戶界面生成3個模塊:用戶身份認證是對提出請求的用戶身份進行確認。進行身份認證的依據是被認證方擁有除自己之外的任何三方都不能偽造的信息:實時協同系統中每一個參與設計的操作者都具有一定的權限,權限管理系統的功能就是對用戶所擁有的權限進行動態管理:傳統應用軟件的用戶界面是在系統設計過程中確定,或者可以在一定范圍內動態變化,但是不具有擴充性。用戶界面生成系統設計的目的就是解決這一問題,從而使協同設計系統可以根據用戶的不同請求生成不同的用戶界面和應用程序。
圖2 動態用戶界面管理系統模型
用戶界面管理系統的運行需要認證服務器、XML 界面庫和DLL 模塊庫的支持。它們的功能分別為:認證服務器用于存儲實時協同設計環境下的用戶信息及其權限,它是保證用戶合法性的基礎; XML界面庫以XML文件的方式存儲實時協同設計系統中的所有功能的描述及其相互關系; DLL模塊庫存儲實時協同系統完成各項功能所需要的函數。
2.2 代理群設計
2.2.1 結構設計
基于AutoCAD的實施協同圖形系統包含數據庫、編輯、信息激勵和通訊狀態等4種代理,盡管4種代理的功能各不相同,但是其概念模型結構完全相同。
(1)代理結構
面向對象技術和AutoCAD系統支持是完成代理設計的基礎,基于代理的特點和實時協同設計系統的需求,并結合面向對象技術的封裝、繼承以及多態性等特性,設計了如圖3所示的由支撐庫、核心控制和功能群3層組成的代理結構。
圖3 代理結構
1)支撐庫
支撐庫是代理運行的基礎,包括知識庫、規則庫和Acad數據庫三部分組成。知識庫存儲代理求解問題所涉及的所有知識,對于不同的應用領域知識庫中存儲的信息不同,例如應用于工程設計領域時包括設計規范知識、專家經驗知識和設計實例知識:規則庫記錄代理運行時遵循的行為準則,用于確定代理在感知到外部變化時應作出的響應:數據庫基于AutoCAD系統數據設計,數據庫中一方面存儲了業務處理所涉及的內部數據,另一方面還記錄了代理自身狀態變化的記錄和代理運行的日志。
2) 核心控制
核心控制是代理運行的控制系統,包括通訊接口、信息解釋器、命令集成器和功能群接口。通訊接口不僅是代理實現內外信息交互的門戶,同時也是代理對外部變化的感知器。信息解釋器是對通訊接口傳遞的信息流進行分析,這一過程需要在知識庫、規則庫和Acad數據庫的輔助下完成。功能群接口捕獲經過信息解釋器處理的信息流,并根據需求與功能群層進行交互。另外,功能群接口還需要把由功能群層返回的信息傳遞到命令集成器,以便進行進一步的處理。命令集成器是把功能群接口傳遞的信息進行組合形成AutoCAD命令流,該命令流是實現協同設計的具體實施者。
3) 功能群
功能群是代理功能模塊的集合,組成功能群功能模塊稱為功能體,功能體是采用面向對象技術編寫的二個個對象,功能體有主動功能體和被動功能體兩種。被動功能體類似于對象,它只能提供方法:主動功能體不僅可以提供方法調用的接口,還可以主動地把消息反饋給邏輯控制層。代理結構中的通訊接口就是通過主動功能體實現的。功能體之間相互獨立,隸屬于同一代理的各功能體之間通過核心控制層完成信息交流,采用這種設計方法極大的增加了系統模塊的可復用性,并在一定程度上降低了代理設計的復雜度。
2.2.2 代理問通訊
基于AutoCAD的實時協同圖形系統是一個多代理系統,各個代理能夠協同工作的基礎是代理之間具備有效可靠的通訊協議。系統的通訊主要有兩種方法:直接通訊和黑板通訊。直接通訊是點對點通訊,也就是發送到代理把信息直接發送到接收方代理,該系統中這種通訊方式出現在"信息激勵代理與通訊代理之間";黑板通訊是通過存取公用數據區以達到交換信息的目的,也就是說代理可以把信息發送到公共數據區,其它代理可以從公共數據區中獲取該代理發送的信息,該系統中這種通訊方式出現在"信息激勵代理與數據庫代理或編輯代理的通訊中"。
為了保證系統的開放性,代理間通訊必須遵循一定的標準,基于AutoCAD的實時協同圖形系統代理間通訊遵循FIPA的通訊規范。為了保證代理之間有效地進行連續會話,FIPA預定義了一組交互協議,其中每個協議對應一種典型會話模式,FIPA交互協議采用擴展的UML語言AUML表示,目前FIPA交互協議庫中共有11種交互協議,包括:請求交互協議、查詢交互協議、合同網交互協議、中介交互協議、提議交互協議等。
3 應用實例
基于AutoCAD的實時協同圖形系統的最基本功能包括添加、刪除和修改等,以實體添加過程為例,它的主要功能包括以下幾個部分:①根據數據庫代理和編輯代理的信息,獲取變化的實體數據:②將實體數據轉換為動態數據格式(例如XML格式),并生成信息激勵流:③捕獲信息激勵流,把接收到的動態數據格式的數據轉換為實體數據:④根據實體的數據將實體在AutoCAD 數據庫中重新生成。這些功能需要兩部分程序子模塊來完成,其一是實體的動態數據生成模塊,它完成①、②兩項功能,定義為模塊1 ;其二是實體二次生成模塊,它完成③、④兩項功能,定義為模塊2 .兩個模塊的工作流程如圖4所示。
圖4 添加實體功能流程
由圖4可知,一個ARX應用程序的模塊1和模塊2并不相互作用,而是分布在異地的ARX應用程序中的模塊l和模塊2通過網絡相互作用。在ARX應用程序中模塊l和模塊2通過Socket 端口連接。
圖5所示是基于AutoCAD的實時協同圖形系統在建筑設計中的一個應用實例。設計任務是一個古典的涼亭,參與設計的有兩個設計師,一位完成涼亭的結構設計,另一位完成涼亭的環境設計。
圖5 協同設計實例
圖5中左側是結構設計師完成涼亭的主體設計,右側是環境設計師完成涼亭的周邊環境設計,兩者之間實現實時協同,每一方的設計變更可以實時的在另一方及時體現。兩個界面顯示的內容雖然相同,但在操作上卻有本質的區別。設計過程中,任何一方以只讀方式查看另一方的設計方案,不能任意修改,對設計的建議需要通過代理反饋給設計方,徑協商后由設計方更改。圖6是最終設計結果渲染圖。
圖6 設計結果渲染圖
4 結論
實時協同設計是工程設計領域的先進設計技術,它符合信息時代工程師工作模式的群體性、分布性和動態性的特點。該文在最常用的工程繪圖軟件——AutoCAD的基礎上使用Visual C++和0bjectARX 進行了二次開發,設計了基于AutoCAD 的實時協同繪圖系統的總體框架,并對動態用戶界面生成、代理設計等內容進行了討論,最后用一個簡單的實例驗證了系統的可行性。
相關標簽搜索:CAD實時協同圖形系統設計 AutoCAD培訓 AutoCAD培訓課程 AutoCAD圖紙設計 AutoCAD在線視頻 AutoCAD技術學習教程 AutoCAD軟件教程 AutoCAD資料下載 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓 Abaqus培訓 Autoform培訓