SolidWorks異地協(xié)同設(shè)計系統(tǒng)的實現(xiàn)
2013-05-21 by:廣州有限元分析、培訓(xùn)中心-1CAE.COM 來源:仿真在線
為實現(xiàn)SolidWorks的異地協(xié)同設(shè)計,提出利用Windows消息捕捉機制來實現(xiàn)系統(tǒng)協(xié)同模型。介紹了如何利用鉤子函數(shù)實現(xiàn)對操作信息的提取,以及主拉端維護模型一致性的方法,同時討論了操作信息捕捉、信息處理、模型生成等系統(tǒng)應(yīng)用的關(guān)鍵技術(shù)。最后對該系統(tǒng)的優(yōu)點與不足進行了簡要的說明。
作者: 侯曉林*顏濤*李婕*寧紀(jì)翠*彭作珍 來源: 萬方數(shù)據(jù)
關(guān)鍵字: SolidWorks 協(xié)同設(shè)計 操作信息 捕捉
近年來,企業(yè)中普遍采用三維CAD行設(shè)計,特別是中端CAD系統(tǒng)SolidWorks在企業(yè)中的大量應(yīng)用,極大地提高了企業(yè)的創(chuàng)新能力。但企業(yè)仍然面臨著如何充分利用企業(yè)的人力資源,提高設(shè)計效率,從而縮短產(chǎn)品開發(fā)周期的問題。對于異地協(xié)同設(shè)計一系統(tǒng)的實現(xiàn)最直接的思想是將三維模型直接傳給處在異地的計算機,但這種方法由于傳輸數(shù)據(jù)量太大,在實時交互方面總不盡人意,為此采用基于Windows消息機制實現(xiàn)協(xié)同的方法,并在此基礎(chǔ)上結(jié)合SolidWorks的特點,實現(xiàn)SolidWorks的異地協(xié)同。
1系統(tǒng)構(gòu)架
1.1系統(tǒng)實現(xiàn)思想
SolidWorks是一套具有特征的變量式實體模型機械設(shè)計軟件,它具有Windows界面,是真正基于Windows開發(fā)的軟件。Windows是一種面向?qū)ο蟮捏w系結(jié)構(gòu),W indows環(huán)境和應(yīng)用程序都是通過消息來交互的。所謂消息,就是指Windows發(fā)出的一個通知,告訴應(yīng)用程序某個事情發(fā)生了。應(yīng)用程序要實現(xiàn)的功能由消息來觸發(fā),并靠對消息的響應(yīng)和處理來完成閉。
Windows系統(tǒng)提供了一組功能強大的被稱作鉤子的API函數(shù),利用這組函數(shù)可以輕松地截獲系統(tǒng)的各種消息。使用者可以用在系統(tǒng)注冊鉤子函數(shù)的方法來截獲發(fā)往本地SolidWorks的消息,實現(xiàn)對操作信息的判斷和識別。因此,本文提出系統(tǒng)的實現(xiàn)思想:利用Windows消息機制,通過截獲驅(qū)動本地SolidWorks的操作信息,并將其進行格式化,通過網(wǎng)絡(luò)傳遞到其他參與協(xié)同的成員,其他成員在接收到信息后,經(jīng)解析驅(qū)動異地的SolidWorks作出相應(yīng)的反應(yīng),其效果就如同在本地對SolidWorks中的模型進行操作一樣。因為在網(wǎng)絡(luò)中傳遞的是格式化后的操作信息,而不是模型數(shù)據(jù),網(wǎng)絡(luò)的傳輸量變得很小,從而達(dá)到實時的目的。該系統(tǒng)由客戶端和服務(wù)器端兩大部分組成,其協(xié)作模型如圖1所示。
1.2客戶端
客戶端是用戶實現(xiàn)異地SolidWorks互操作的主要模塊,它又分為主控客戶端和被控客戶端??蛻舳酥饕怯梢韵聨撞糠纸M成:(1)操作信息捕捉;(2)信息處理;(3)網(wǎng)絡(luò)通信;(4)模型生成。其中主控客戶端實現(xiàn)對系統(tǒng)模型的維護。
1.3服務(wù)器端
對系統(tǒng)的控制主要在服務(wù)器端完成。服務(wù)器端主要實現(xiàn)用戶角色管理、用戶發(fā)言權(quán)控制、共享沖突消解功能。用戶角色管理主要是實現(xiàn)對用戶權(quán)限的管理,防止非法用戶的登錄。對于用戶發(fā)言權(quán)控制,本文采用基于令牌和集中控制相結(jié)合的用戶發(fā)言權(quán)控制模式,當(dāng)需要發(fā)言的協(xié)同用戶提出請求,在當(dāng)前發(fā)言者主動釋放令牌之后,即可獲得發(fā)言權(quán),同時管理員在服務(wù)器端可以直接中斷當(dāng)前發(fā)言者的發(fā)言權(quán),并將發(fā)一言權(quán)授予另一個協(xié)同用戶。共享沖突消解主要是通過對主控用戶加鎖的機制減少沖突的產(chǎn)生。
2關(guān)鍵技術(shù)
該系統(tǒng)的關(guān)鍵部分是對SolidWorks有用操作信息的捕捉、處理以及模型的重生成、維護部分。
2.1操作信息的捕捉、處理技術(shù)
2.1.1信息捕捉
操作信息的捕捉是通過鉤子函數(shù)來實現(xiàn)的。在Windows操作系統(tǒng)中,是一種能在事件(消息、鼠標(biāo)點擊、鍵盤響應(yīng)等)到達(dá)應(yīng)用程序前中途截獲事件的機制,它可以通過修改、丟棄等手段來對事件起作用。Windows系統(tǒng)提供了API函數(shù)Set Windows HookEx()實現(xiàn)鉤子的安裝,并通過UnhookWindowsHookEx() 函數(shù)實現(xiàn)鉤子的釋放。Windows有2種鉤子,一種是特定線程鉤子,一種是全局系統(tǒng)鉤子。特定線程鉤子只是監(jiān)視指定的線程,而全局系統(tǒng)鉤子則可以監(jiān)視系統(tǒng)中所有的線程。全局系統(tǒng)鉤子因為要對整個系統(tǒng)所有線程進行監(jiān)視,會嚴(yán)重降低系統(tǒng)性能。為提高系統(tǒng)的響應(yīng)速度,本系統(tǒng)采用特定線程鉤子。
對于一般操作信息,只需要捕捉鼠標(biāo)、鍵盤以及菜單發(fā)出的WM_COMMAND消息。對一些特定的窗口,比如繪圖區(qū),則需要設(shè)置窗口過程鉤子監(jiān)視所有從系統(tǒng)消息隊列發(fā)往該窗口的消息。因此,設(shè)置WH_MOUSE HOOK監(jiān)視輸入到消息隊列中的鼠標(biāo)消息,設(shè)置WH_KEYBOARD HOOK監(jiān)視輸人到消息隊列中的鍵盤消息,二者主要是實現(xiàn)操作在異地CAD系統(tǒng)的復(fù)現(xiàn)。因為WMCOM_MAND消息有2種類型:一種是通過SendMessage發(fā)送的;一種是由PeekMessage或PostMessage發(fā)送的。前者是需要系統(tǒng)返回值的,后者是不需要的。對于前者,采用WH_ CALLWNDYROCHOOK來捕捉,后者通過WH_GETMESSAGEHOOK來捕捉。利用WM_COMMAND消息主要是對用戶操作進行識別,比如,用戶點擊"文件"菜單,就可以通過WM_COMMAND消息判斷出用戶是在點擊"文件"菜單。在判斷出用戶的操作,在異地的CAD會根據(jù)WH_MOUSE捕捉到的鼠標(biāo)信息移動鼠標(biāo)到"文件"菜單,然后向主窗口發(fā)送WM_COMMAND消息,系統(tǒng)就會產(chǎn)生鼠標(biāo)單擊"文件"菜單的事件。
2.1.2信息處理
信息處理主要是格式化和解析捕捉到的操作信息,本系統(tǒng)采用XML語言對操作信息進行格式化。
例如:用戶ABC在機器111.111.111.5上點擊了某個菜單,產(chǎn)生消息WM_COMMAND,對其進行格式化后為:
為了保證信息的安全,可以對傳輸信息進行加密。為保證系統(tǒng)的實時性,不采用經(jīng)服務(wù)器轉(zhuǎn)發(fā)的辦法,格式化后的信息向所有的被控客戶端發(fā)送。
2.2模型的重生成
異地機在收到發(fā)送過來的信息并解析后,并不能直接傳送給本地CAD系統(tǒng)。因為Windows消息都是由各窗口接受的,而各窗口是由句柄(Handle)來標(biāo)識的,不同機器上的CAD系統(tǒng),Windows分配給其各窗口的句柄是不同的,因此要對窗口的標(biāo)題進行識別,從而保證窗口的惟一性。在Windows系統(tǒng)中,應(yīng)用程序的窗口是按Z Order順序在Desktop窗口(桌面窗口)上放置(Z軸是垂直顯示器向外的假想軸),因此可以對當(dāng)前所有的窗口標(biāo)題進行查找,找到相符的窗口后,就可以得到它的句柄,然后將解析的消息與窗口的句柄組合,發(fā)往CAD系統(tǒng),從而驅(qū)動CAD系統(tǒng)做出與本地CAD系統(tǒng)一致的動作,實現(xiàn)模型的重生成以及操作的再現(xiàn)。
2.3模型的維護
為了提高系統(tǒng)的實時性,減少傳輸模型數(shù)據(jù)的次數(shù),將模型的維護放在主控客戶端實現(xiàn)。在被控客戶端出現(xiàn)模型無法生成或由于各種原因生成模型出現(xiàn)延遲時,我們采用對主控客戶端模型進行復(fù)制的辦法維持一致性。首先,被控客戶端向主控客戶端發(fā)送請求,主控客戶端在接收到請求后,向被控客戶端發(fā)送一份標(biāo)準(zhǔn)的模型,該模型是由SolidWorks標(biāo)準(zhǔn)格式記錄的??蛻舳嗽谑盏皆撃P蛿?shù)據(jù)后將其重生成,從而維持模型的一致。
3系統(tǒng)的實現(xiàn)
根據(jù)本文介紹的系統(tǒng)框架,在SolidWorks2005上用VC++2005開發(fā)了異地協(xié)同設(shè)計系統(tǒng),成功實現(xiàn)了SolidWork、的異地協(xié)同設(shè)計。圖2為本地機上生成的模型,圖3為異地機在接收本地機的操作信息,并對其進行處理后重生成的模型。從圖中可以看出二者的模型保持了高度的一致性。圖4為客戶端在用戶獲得發(fā)言權(quán)后開始協(xié)同時的界面。圖5是服務(wù)器端的界面,服務(wù)器端可以自動生成系統(tǒng)日志,以便于發(fā)生問題時分析問題產(chǎn)生的原因。目前該系統(tǒng)在lOM帶寬的網(wǎng)絡(luò)上運行正常。
4結(jié)束語.
本文所介紹的系統(tǒng)具有實時、快速、簡便的特點,很適合于使用SolidWorks的企業(yè)進行協(xié)同設(shè)計,可極大地利用企業(yè)的人力資源,解決一些企業(yè)資源分散的問題。但該系統(tǒng)的實現(xiàn)需要對Windows消息機制比較熟悉,以保證將有用的操作信息都捕捉到,而且捕捉到的消息向異地系統(tǒng)的轉(zhuǎn)換也是一個復(fù)雜的過程。此外在協(xié)同設(shè)計中共享沖突的消解本系統(tǒng)沒有過多涉及,也是該系統(tǒng)今后需要完善的地方。
相關(guān)標(biāo)簽搜索:SolidWorks異地協(xié)同設(shè)計系統(tǒng)的實現(xiàn) SolidWorks培訓(xùn)課程 SolidWorks設(shè)計教程 SolidWorks視頻教程 SolidWorks軟件下載 SolidWorks在建筑室內(nèi)設(shè)計工業(yè)設(shè)計的應(yīng)用 SolidWorks基礎(chǔ)知識 SolidWorks代做 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓(xùn) Abaqus培訓(xùn) Autoform培訓(xùn)