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