網絡支持的協同設計(Network Supported Collaborative Design,NSCD)是計算機支持的協同工作(Computer Supported Co-operative Work,CSCW)研究的一個分支,它融合通信技術、計算機技術和網絡技術,采用并行工程的思想方法,使處于分散的一個群體借助相關技術,共同協調和協作來完成一項任務,從而大大提高生產效率,在制造業中有著廣泛的發展前景。
當前協同系統有兩類協作框架,即透明協作Collaboration-transparent)和明確協作(Collaboration-aware)。
針對目前大多數企業使用AutoCAD作為設計軟件。以Au-toCAD2002為原型,以Teamcenter為協同設計平臺,提出了一種基于AutoCAD圖形數據交換的協同設計思想,并開發出了SCADS(Synchronization Collaborative AutoCAD Design System)協同設計系統。
1 SCADS協同設計系統的總體結構
SCADS協同設計系統由CAD系統模塊、數據處理模塊、網絡處理模塊和輔助模塊組成。CAD系統模塊由數據庫監視模塊、編輯功能監視模塊、對數據庫執行操作模塊和執行編輯功能模塊組成,數據處理模塊由編碼模塊和解碼模塊組成,網絡處理模塊由發送數據模塊和接收數據模塊組成,輔助模塊由文字溝通模塊組成。在SCADS系統中,各協同設計者在AutoCAD環境中進行的操作都會被系統監控,并將其中變化了的增量數據,通過網絡傳遞給其它協同設計者,從而達到實時協同設計的目的。由于采用了動態數據交換機制,SCADS協同設計系統較好地實現了網絡實時協同設計。SCADS協同設計系統總體結構,如圖1所示。協同登陸界面,如圖2所示。

圖1 SCADS協同設計系統的總體結構

圖2 SCADS協同設計系統登陸界面
2 SCADS協同設計系統的工作原理
AutoCAD是一個開放的平臺,提供的二次開發工具有Au-toLisp,ObjectARX,VisualLisp等,其中,尤以ObjectARX開發包的功能最為強大。
系統實現實時協同方式的原理為:利用ObjectARX提供的數據庫反應器類來監視AutoCAD內部數據庫,并對數據庫的添加、修改、刪除等操作自動做出響應,然后利用vc++6.0的socket編程原理來將本地獲得的數據傳送到異地,并在異地的AutoCAD平臺上還原數據,恢復圖形。
將人人交互通訊/協作模塊和原來的應用模塊結合起來,構造所需的協作功能,又能復用單用戶程序的各種應用功能。其方法為CAD內核中增加了通迅/協作編程。其基本原理,如圖3所示。

圖3 SCADS協同設計系統實時協同的原理
其中,通訊/協作編程是建立在對現有的CAD資源更深層次的操作上,即必須要求能夠通過通訊編程手段直接深入到現有CAD系統的圖形數據庫的內核上。這樣不但使其具有了協作性能,而且保留了原有CAD的強大圖形編輯功能。
3 SCADS協同設計系統的實現
在SCADS系統中,通過CAD監控模塊完成實時數據提取功能。程序中主要使用了ObjecARX中的兩類反應器:數據庫反應器和編輯反應器。其中數據庫反應器主要負責對AutoCAD數據庫中發生的事件實時監控,例如實體對象的添加、修改、刪除、鏡像、拷貝等。編輯反應器主要負責對其它一些操作監控,如用戶命令事件、數據庫文檔事件、寫塊事件和克隆事件等。實現過程大體歷經觸發、傳輸、和接受三個階段。
3.1 觸發
這個階段從數據庫反映器對象捕捉到AutoCAD圖形數據庫動作并觸發反應事件開始。先獲取新增實體的結果緩沖區鏈表,然后對結果緩沖區鏈表的每個節點執行編碼操作,生成一種自定義的字符數組結構。觸發要經歷兩個過程:添加數據庫反應器,獲得實體名和實體句柄(圖略)。當AutoCAD成功的添加了數據庫反應器后,再次在AutoCAD進行實體編輯時,則數據庫反應器自動提取出了所做實體編輯的句柄號、ID號及所存數據庫。
3.2 傳輸
在網絡結構上,SCADS采取的是改進的客戶機/服務器模式。這種模式下服務器并不存儲所有數據,而是只負責實時轉發和智能篩選,避免了傳統C/S模式下數據集中于服務器而造成的服務器負擔過重產生的擁堵現象。數據分布在所有客戶機上,最大限度上避免了讀寫信息的延遲。
利用visualC++6.0的Socket來編程實現通訊協議的。在數據通信中,不管客戶端還是服務器端,發送數據是主動的,而接收數據總是被動的。在Visual C++6.0中提供了Socket類:提供了監聽函數Listen(),服務器端建立一個監聽Socket,即自動創建一個監聽線程,隨時監聽是否有客戶端的連接請求,在監聽Socket上建立消息相應函數OnAccept(),接收客戶端的連接請求。服務器為每一個客戶端請求建立一個Socket,以便并行處理客戶端的數據通訊請求。服務器端為了接收客戶端的數據,在為客戶端建立的Socket上建立消息響應函數OnReceive(),用來接收數據。客戶端為了接收服務器端的數據,則在連接的Socket上,建立一個消息響應函數OnReceive(),用來接收數據。
3.3 接收
接收是觸發的逆過程,執行的是解碼。我們主要定義了ChatUneAdd(),ChatLineEdit (),ChatLineDel(),等函數來接受發送過來的數據。
3.4 SCADS系統與AutoCAD的融合
將我們所開發的SCADS系統融合到AutoCAD中。此時AutoCAD可以作為傳統的CAD使用。當需要協同設計時,則點擊菜單欄中河北工業大學SCADS系統或工具欄按鈕進入協同設計界面,開始協同設計。還可通過聊天交流模塊進行文字交流達到協同設計。SCADS融合到AutoCAD后的界面(圖略)。
3.5 SCADS系統的實時通訊模塊
系統采用面向對象的系統模型,采用VC++6.0這個可視化開發工具進行編碼,使整個軟件系統的結構變得更加靈活。實時通訊模塊采用聊天的形式來實現(圖略)。
3.6 系統的軟件實現
系統的程序框圖,如圖4所示。

圖4 系統程序框圖
下面以添加橢圓(ellipse)為例來說明上面這個過程。本代碼省略了變量定義、指針定義及指針關閉等輔助代碼。
if(TYPE-ELLIPSE EQ nType)
{AcDbEllipse *pEllipse=static cast(pEnt);
message.Add(TYPEesELLIPSE);
AddPoint(message,pEllipse->center());
Add Vector(message,pEllipse->normal());
AddVector(message,pEllipse->majorAxis());
message.Add(pEllipse->radiusRatio());
message.Add(pEll ipse->startAngle());
message.Add(pEllipse->endAngle());}
message.SetAt(0,nReaICount);
g_client.SendMessageToServer( message);
if(TYPE_ELLIPSE EQ nType) {
GetPoint(message,center,index);
GetVector(message,normal, index);
GetVector(message,majorAxis, index);
message.GetAt(index++,radiusRatio);
message.GetAt(index++,startAngle);
message.GetAt (index++,endAngle);
pEntityAdd=new AcDbEllipe(center,normal,majorAxis,radiusRatio,
startAngle, endAngle ); }
es=aeDocManagerPtr()一>lockDocument(g-pDoc);
es=pBlockTable->getAt(ACDB_MODEL-SPACE, pBlockTableRecord,
ACDb:: kForWrite);
es--pBlockTableRecord->appendAeDbEntity(1 ineId, pEntityAdd) ;
es=acDocManagerPtr()一>unlockDocument(g-pDoc);
pEntityAdd->getAcDbHandle(localHand 1e);
arrayLocal.Add(localHandle);
arrayRemote.Add(remoteHhandle);}
4 應用實例
設計者甲和乙使用SCADS系統進行直角坐標壓蓋機器人的
協同設計和并發控制情況,如圖5,圖6所示。

圖5 設計者甲端的顯示

圖6 設計者乙端的顯示
5 結論
提出的SCADS協同設計系統,提出了一種協作性能與應用功能相結合的協作框架。
將當前CSCW系統在協作性能方面的長處和傳統CAD系統在圖形處理方面的優勢有機地統一起來,直接支持事實上的工業標準的矢量圖形的協同設計。通過直角坐標壓蓋機器人的協同設計實例驗證了SCADS系統的正確性和可行性。
SCADS協同設計系統是一個開放性的協作框架,有很好的商業和工程應用前景。為中小企業實現異地設計和異地制造提供了很好的技術支持。
相關文章
- 2021-09-08BIM技術叢書Revit軟件應用系列Autodesk Revit族詳解 [
- 2021-09-08全國專業技術人員計算機應用能力考試用書 AutoCAD2004
- 2021-09-08EXCEL在工作中的應用 制表、數據處理及宏應用PDF下載
- 2021-08-30從零開始AutoCAD 2014中文版機械制圖基礎培訓教程 [李
- 2021-08-30從零開始AutoCAD 2014中文版建筑制圖基礎培訓教程 [朱
- 2021-08-30電氣CAD實例教程AutoCAD 2010中文版 [左昉 等編著] 20
- 2021-08-30電影風暴2:Maya影像實拍與三維合成攻略PDF下載
- 2021-08-30高等院校藝術設計案例教程中文版AutoCAD 建筑設計案例
- 2021-08-29環境藝術制圖AutoCAD [徐幼光 編著] 2013年PDF下載
- 2021-08-29機械AutoCAD 項目教程 第3版 [繆希偉 主編] 2012年PDF