• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于二次開發(fā)的動態(tài)干涉檢查系統(tǒng)設計與應用

      2018-05-15 08:31:14韋文龍仲梁維陳彩鳳
      軟件導刊 2018年4期

      韋文龍 仲梁維 陳彩鳳

      摘 要:干涉檢查與產(chǎn)品設計研發(fā)質量有著密切聯(lián)系,無論是在組合件裝配體或模型的設計生產(chǎn)過程中,都可能避免不了裝配體中存在干涉的情況。因此,為快速偵測出存在干涉的位置,進而快速修正干涉現(xiàn)象,干涉檢查成為設計人員在建模過程中必不可少的工作。為了在建模裝配過程中給設計人員提供高效、便捷的干涉檢查方式,以VB.NET作為編程設計平臺,結合SQL Server數(shù)據(jù)庫相關知識,利用SolidWorks為軟件開發(fā)平臺,以棱形結構的千斤頂為研究對象,開發(fā)了一套動態(tài)干涉檢查系統(tǒng)。該系統(tǒng)通過人機交互界面,可實現(xiàn)零部件間動態(tài)干涉的快速檢查,從而顯著提升設計效率和產(chǎn)品質量。

      關鍵詞:動態(tài)干涉檢查;SolidWorks;VB.NET;千斤頂

      DOI:10.11907/rjdk.172609

      中圖分類號:TP319

      文獻標識碼:A 文章編號:1672-7800(2018)004-0144-04

      Abstract:Interference check is closely related to the quality of product design, research and development. Interference check exists both in component assembly, model design and manufacuring. Therefore it is indispensable for designers to set up models in interference check and necessary and essential to detect interference loaction rapidly so as to achieve rapid detection. In order to provide designers with an efficient and convenient interference check during the modeling and assembly process, we develop a dynamic interference system in which VB.NET is used as the programming design platform and SolidWorks 2016 as the software development platform, and relevant knowledge of SQL Server database is combined to research on prismatic structure lifting jack through human-computer interaction. Rapid inspection of dynamic interference between parts and components is then realized to significantly improve design efficiency and product quality.

      Key Words:dynamic interference checking; SolidWorks; VB.NET; lifting jack

      0 引言

      在經(jīng)濟全球化背景下,企業(yè)面臨的競爭越來越激烈,設計的產(chǎn)品不僅要滿足客戶要求,還要保證產(chǎn)品安全可靠。為此引進計算機輔助軟件[1],并結合相關編程語言對其進行二次開發(fā),使產(chǎn)品的設計和開發(fā)朝著智能化、信息化、快速化的方向發(fā)展,從而極大地節(jié)約了開發(fā)成本和設計時間,增強了企業(yè)競爭力。

      產(chǎn)品在設計和研發(fā)過程中,通常會存在干涉現(xiàn)象。因此,如何快速偵測出干涉,并對其進行有效判斷與快速修正,變得極其重要。本文基于SolidWorks二次開發(fā)平臺,以能上下升降的千斤頂為研究對象,設計出能夠實現(xiàn)動態(tài)干涉檢查的功能系統(tǒng),對設計人員快速設計出高質量的產(chǎn)品具有積極作用。

      1 SolidWorks二次開發(fā)原理

      SolidWorks是一套基于Windows的CAD/CAE/CAM/PDM集成系統(tǒng),集設計、分析、加工與數(shù)據(jù)管理于一體。而SolidWorks API是SolidWorks的OLE應用程序開發(fā)接口,用戶可以利用它并通過支持OLE編程的開發(fā)工具,如VB、VBA、C等對其進行二次開發(fā)[2]。

      圖1為SolidWorks的對象模型層次結構,是一個自上而下的樹型結構。

      SolidWorks的OLE對象總共可分為10大類,幾乎涵蓋了所有操作,如建模、修改等基本功能,任何支持OLE和COM的編程語言都可作為SolidWorks的開發(fā)工具[3]。SolidWorks二次開發(fā)分為兩種,一種是基于自動化的,此技術只能開發(fā)EXE形式的程序;另一種是基于COM的,將程序內容以DLL插件形式嵌入到SolidWorks菜單欄中。本文以編程語言VB為開發(fā)工具[4],采用基于COM的開發(fā)方式,通過編程語言訪問這些API對象,可以輕松向SolidWorks發(fā)出操作指令,令其執(zhí)行特定動作,從而快速建立適合用戶需要的功能模塊。

      2 裝配動態(tài)干涉檢查系統(tǒng)

      2.1 SolidWorks干涉檢查

      SolidWorks對于干涉檢查部分,無論是組合件或零部件于靜態(tài)、動態(tài)環(huán)境下都能快速進行干涉檢測,且系統(tǒng)會立即以警示窗口提示存在的干涉情況,從而實現(xiàn)快速修正模型的全方位設計功能。

      2.2 動態(tài)干涉檢查系統(tǒng)簡介

      為解決裝配體干涉問題,以編程語言VB開發(fā)了一套簡易的動態(tài)干涉檢查系統(tǒng),可為用戶提供便捷的動態(tài)干涉檢查功能模塊[5]。通過調用SolidWorks API,實現(xiàn)了VB與SolidWorks的連接,并通過參數(shù)化設計實現(xiàn)動態(tài)干涉檢查,最后利用SQI. Server數(shù)據(jù)庫讀取數(shù)據(jù)[6],將檢查結果以Excel表格形式導出,使用戶可從“干涉檢查表”中讀取到干涉的詳細信息。

      本系統(tǒng)所使用的“動態(tài)干涉檢查”不同于SolidWorks自帶的“動態(tài)干涉檢查”,主要體現(xiàn)在本方式結合了“靜態(tài)干涉”和零部件“位移”的關系,通過程序控制,使零部件位移到指定位置,分別在不同位置進行干涉檢查,并實現(xiàn)了每位移一段距離進行一次干涉檢查的功能。該系統(tǒng)不僅提高了開發(fā)人員的設計效率,還提升了產(chǎn)品開發(fā)質量。

      2.3 系統(tǒng)設計開發(fā)過程

      利用編程語言VB開發(fā)基于SolidWorks的“動態(tài)干涉檢查”功能模塊,大致分為兩個階段:第一階段是可視化設計,可利用VB.NET工具箱對界面進行設計,然后通過SolidWorks SDK,在VB與SolidWorks之間建立一座聯(lián)系的橋梁,使系統(tǒng)嵌入SolidWorks插件菜單中[7];第二階段是代碼編寫,可通過VB編程語言和API實現(xiàn)。系統(tǒng)開發(fā)流程如圖2所示。

      3 動態(tài)干涉檢查系統(tǒng)應用

      3.1 裝配體選擇

      “干涉檢查”作為一個功能模塊,需要對一個具體模型進行識別和操作。因此,需要以一個能進行“位移”的裝配體為研究對象。該模型至少包含兩個零部件,并且在運行時要求至少選擇兩個零部件。結合日常生活中的機械設備,本文選擇的對象是“千斤頂”,其不僅用途廣泛,對加工精度要求也很高,最重要的是其工作方式是上下移動的,滿足了本系統(tǒng)開發(fā)的基本要求。

      3.2 交互式系統(tǒng)界面設計與操作

      3.2.1 系統(tǒng)用戶界面

      用戶界面是系統(tǒng)的重要部分,主要由啟動模型、位移、干涉檢查等按鈕組成。功能模塊則包括兩種檢查方式,一種是“手動式”動態(tài)干涉檢查,另一種是“自動式”動態(tài)干涉檢查。

      3.2.2 系統(tǒng)基本操作流程

      “手動式”:輸入“高度值H”,點擊“位移”按鈕,此時系統(tǒng)檢測輸入的數(shù)值是否符合設計要求,如不符合,會提醒用戶再次輸入,如果符合,模型會位移到指定高度;然后點擊“干涉檢查”開始檢查,結果以Excel表格形式輸出,本次檢查結束;再輸入新的“高度值H”,可進行下一次檢查,從而實現(xiàn)裝配體在不同位置的干涉檢查。

      “自動式”:本方式更加智能化與參數(shù)化[8],只需分別輸入“間隔距離D”和“檢查次數(shù)N”,點擊“一鍵檢查”,如果數(shù)值符合要求,則開始“動態(tài)干涉檢查”,最后得到裝配體在N個位置的干涉檢查結果。

      動態(tài)干涉檢查系統(tǒng)運行流程如圖4所示。

      3.3 動態(tài)干涉檢查系統(tǒng)實現(xiàn)

      在復雜裝配體中,僅依靠視覺判斷裝配體是否存在干涉十分困難,以VB作為編程設計平臺,依靠API即可實現(xiàn)干涉檢查。本系統(tǒng)的“動態(tài)干涉檢查”是指將“干涉檢查”與“位移”結合起來,即在程序中加上一個循環(huán)語句,通過調整間隔距離和檢查次數(shù),便可實現(xiàn)模型的自動位移和干涉檢查。

      (1)啟動模型。打開SolidWorks,進入系統(tǒng)操作界面[9],在進行干涉檢查前,需要先打開某一裝配體,具體程序如下:

      SwApp=CreateObject("sldworks.application")

      part=SwApp.OpenDoc("路徑.SLDASM",2,0,"",longstatus,longwarnings)

      SwApp.ActivateDoc("模型名稱.SLDASM",F(xiàn)alse,longstatus)

      part=SwApp.ActiveDoc

      (2)位移。由于實現(xiàn)“動態(tài)干涉檢查”的基本要求是使零部件動起來,并且不能破壞零部件的裝配關系,利用基準面的配合關系,不僅能使零部件動起來,還能設置其位移距離,主要代碼如下:

      part.EditUnsuppress()

      boolstatus=part.Extension.SelectByID2("基準面","PLANE",0,0,0,F(xiàn)alse,0,Nothing,0)

      part.ActivateSelectedFeature()

      ……

      myDimension=part.Parameter("D1@基準面")

      myDimension.SystemValue=Val(310-TextBox3.Text*(O-1))/1000

      boolstatus=part.EditRebuild3()

      其中,myDimension是關于位移距離的變量,在全局加一個循環(huán)語句,通過該變量的賦值,可使模型依次位移到指定位置。

      (3)進行動態(tài)干涉檢查,通過調用API函數(shù),實現(xiàn)了“干涉檢查”功能,主要程序如下:

      nSelCount=swSelMgr.GetSelectedObjectCount

      ReDimCompArray(nSelCount-1)

      vCompArray=CompArray

      swAssy.ToolsCheckInterference2(nSelCount,(vCompArray),F(xiàn)alse,vIntCompArray,vIntFaceArray)

      If (IsNothing(vIntCompArray)) And (IsNothing(vIntFaceArray))

      其中If (IsNothing(vIntCompArray)) And (IsNothing(vIntFaceArray))的作用是判斷是否存在干涉,swAssy.ToolsCheckInterference2是進行干涉檢查的關鍵代碼。在模型中的運行效果如圖5所示。

      (4)使存在干涉的部分高亮顯示,代碼如下:

      ……

      swFace.Highlight(True)

      bRet=swEnt.Select2(True,0)

      Next i

      For i=0 To UBound(vIntCompArray)

      swComp=vIntCompArray(i)

      bRet=swComp.Select2(True,0)

      Next i

      (5)詳細干涉結果。通過以下代碼可得到干涉結果詳細信息:

      pIntMgr=swAssemblyDoc.InterferenceDetectionManager

      ……

      pIntMgr.CreateFastenersFolder=True

      pIntMgr.IgnoreHiddenBodies=True

      pIntMgr.UseTransform=True

      pIntMgr.NonInterferingComponentDisplay=value

      vInts=pIntMgr.GetInterferences

      ret=pIntMgr.GetComponentsAndTransforms(vComps,vTrans)

      ……

      vComps=interference.Components

      swApp.SendMsgToUser("干涉序數(shù):"&(i+1)&"干涉的組件個數(shù):共"&interference.GetComponentCount;&"個"&"干涉的總面積:"&(V)&"mm^3")

      pIntMgr.Done()

      3.4 數(shù)據(jù)庫應用

      在查看干涉結果的方式上,最先采用的是彈窗形式[10],后來考慮到操作的簡便性,以SQL Server提供數(shù)據(jù)支持,加上程序識別的干涉信息,最后以Excel表格形式列出干涉結果,不僅可一目了然地查看結果,還有利于數(shù)據(jù)存儲。干涉檢查表樣式如圖6所示。

      4 結語

      本文以千斤頂為研究對象,以SolidWorks軟件為開發(fā)平臺,以VB為編程語言對SolidWorks進行二次開發(fā),研發(fā)出一套動態(tài)干涉檢查系統(tǒng),不僅可為開發(fā)類似功能的系統(tǒng)提供參考,也為企業(yè)未來在虛擬裝配領域的二次開發(fā)奠定基礎。本系統(tǒng)功能的實現(xiàn),不僅提高了開發(fā)人員設計效率,避免時間花費大量時間重新設計及建構原型,降低了公司的人力與時間成本,同時提升了產(chǎn)品質量和企業(yè)競爭力。

      參考文獻:

      [1] 湛迪強,孔杰.SolidWorks 2014快速入門、進階與精通[M].北京:電子工業(yè)出版社,2014.

      [2] 江洪,李仲興,邢啟恩.SolidWorks2003二次開發(fā)基礎與實例教程[M].北京:電子工業(yè)出版社,2003.

      [3] 陳超祥,胡啟登.SolidWorks高級教程簡編[M].北京:機械工業(yè)出版社,2015.

      [4] 林卓然.VB語言程序設計[M].北京:電子工業(yè)出版社,2012.

      [5] 錢海軍.Visual Basic項目案例開發(fā)實戰(zhàn)[M].北京:清華大學出版社,2016.

      [6] 張昊,高晶.SQL Server 2008數(shù)據(jù)庫原理及應用教程[M].北京:清華大學出版社,2016.

      [7] 鮑東,仲梁維.利用參數(shù)化設計技術的起重機快速設計研究[J].現(xiàn)代制造工程,2014(1):2-4.

      [8] 張峰,李前兆,黃傳真.參數(shù)化設計的研究現(xiàn)狀與發(fā)展趨勢[J].機械工程師,2002(1):13-15.

      [9] 沈斌,宮大.產(chǎn)品廣義參數(shù)化設計的研究[J].計算機工程與應用,2006,31(1):94-96.

      [10] 孫毅.對稱驅動剪式升降平臺設計及研究[D].昆明:昆明理工大學,2012.

      (責任編輯:黃 ?。?/p>

      洱源县| 原阳县| 大港区| 贺兰县| 钟山县| 孝昌县| 定州市| 金塔县| 龙陵县| 罗甸县| 衡东县| 昌乐县| 麻栗坡县| 岑溪市| 尖扎县| 崇文区| 灵璧县| 汕头市| 永靖县| 凤庆县| 阿克| 白玉县| 丰顺县| 天气| 鄯善县| 建瓯市| 通江县| 南部县| 乐东| 宜州市| 白城市| 宝鸡市| 鸡泽县| 隆回县| 扶绥县| 泗洪县| 大安市| 洛扎县| 化隆| 绥棱县| 荆门市|