范德軍,文勁松,徐 勇,宋 建
?
基于SolidWorks的可視化定制研究
范德軍1,2,文勁松1,2,徐 勇1,2,宋 建1,2
(1. 華南理工大學聚合物新型成型裝備國家工程研究中心,廣東 廣州 510640;2. 華南理工大學聚合物成型加工工程教育部重點實驗室,廣東 廣州 510640)
針對可視化定制系統中如何實時自動裝配和交互瀏覽的問題,提出一種基于SolidWorks二次開發自動裝配的方法。用戶在網頁上確定定制方案后,服務器端和與服務器有固定聯系的一臺主機遠程通訊,對SolidWorks二次開發后的自動裝配程序安裝在此主機上,服務器端遠程啟動主機上的自動裝配程序,并接收裝配完整的eDrawings文件,將三維模型反饋到網頁上顯示,用戶可以在網頁上實現虛擬交互瀏覽。該方法可以實現三維模型在多選擇方案下的實時自動組裝和網頁上的虛擬交互。
SolidWorks二次開發;自動裝配;虛擬交互;可視化定制
隨著虛擬現實技術的逐步發展,虛擬現實技術在電子商務中得到越來越廣泛的應用。在電子商務的定制系統中與定制產品虛擬交互,可以滿足顧客的個性化需求,提高用戶滿意度和企業影響力[1-2]。目前在可視化定制和自動裝配領域中已有許多學者做了大量工作。周軍偉[3]運用虛擬現實技術建立了基于Unity3D的可視化定制系統;劉喜平等[4]利用NIST開發VRMLToX3D轉化模塊實現了變型產品實時定制的功能;還有一些學者利用SolidWorks、Pro/E和WEB3D技術實現模型裝配和虛擬交互[5-8]。通過綜合使用三維設計軟件和虛擬現實技術,滿足了用戶對模型的交互需求,增強了用戶體驗。
目前,基于網頁上的可視化定制需要企業根據用戶要求手動將定制信息導入三維設計軟件,然后將設計模型導入其他軟件如3D Max中二次處理,設置交互效果并導出適于網頁瀏覽的文件格式,才可以實現在網頁上的虛擬交互。此開發過程繁瑣耗時,無法實現定制過程的連續性和實時性,而且由于軟件之間的兼容性問題,三維設計軟件文件格式和網絡化虛擬產品格式間的轉換過程限制了虛擬產品的真實程度。此外目前的研究若要實現定制過程的連續性和實時性,需要用戶安裝大型設計軟件如Pro/E、SolidWorks和開發的插件,對用戶計算機的硬件和軟件要求較高,用戶體驗效果較差,在實際應用中具有很大的局限性。
本文以SolidWorks軟件為基礎,使用VB.NET對其進行二次開發,當網絡用戶在普通瀏覽器確定電視機定制方案后,按照定制方案實時自動裝配生成裝配模型(eDrawings文件)并自動反饋到網頁上,實現三維模型的在線三維交互。本研究方法在保證實時自動裝配的同時,提高了三維模型的真實性,簡化了開發流程,且用戶無需安裝大型設計軟件SolidWorks,在普通瀏覽器即可完成可視化定制,提高了用戶滿意度。
為方便網絡用戶的使用,采用B/S結構的網絡結構設計。B/S網絡結構下用戶無需安裝SolidWorks軟件,只是通過瀏覽器訪問網頁前端界面,將組裝方案的指令發送到服務器端,服務器接收到指令時需與服務器有固定聯系的另外一臺電腦“主機”遠程通訊,根據TCP/IP協議發送組裝方案指令給“主機”的偵聽程序,主機上的偵聽程序接到指令后,啟動對SolidWorks二次開發后的自動裝配程序自動裝配,最后把裝配好的模型文件(eDrawings文件)傳送給服務器,將三維模型反饋到瀏覽器網頁前端供用戶查看,整個過程無需人工參與,全部由程序自動完成。在B/S網絡結構下,基于SolidWorks二次開發的可視化定制系統整體架構如圖1所示。

圖1 基于SolidWorks二次開發的可視化定制系統架構圖
利用SolidWorks二次開發技術可以實現對定制方案的自動裝配,由于可視化定制是基于網絡下的定制,在實際測試中,如果在網絡環境下直接啟動服務器(Window Server 2008 R2 Enterprise,Intel(R) Xeon(R) CPU E5-2620 v3@2.4 GHz)上的SolidWorks軟件,用于自動裝配的SolidWorks在服務器網絡環境下運行會出現無響應的錯誤。因此,利用TCP/IP協議對服務器和另外一臺主機建立聯系,SolidWorks軟件安裝在此主機上,當主機上偵聽到服務器端傳來定制方案的指令后,啟動主機上的自動裝配程序組裝,可避免SolidWorks軟件在服務器環境下運行,同時充分利用SolidWorks強大的二次開發功能。
目前,大多數三維設計軟件的模型無法直接通過網頁上瀏覽,通常需要人工導入到其他軟件如3D Max轉換文件格式,并且需要在軟件中手動設置交互效果,過程復雜耗時,而且容易因為軟件之間的兼容性導致模型失真。利用SolidWorks二次開發的功能直接將裝配體模型保存為eDrawings格式文件,eDrawings格式為SolidWorks軟件自身的一種輕量化文件格式,可以保證模型的完整,實現從裝配到網頁交互的自動化,不需要人工參與。
SolidWorks憑其強大的三維設計功能,得到越來越廣泛的應用。企業為提高市場競爭力,紛紛對SolidWorks開發出滿足自身特殊使用要求的功能。SolidWorks提供了幾百個API(application program interface)函數,這些函數是COM或者OLE的接口,開發人員可以使用VB.NET、C等編程語言對其進行二次開發,建立滿足用戶需求的功能模塊[9-10]。本文以Visual Studio 2010為開發工具,VB.NET為開發語言對SolidWorks 2012進行二次開發。
本文對SolidWorks的二次開發從建立零件庫和程序代碼兩部分進行介紹。
2.1.1 建立零件庫
自動裝配的零件庫建立步驟如下:
(1) 建立零件模型。使用SolidWorks軟件建立模型,或直接利用公司原有的模型文件;
(2) 建立合適的裝配基準。裝配過程中需要選擇定位基準和添加約束類型,其中常用的約束類型有重合、平行、垂直等。為了簡化裝配過程,便于SolidWorks自動裝配的二次開發,將所有零部件的配合類型設置為重合[11-12]。使用SolidWorks軟件對所有零件建立合適的定位基準,定位基準的命名按照一定規則命名,比如直接按照零部件的名稱進行命名。結構類似的零部件可以選擇相同類型的基準,例如具有兩個孔的底座,可以將兩個孔的軸線作為兩個基準軸,底座的上平面為基準面。同樣的,在與底座聯接的部件對應位置也建立兩個基準軸和一個基準面,裝配時分別選擇基準軸、基準面重合約束,實現底座的完全 約束。
2.1.2 二次開發程序
與其他三維設計軟件如Pro/E等類似,SolidWorks裝配時首先根據模板文件創建一個裝配體,然后插入零部件,對每個零部件添加配合約束,最后保存導出。不同的是,在SolidWorks自動裝配的二次開發中,需在插入零部件之前先打開零部件,將零件讀入內存中才可以插入零部件,然后進行下一步的裝配。SolidWorks二次開發自動裝配流程圖如圖2所示。

圖2 SolidWorks二次開發自動裝配流程圖
其中,新建裝配體使用NewDocument (TemplateName,PaperSize,Width,Height),TemplateName為裝配體模板的路徑;打開零部件使用OpenDoc6 (FileName,Type,Options,Configuration,Errors,Warnings);在打開零部件將其讀入到內存之后,調用AddComponent2 (CompName,X,Y,Z)函數插入零部件,然后對零部件添加約束。
目前,在裝配零部件選擇基準時通常使用SelectByID2 (Name,Type,X,Y,Z,Append,Mark,Callout,SelectOption)函數,此函數在調用時需要確定所選擇基準的坐標位置,在裝配多個零件時極易出錯。本文采用FeatureByName (Name)函數來選擇定位基準的名稱,無需計算基準坐標,而是直接按基準的名稱進行選擇。在2.1.1中曾介紹到,所有零部件按照一定的命名規則創建基準,此時FeatureByName()函數在調用時顯得十分靈活。裝配添加約束時調用AddMate3 (MateTypeFromEnum,Alig-nFromEnum,Flip,Distance,DistanceAbsUpperLimit, DistanceAbsLowerLimit,GearRatioNumerator,GearRatioDenominator,Angle,An-gleAbsUpperLimit,AngleAbsLowerLimit,ForPositioningOnly,ErrorStatus),其中,MateTypeFromEnum是用數字表示的配合類型,比如0為重合、1為同心等,本文選擇的配合類型為重合,即數字0。關于上述函數的詳細說明可以參照相應的API幫助文檔,在此不再贅述。
在保存裝配好的模型時,使用SaveAs3 (NewName,SaveAsVersion,Options)函數保存導出裝配體模型。在SolidWorks二次開發中,此函數可以將模型保存為多種格式的文件,例如STEP、VRML等格式。將模型保存為eDrawings文件格式“EASM”內存較小,便于網絡傳輸和網頁展示,這也是選擇SolidWorks軟件進行二次開發的主要原因。
為解決SolidWorks軟件在服務器網絡環境下無法運行的問題,利用C#語言開發遠程服務模塊解決該難題。在主機上安裝有偵聽程序、自動裝配程序、SolidWorks軟件。其中偵聽程序在主機上始終保持運行,用于時刻偵聽服務器端的連接請求,自動裝配程序是對SolidWorks二次開發完成后的異步程序。工作流程如圖3所示

圖3 網絡環境下自動裝配流程圖
具體流程如下:
(1) 當用戶在網頁確定了定制方案后,服務器端開始連接主機上的偵聽程序,使用Connect()函數連接主機的IP地址和端口號,確認連接之后發送用戶組裝方案指令。
(2) 主機上的偵聽程序使用TcpListener時刻偵聽服務器端的連接請求,當接收到連接請求之后使用AcceptTcpClient()函數確認連接請求,然后啟動主機上的“自動裝配程序”,啟動“自動裝配程序”使用Process.Start()函數,啟動SolidWorks軟件從相應的零件庫中調取零件自動組裝,裝配完成之后將裝配模型文件發送到服務器端。
(3) 服務器端接收來自主機上的模型文件,儲存在服務器文件夾下,此時如果用戶安裝eDrawings瀏覽器插件,就可以自動讀取服務器指定文件夾下的模型文件,顯示到網頁上交互瀏覽。
三維模型的網頁展示,可以使用戶更清晰直觀地了解產品信息。三維模型文件尤其是裝配體模型的文件較大,若通過Internet進行數據傳送,將占用很大的網絡帶寬資源,傳輸數據時間較長,甚至會出現數據丟失的情況。VRML文件是目前常用的網頁展示文件格式,VRML文件是ASCII碼格式的純文本文件,文件大小要比STEP等其他格式的模型文件要小,便于進行網絡上的傳輸。由于采用優化器來減少面片也減小文件大小,因此導致渲染質量下降,模型有時會存在破孔、爛面的情況,工程師將花費大量的時間去修復這些損壞的模型,特別是復雜模型。因此,為了適應虛擬交互產品的趨勢,一些CAD公司相繼開發出網上瀏覽的文件格式,比如達索公司針對SolidWorks開發的eDrawings格式文件。
采用eDrawing格式文件的優點如下:
(1) 由于eDrawings格式文件只包含模型中的繪圖部分,因此其模型文件占用網絡帶寬較小,便于網絡傳輸和顯示。
(2) 通過SolidWorks保存為eDrawings格式的文件,不會因為數據壓縮出現破孔、爛面的情況,這是因為其不同于目前的基于三角形的多邊形描述模型,而是采用非線性的自由表面,用戶觀察到的模型更加接近原始模型。
(3) 在網絡環境下安裝eDrawings瀏覽器插件后,可以自動解讀模型文件顯示在瀏覽器網頁上,用戶通過使用鼠標選擇旋轉、縮放、動畫、隱藏、透明等操作實現虛擬交互,觀察虛擬產品的內外部結構特點。
使用SolidWorks二次開發的保存文件函數SaveAs3()自動保存并導出裝配體模型。生成的裝配體文件大小大約是原始裝配體模型文件的十分之一,使得基于網頁上的虛擬交互成為可能。
以廣東朝野科技有限公司的電視機自動裝配系統為例詳細說明。根據電視機的功能和外形可以將電視機劃分為多個系列,而且每一個系列下根據顯示屏的尺寸大小又劃分為不同的產品,例如“55DN系列”表示“DN系列”下的55英寸電視機。在產品的定制方案中,可供選擇的零部件較多,若將每種可能的選擇方案一一裝配列舉供用戶選擇,將會浪費大量人力、物力,不切實際。“55DN系列”電視機可供用戶定制選擇的主要部件及其規格見表1。
僅此型號的的電視機,即可產生1×2×2×3×3×2 ×2×2=288種定制方案,實際中有更多型號和系列的產品,產生的定制方案數以萬計。因此將本文研究應用在該企業的電視機定制系統中,可以方便地滿足用戶需求。網絡用戶在普通瀏覽器確定電視機定制方案后,實現自動裝配并供用戶在網頁上瀏覽交互。
采用VB.NET語言設計網頁前端界面,提供友好人機頁面。用戶登陸系統之后,可以選擇要定制組件的各個型號,每一個型號下會提供可以定制的組件,比如底座、屏幕、音響等組件。系統首頁如圖4所示。

表1 “55DN系列”電視機可供用戶定制選擇項目

圖4 電視機定制系統首頁
在用戶確定組裝方案后,點擊“確定選擇方案”,在右側的顯示框中會顯示具體的選擇方案,而且“顯示模型”按鈕此時變為可點擊狀態。確定是方案后,點擊“顯示模型”按鈕,服務器端和主機啟動相應的程序實現在線自動裝配,之后會自動跳轉到如圖5所示的頁面,用戶瀏覽器中如果安裝有eDrawings瀏覽器插件,即可以在網頁上三維預覽窗口中自動加載出定制方案的裝配體三維模型;如果用戶未安裝該插件,也可根據提示下載安裝eDrawings瀏覽器插件。在網頁界面提供eDrawings瀏覽器插件的下載鏈接,除了可以對三維模型進行旋轉、縮放、平移等基本操作外,還可以實現隱藏、透視、動畫等顯示效果,便于用戶觀察模型的內外部結構,直觀展示產品的特征信息。用戶安裝eDrawings瀏覽器插件后,用鼠標在三維預覽窗口上點擊右鍵,可以選擇操作選項,達到不同的顯示效果。具體操作選項和瀏覽效果如圖5所示。
為了更好地說明本研究的先進性,引入系統響應時間作為評價指標。因為作為一個面向用戶的系統,其響應時間直接關系到良好的用戶體驗。用戶完成定制方案后,向主機發送指令、主機進行自動裝配、生成裝配文件、發送到瀏覽器頁面,大部分時間主要花在主機上的自動裝配和發送到瀏覽器頁面上,自動裝配主要與主機的計算機性能有關,發送階段與裝配體文件大小和網絡速度有關,不同尺寸大小的電視機對應的文件大小不同。當用戶確定定制方案顯示到網頁界面上,整個過程的系統響應時間大約為20~30 s,如果條件允許,可以選擇更好配置的主機進行自動裝配,將會大大縮短系統響應時間。(測試所用瀏覽器:Internet Explorer 6.0;網絡服務器:操作系統Window Server 2008 R2 Enterprise,處理器 Intel(R) Xeon(R) CPU E5-2620 v3@2.4 GHz,內存 2 GB;主機:操作系統 Windows 7,處理器 AMD A8-4500M APU with Radeon(tm) Graphics 1.9 GHz 內存:4 GB)。

圖5 eDrawings瀏覽器插件下的瀏覽效果
當用戶對定制的電視機滿意時,可以下單繼續完成交易,如果不滿意可以重新選擇定制。此外,該實時自動裝配與交互瀏覽方法還可以應用在公司員工培訓、工廠裝配車間等場合,讓用戶全方位的掌握組裝產品的外形和內部結構特點。
本文基于SolidWorks的二次開發,提出網絡下實時自動裝配和虛擬交互的方法,可按照用戶定制方案自動調取零部件組裝,然后以三維模型的形式在網頁展示,用戶通過瀏覽器對產品模型交互操作。該方法實現了自動裝配的實時性和連續性,提高了虛擬模型的真實性,增強了可視化定制系統的用戶體驗,已被應用于廣東朝野科技有限公司的電視機自動裝配系統中,并取得了良好的效果。
[1] RANGA J S. Customized videos on a YouTube channel: a beyond the classroom teaching and learning platform for general chemistry courses [J].Journal of Chemical Education, 2017, 94(7): 867-872.
[2] NAVIMIPOUR N J, SOLTANI Z. The impact of cost, technology acceptance and employees' satisfaction on the effectiveness of the electronic customer relationship management systems [J]. Computers in Human Behavior, 2016, 55(C): 1052-1066.
[3] 周軍偉. 工程機械產品可視化定制平臺的研究[D]. 石家莊: 石家莊鐵道大學, 2016.
[4] 劉喜平, 胡青泥, 李春波. 網絡化變型產品定制研究[J]. 工程圖學學報, 2008, 29(5): 1-5.
[5] 李杰. 基于網絡的機床產品大規模定制方法的研究[D]. 南京: 南京林業大學, 2009.
[6] 徐曉, 鄧高升, 林民才, 等. 柴油發動機裝拆網絡虛擬實驗室設計與建模[J]. 實驗室研究與探索, 2015, 34(7): 98-102.
[7] 崔亞彬, 弋景剛, 侯雯卉, 等. 網絡虛擬模型庫在農業機械設計中的應用[J]. 農機化研究, 2011, 33(2): 150-153.
[8] 田源, 王欣, 許濱, 等. 基于SolidWorks二次開發的自動裝配技術研究與應用[J]. 機械科學與技術, 2012, 31(5): 703-707.
[9] 盧杰, 米彩盈. 基于SolidWorks的聯合參數化設計方法研究[J]. 圖學學報, 2013, 34(6): 64-68.
[10] MOTATO E, RADCLIFFE C. Networked assembly of affine physical system models [J]. Journal of Dynamic Systems Measurement & Control, 2010, 132 (6): 768-778.
[11] 袁清珂, 陳晨, 黎賢釗. 基于SolidWorks多排鉆機床主軸箱的虛擬裝配系統[J]. 機電產品開發與創新, 2013, 26(2): 60-63.
[12] 卞正軍, 袁紅兵. 基于SolidWorks二次開發的生化分析儀加樣臂參數化設計[J]. 制造業自動化, 2017, 39(7): 81-84.
Research on Visual Customization Based on SolidWorks
FAN Dejun1,2, WEN Jingsong1,2, XU Yong1,2, SONG Jian1,2
(1. The National Engineering Research Center of Novel Equipment for Polymer Processing, South China University of Technology, Guangzhou Guangdong 510640, China;2. The Key Laboratory of Polymer Processing Engineering of Ministry of Education, South China University of Technology, Guangzhou Guangdong 510640, China)
In order to solve the problem of real-time automatic assembly and interactive browsing in visual customization system, an automatic assembly method based on secondary development of SolidWorks in network environment is proposed. User defined customized solutions on the web page and a remote communication between a server and a server that has a fixed connection. The automatic assembly program secondary development of SolidWorks installed on the host. The server automatic assembly program remote boot on the host and receive the complete assembly of eDrawings files. The 3D model is fed back to the web page. The user can browse the web page in the realization of virtual interaction. This method can realize the real time automatic assembly and virtual interaction of the 3D model under the multi choice scheme.
secondary development of SolidWorks; automatic assembly; virtual interaction; visual customization
TH 122
10.11996/JG.j.2095-302X.2018030573
A
2095-302X(2018)03-0573-06
2017-09-08;
2017-11-20
國家自然科學基金項目(51435005);佛山市科技創新項目(2016AG100262)
范德軍(1992–),男,山東臨沂人,碩士研究生。主要研究方向為SolidWorks軟件二次開發、CAD/CAE/CAM。E-mail:de_jun_fan@163.com
宋 建(1971–),男,廣東廣州人,高級工程師,本科。主要研究方向為工業網絡技術、工業裝備智能技術、計算機測控技術。E-mail:songjian@scut.edu.cn