• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    利用VB.NET實現(xiàn)零件虛擬拆裝的動態(tài)仿真

    2010-04-19 05:45:18張鵬程郗艷梅李國順
    關(guān)鍵詞:樣條二次開發(fā)應(yīng)用程序

    張鵬程,郗艷梅,李國順

    (河北工程技術(shù)高等專科學(xué)校電氣工程系,河北滄州 061001)

    利用VB.NET實現(xiàn)零件虛擬拆裝的動態(tài)仿真

    張鵬程,郗艷梅,李國順

    (河北工程技術(shù)高等??茖W(xué)校電氣工程系,河北滄州 061001)

    利用VB.NET作為開發(fā)工具對AutoCAD進行了二次開發(fā),實現(xiàn)了在AutoCAD環(huán)境下的三維零件實體虛擬拆裝的動態(tài)仿真。該方法能夠自動完成零件圖的自動拆卸和裝配過程的模擬,對于實際產(chǎn)品設(shè)計及相關(guān)過程有一定的示范作用。

    二次開發(fā);VB.NET;ActiveX Automation技術(shù);動態(tài)仿真

    裝配仿真[1,2]以動畫的方式直觀、形象地模擬裝配過程,從而既可以輔助產(chǎn)品設(shè)計和裝配工藝的設(shè)計,又可對實際裝配人員的操作起一定的示范作用。在教學(xué)過程中,應(yīng)用虛擬拆裝動態(tài)仿真可以使學(xué)生對于零件的結(jié)構(gòu)、裝配過程、各部件裝配的次序及方法產(chǎn)生清晰認識,特別是對于一些大型和復(fù)雜的零件,無法也不可能在課堂上進行拆裝演示,所以利用計算機實現(xiàn)零件的虛擬拆裝動態(tài)仿真,無論對于實際生產(chǎn)還是對于課堂教學(xué)都有著非常重用的意義。

    自AutoDesk公司開發(fā)的AutoCAD工程圖形處理軟件面世以來,以其完善的繪圖功能,易學(xué)易用的特點,受到廣大工程技術(shù)人員的普遍歡迎。AutoCAD及其圖形格式已成為一種事實上的國際工業(yè)標準[3],其主要是因為它具有開放的體系結(jié)構(gòu):它允許用戶和開發(fā)者采用高級編程語言對其進行擴充和修改,即二次開發(fā)[4],能最大限度地滿足用戶的特殊要求。目前,常用的二次開發(fā)工具有AutoLISP,VBA,ObjectARX,VB.NET等。

    在Visual Basic 6.0之后,微軟公司推出了全新的“.NET構(gòu)架”,在其第一個版本Visual Studio.NET 7.0中,集成了Visual Basic 7.0,Visual C++7.0及C#,其中的Visual Basic 7.0(VB 7.0),即是VB.NET的第一個版本?,F(xiàn)在.NET的最新版本是Visual Studio 2008 SP1,它在Visual Studio 2005的基礎(chǔ)上引入了250多個新特性,整合了對象、關(guān)系型數(shù)據(jù)、XM L的訪問方式,語言更加簡潔,使開發(fā)Windows應(yīng)用程序更加高效。

    1 ActiveX Automation和CAD的層次對象模型

    ActiveX Automation是微軟公司推出的一個技術(shù)標準[5,6],該技術(shù)在Windows系統(tǒng)的統(tǒng)一管理下協(xié)調(diào)不同的應(yīng)用程序,允許應(yīng)用程序之間相互控制、相互調(diào)用。

    從AutoCAD R14版開始,AutoCAD引入了ActiveX Automation技術(shù)。AutoCAD ActiveX技術(shù)提供了一種機制,該機制可使編程者通過編程手段從內(nèi)部或外部來操縱AutoCAD,從而實現(xiàn)ActiveX與AutoCAD進行通信。ActiveX由一系列的對象,根據(jù)它們在AutoCAD中的功能,組成一種樹形結(jié)構(gòu),稱之為對象模型(Object Model)樹。每一個對象代表了AutoCAD中一個明確的功能。AutoCAD的絕大多數(shù)功能,均以方法和屬性的方式被封裝在ActiveX對象中,只要使用某種方式,就可以使用各種面向?qū)ο缶幊痰恼Z言對其中的方法、屬性進行引用。

    2 實體動態(tài)拆裝模擬的實現(xiàn)

    2.1 創(chuàng)建AutoCAD的引用和連接[7]

    首先,要在Visual Basic.NET編程環(huán)境中引用AutoCAD對象庫。在Visual Basic.NET編程環(huán)境中選擇菜單[項目]/[添加引用]/COM,再選擇AutoCAD2004 Tyoe Library,如圖1所示,然后單擊[選擇]和[確定]按鈕。

    AutoCAD對象的引用采用對象變量來完成。設(shè)引用AutoCAD應(yīng)用對象(Application)的變量名為AcadApp,則

    上面代碼將AutoCAD對象引用賦給變量AcadApp,創(chuàng)建AutoCAD對象變量。如果AutoCAD已經(jīng)啟動運行,則GetObject函數(shù)返回對AutoCAD應(yīng)用程序?qū)ο蟮囊?否則,發(fā)生一個錯誤。用CreateObject函數(shù)創(chuàng)建AutoCAD應(yīng)用程序?qū)ο蟮囊?如果成功,則AutoCAD被啟動,否則用MsgBox函數(shù)給出一個錯誤信息提示框,然后退出程序。這里使用了比較復(fù)雜的條件語句,目的是確保只啟動運行一次AutoCAD。

    Visual Basic.NET與AutoCAD連接之后才可以利用AutoCAD對象及其下級對象的屬性、方法等,完成用Visual Basic.NET語言在AutoCAD環(huán)境中的圖形繪制、編輯等操作[8]。

    圖1 引用AutoCAD2004的對象庫

    2.2 實體的選擇

    AutoCAD圖形的繪制、編輯均在其圖形文件中進行,所以,在進行動態(tài)拆裝仿真之前,首先要利用AutoCAD的繪圖工具,繪制出所有三維零件的實體圖。本文以平行虎鉗的三維實體圖為例,保存文件名為“拆裝仿真.dwg”。在應(yīng)用程序中,利用如下代碼打開AutoCAD圖形文件。

    然后,在圖形文件中指定要進行動態(tài)拆裝的各個零件實體。實體的選擇采用如下方法:Acadapp.Active-Document.Utility.GetEntity(Object(Count),basePnt,"選擇實體")。

    利用實體的Object.handle屬性獲得實體的handle值,并在當前應(yīng)用程序路徑下創(chuàng)建一個文本文件“選擇實體.txt”,用以記錄每個實體的Handle值。

    2.3 實體移動的路徑的選擇

    為了便于觀察拆裝過程,針對每一個實體利用Spline工具繪制樣條曲線做為實體拆裝時的移動路徑。樣條曲線各擬合點的坐標由Get FitPoint(i)方法獲得,它們是實體移動位置的關(guān)鍵點。分別按從第一個點到最后一個點的順序和從最后一個點到第一個點的順序?qū)⒏鲾M合點分別記入標志該樣條曲線的兩個文本文件中,分別保存為“拆卸.txt”和“裝配.txt”中,用來模擬各圖形從初始位置到遠方(拆卸),從遠方沿路徑回到初始位置(裝配),從而動態(tài)實現(xiàn)實體的拆裝過程。然后,將路徑數(shù)存入另一文件,用于在動態(tài)模擬時判斷從屏幕上選擇的圖形實體數(shù)目是否與路徑數(shù)相等。

    利用Acadapp.ActiveDocument.Utility.GetEntity(Obj(ObjCount),basePnt,“選擇實體”)從CAD中選定樣條曲線;利用ObjpathHandle(ObjpathCount)=Objpath(ObjpathCount).Handle獲得路徑的Handle值。然后將樣條曲線上的擬合點分別寫入“拆卸”和“裝配”文件。具體實現(xiàn)方法參照實體的選擇部分。

    2.4 實體拆裝動態(tài)仿真的實現(xiàn)

    在選擇圖形及其運動路徑后,遍歷模型空間,將每個實體的Handle值與已經(jīng)存入文件中實體的Handle值比較,識別該實體為第幾個運動實體,以便與其相對應(yīng)的路徑相匹配。這里用實體對象的Handle屬性值而不采用ObjectID屬性值,是因為在圖形文件中,Handle屬性值在對象的生存期內(nèi)始終不變。檢查選擇的零件數(shù)與路徑數(shù)是否相等,根據(jù)第一個零件圖形到ObjCount零件圖形的順序與數(shù)目與其運動路徑相同,從已經(jīng)存盤的文件中讀出第i條路徑的各點坐標,就可以使第i個零件圖沿該樣條曲線規(guī)定的路徑運動。

    第i個零件圖形移動的語句如下:

    Object(i).move(formpoint,toppoint)

    其中formpoint與topoint分別為移動向量的起點和終點。圖形實體移動是沿著給定向量的移動,移動方向與向量方相相同,移動的距離值與向量的模相同。

    2.5 程序運行結(jié)果

    以平行虎鉗的三維實體拆裝仿真為例。首先,連接并打開AutoCAD圖形文件,選擇要進行拆裝的每個零件和它們各自的移動路徑,如圖2所示。然后單擊拆卸和裝配模擬按鈕,圖象中的各個零件按Spline曲線軌跡運動,自動模擬裝配和拆卸自動的過程。圖3為拆卸完成,圖4為裝配正在進行過程中,圖5為裝配完成。

    圖2 程序運行界面及操作窗口

    圖3 拆卸完成

    圖4 裝配進行中

    圖5 裝配完成

    3 結(jié)論

    通過應(yīng)用ActiveX Automation技術(shù)進行AutoCAD二次開發(fā),利用ActiveX提供的接口控制和訪問AutoCAD對象,完成應(yīng)用程序和AutoCAD環(huán)境的通信,實現(xiàn)了零件的動態(tài)拆裝仿真。該方法不僅能夠?qū)θS實體的拆裝活動進行模擬,而且也可應(yīng)用在二維零件圖的裝配過程中。本例證明,借助AutoCAD強大的圖形處理功能和良好的二次開發(fā)接口,結(jié)合工程實際問題和專業(yè)特點,可以開發(fā)出具有獨特功能的實用軟件。而和其他開發(fā)工具相比,利用VB.NET開發(fā)AutoCAD使得整個開發(fā)過程簡單、迅速而高效。

    [1] 李原,張濤,余劍峰.基于操作模型的裝配仿真技術(shù)研究[J].機械科學(xué)與技術(shù),2000,19(3):503-507.

    [2] 姜杉,王玉新,喻宏波.三維實體機構(gòu)虛擬裝配及運動仿真的自動化方法[J].天津大學(xué)學(xué)報,2001,34(2):178-182.

    [3] 周慧芳.AutoCAD數(shù)據(jù)文件的跨平臺應(yīng)用模式[J].青海師范大學(xué)學(xué)報:自然科學(xué)版,2006,(4):50-53.

    [4] 沈剛.CAD軟件二次開發(fā)方法的分析與探討[J].電腦知識與技術(shù),2006,(2):201-203.

    [5] 陳春明,霍海波.ActiveX技術(shù)在AutoCAD二次開發(fā)中的應(yīng)用[J].三門峽職業(yè)技術(shù)學(xué)院學(xué)報:綜合版,2006,5(1): 98-99.

    [6] 李強,何援軍,駱軼殊.基于COM技術(shù)的CAD系統(tǒng)二次開發(fā)能力設(shè)計[J].計算機工程,2001,27(12):147-148.

    [7] 陳立新,趙紅梅.基于VB.NET的AutoCAD二次開發(fā)[J].計算機應(yīng)用,2006,(6):13-15.

    [8] 張晉西.Visual Basic.Net二次開發(fā)AutoCAD范例精解[M].北京:清華大學(xué)出版社,2004.

    (責(zé)任編輯:路文梅)

    Realizing Dynamic Simulation of Virtual Disassembling and Assembling of Parts with VB.NET

    ZHANG Peng-cheng,XI Yan-mei,LI Guo-shun
    (Department of Electrical Engineering,Hebei Engineering and Technical College,Cangzhou 061001,China)

    Using VB.NET as the secondary development tool for AutoCAD,we have realized the simulating design of disassembling and assembling of the three-dimensional parts in the environment of Auto-CAD.The method can complete the process simulation of part drawing’s disassembling and assembling automatically,and offer a good demonstration effect for the actual process of product design.

    secondary development;VB.NET;ActiveX Automation technology;dynamic simulation

    T P391.9

    A

    1008-3782(2010)01-0059-04

    2009-09-14

    張鵬程(1976-),男,滄州泊頭人,碩士,研究方向:計算機輔助設(shè)計、智能布局。

    猜你喜歡
    樣條二次開發(fā)應(yīng)用程序
    一元五次B樣條擬插值研究
    淺談基于Revit平臺的二次開發(fā)
    甘肅科技(2020年20期)2020-04-13 00:30:02
    刪除Win10中自帶的應(yīng)用程序
    電腦報(2019年12期)2019-09-10 05:08:20
    淺談Mastercam后處理器的二次開發(fā)
    模具制造(2019年3期)2019-06-06 02:11:02
    三次參數(shù)樣條在機床高速高精加工中的應(yīng)用
    西門子Easy Screen對倒棱機床界面二次開發(fā)
    三次樣條和二次刪除相輔助的WASD神經(jīng)網(wǎng)絡(luò)與日本人口預(yù)測
    軟件(2017年6期)2017-09-23 20:56:27
    基于樣條函數(shù)的高精度電子秤設(shè)計
    基于Pro/E二次開發(fā)的推土鏟參數(shù)化模塊開發(fā)
    關(guān)閉應(yīng)用程序更新提醒
    電腦迷(2012年15期)2012-04-29 17:09:47
    皋兰县| 乳山市| 松潘县| 陈巴尔虎旗| 和龙市| 乾安县| 岑巩县| 灵璧县| 麦盖提县| 格尔木市| 达日县| 八宿县| 鄄城县| 新沂市| 新兴县| 织金县| 军事| 秭归县| 精河县| 上犹县| 新巴尔虎右旗| 遂宁市| 顺昌县| 鸡泽县| 宽城| 景谷| 石台县| 湾仔区| 彭泽县| 河北区| 乌拉特中旗| 岳西县| 东山县| 济宁市| 楚雄市| 大名县| 卓尼县| 伽师县| 襄樊市| 莱州市| 旅游|