VB二次開(kāi)發(fā)Solidworks精講.docx_第1頁(yè)
VB二次開(kāi)發(fā)Solidworks精講.docx_第2頁(yè)
VB二次開(kāi)發(fā)Solidworks精講.docx_第3頁(yè)
VB二次開(kāi)發(fā)Solidworks精講.docx_第4頁(yè)
VB二次開(kāi)發(fā)Solidworks精講.docx_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

運(yùn)用VB語(yǔ)言實(shí)現(xiàn)二次開(kāi)發(fā)1 VB簡(jiǎn)述 Visual Basic(簡(jiǎn)稱(chēng)為VB)是一種可視化的、面向?qū)ο蠛筒捎檬录?qū)動(dòng)方式的結(jié)構(gòu)化高級(jí)程序設(shè)計(jì)語(yǔ)言,可用于開(kāi)發(fā) Windows 環(huán)境下的各類(lèi)應(yīng)用程序。它簡(jiǎn)單易學(xué)、效率高,且功能強(qiáng)大可以與 Windows 專(zhuān)業(yè)開(kāi)發(fā)工具SDK相媲美。在Visual Basic環(huán)境下,利用事件驅(qū)動(dòng)的編程機(jī)制、新穎易用的可視化設(shè)計(jì)工具,使用Windows內(nèi)部的廣泛應(yīng)用程序接口(API)函數(shù),動(dòng)態(tài)鏈接庫(kù)(DLL)、對(duì)象的鏈接與嵌入(OLE)、開(kāi)放式數(shù)據(jù)連接(ODBC)等技術(shù),可以高效、快速地開(kāi)發(fā)Windows環(huán)境下功能強(qiáng)大、圖形界面豐富的應(yīng)用軟件系統(tǒng)。隨著版本的提高,Visual Basic的功能也越來(lái)越強(qiáng)。5.0版以后,Visual Basic 推出了中文版,與前個(gè)版本相比,其功能有了很大提升。 Visual Basic 6.0作為Visual Studio 6.0的優(yōu)秀一員,已成為企業(yè)級(jí)快速開(kāi)發(fā)的利器。Visual Basic 6.0在數(shù)據(jù)訪問(wèn)方面有了很大的改進(jìn),新的ADO組件讓對(duì)大量數(shù)據(jù)快速訪問(wèn)成為可能。數(shù)據(jù)環(huán)境和新的報(bào)表功能也讓數(shù)據(jù)開(kāi)發(fā)有了全新的體驗(yàn)。Visual Basic 借助COM/COM+強(qiáng)大的功能,可以開(kāi)發(fā)具有多層結(jié)構(gòu)的分布式應(yīng)用程序。同時(shí),Visual Basic還可以在IIS上開(kāi)發(fā)性能超群的Web應(yīng)用程序。Visual Basic 6.0在語(yǔ)言方面和IDE方面的改進(jìn)都不大,但是許多新增的組件成為Visual Basic開(kāi)發(fā)人員手中的利器,如File System Object等。新的字符串函數(shù)Split和Replace等也給Visual Basic的程序員帶來(lái)很大方便。 Visual Basic 6.0具有下述優(yōu)點(diǎn): (1) 面向?qū)ο?(2) 事件驅(qū)動(dòng) (3) 軟件的集成式開(kāi)發(fā) (4) 結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言 (5) 強(qiáng)大的數(shù)據(jù)庫(kù)訪問(wèn)功能 (6) 支持對(duì)象的鏈接與嵌入技術(shù) (7) 網(wǎng)絡(luò)功能 (8) 多個(gè)應(yīng)用程序向?qū)?(9) 支持動(dòng)態(tài)交換、動(dòng)態(tài)鏈接技術(shù) (l0) 聯(lián)機(jī)幫助功能 VB擁有圖形用戶(hù)界面(GUI)和快速應(yīng)用程序開(kāi)發(fā)(RAD)系統(tǒng),可以輕易的使用DAO、RDO、ADO連接數(shù)據(jù)庫(kù),或者輕松的創(chuàng)建ActiveX控件。它不像高級(jí)語(yǔ)言Visual C+那麼復(fù)雜,但它的功能很全,程序員可以輕松的使用VB提供的組件進(jìn)行二次開(kāi)發(fā),快速建立屬于自己的應(yīng)用程序。 2 利用VB實(shí)現(xiàn)圓臺(tái)交互式繪制的實(shí)現(xiàn)過(guò)程 2.1 啟動(dòng)VB程序 啟動(dòng)VB程序,VB6.0的主窗口如圖1所示,可以直觀地看到主窗體主要有以下部分組成:標(biāo)題欄;菜單欄;工具欄;窗體設(shè)計(jì)器;控件(工具)箱;彈出式(上下文)菜單 ;工程管理器窗口 ;屬性窗口;對(duì)象瀏覽器 ;對(duì)象瀏覽器及窗體布局窗口。 建立一個(gè)新的標(biāo)準(zhǔn)EXE工程文件,對(duì)其進(jìn)行重命名保存,重命名為圓臺(tái)繪制,將Form窗體文件重命名保存為交互式圓臺(tái)繪制,如圖2所示。特別需要注意的一點(diǎn)是:在標(biāo)題欄顯示的當(dāng)前的工程名及窗體名是通過(guò)修改屬性窗口中名稱(chēng)屬性及caption屬性得以實(shí)現(xiàn)的,與實(shí)際的工程名及窗體名并無(wú)直接聯(lián)系,實(shí)際的工程名及窗體名是通過(guò)諸如(圓臺(tái)繪制.vbp)形式體現(xiàn)出來(lái)的。 圖1 VB6.0主窗口 圖2 重命名操作后的工程資源管理器 2.2引用Solidworks類(lèi)型庫(kù)文件 要操作SW對(duì)象,那么添加SW引用是必不可少的。在VB里添加引用,單擊菜單欄中【工程】【引用】命令,選擇SolidWorksexposed Type Libraries For add-in Use(SolidWorks插件庫(kù)文件)、SolidWorks2007 Type Libray(SolidWorks庫(kù)文件)和SolidWorksConsant Type library(SolidWorks常數(shù)庫(kù)),如圖3所示。本文其實(shí)只用到了SolidWorks2007 Type Libray(SolidWorks庫(kù)文件),但為了方便以后的程序擴(kuò)展,將上述三種常用庫(kù)文件一并添加。 圖3 引用SolidWorks類(lèi)型庫(kù) 2.3 編輯窗體界面 (1)拖動(dòng)工具箱組件板上的Lable控件、TextBox控件及CommandButton控件到Form上。 (2)接下來(lái)在屬性窗口將Lable1、Lable2的屬性分別設(shè)置為圓臺(tái)半徑:、圓臺(tái)高度:;將CommandButton1、CommandButton2的屬性分別設(shè)置為啟動(dòng)SolidWorks交互式繪圖、退出SolidWorks軟件。編輯后的窗體界面如圖4所示。 圖4 編輯后窗體界面 2.4編程實(shí)現(xiàn) 在VB編程環(huán)境下,引用單元文件,創(chuàng)建相關(guān)函數(shù)及編寫(xiě)事件處理過(guò)程,實(shí)現(xiàn)程序功能。繪制圓臺(tái)的詳細(xì)程序代碼及其注釋如下所示: Private Sub Command1_Click() Dim swapp As Object Dim part As Object Dim boolstatus As Boolean 定義接口 Set swapp = CreateObject(SldWorks.Application) Set part = swapp.NewPart() swapp.Visible = True 獲取solidworks軟件接口并新建一個(gè)零件文件 part.InsertSketch2 True boolstatus = part.Extension.SelectByID(前視, PLANE, 0, 0, 0, False, 0, Nothing) part.InsertSketch2 True part.CreateCircle 0, 0, 0, 0, Val(R.Text) / 10005, 0 part.ShowNamedView2 *上下二等角軸測(cè), 8 part.FeatureManager.FeatureExtrusion True, False, False, 0, 0, Val(H.Text) / 1000, 0.01, False, False, False, False, 0, 0, False, False, False, False, 1, 1, 1建立模型 End Sub點(diǎn)擊啟動(dòng)SolidWorks交互式繪圖后,程序調(diào)用SolidWorks自動(dòng)繪制的圓臺(tái)三維圖如圖5所示??山换ナ叫薷膮?shù),直至達(dá)到滿(mǎn)意的效果。操作完成后點(diǎn)擊退出SolidWorks環(huán)境可以自動(dòng)關(guān)閉并退出SolidWorks環(huán)境。 圖5 交互式繪圖后結(jié)果 3 小結(jié) 本文同樣以一個(gè)簡(jiǎn)單實(shí)例的實(shí)現(xiàn)過(guò)程為例,采用VB語(yǔ)言編制了相關(guān)程序,詳細(xì)介紹了二次開(kāi)發(fā)的具體實(shí)現(xiàn)過(guò)程,給出了重要文件的引用、屬性設(shè)置、接口程序的編制和事件處理等過(guò)程的完整代碼。通過(guò)上述實(shí)例的實(shí)現(xiàn)過(guò)程,可以看出: VB語(yǔ)言簡(jiǎn)單易學(xué),學(xué)習(xí)過(guò)程中很容易上手;功能齊全,程序員可以輕松的使用VB提供的組件進(jìn)行二次開(kāi)發(fā),快速建立屬于自己的應(yīng)用程序,在其各項(xiàng)高效強(qiáng)大集成功能的支持下,最終可方便快速地完成二次開(kāi)發(fā)任務(wù)。 參照連載1中的通過(guò)宏錄制實(shí)現(xiàn)的二次開(kāi)發(fā)過(guò)程,可以清楚地看到,利用VB二次開(kāi)發(fā)實(shí)現(xiàn)圓臺(tái)繪制的具體命令源代碼不需要自己編寫(xiě),可以直接對(duì)宏錄制的相關(guān)源碼拷貝過(guò)來(lái)加以利用即可,只需要修改其中的相關(guān)變量參數(shù)諸如Val(R.Text)即可,易于實(shí)現(xiàn),減輕了程序員的工作量,提高了程序的開(kāi)發(fā)速度。利用宏錄制實(shí)現(xiàn)二次開(kāi)發(fā) 1 VBA及其與宏錄制的關(guān)系 1.1 VBA簡(jiǎn)介 Visual Basic for Applications(簡(jiǎn)稱(chēng)VBA)是新一代標(biāo)準(zhǔn)宏語(yǔ)言,是基于Visual Basic for Windows 發(fā)展而來(lái)的。它與傳統(tǒng)的宏語(yǔ)言不同,傳統(tǒng)的宏語(yǔ)言不具有高級(jí)語(yǔ)言的特征,沒(méi)有面向?qū)ο蟮某绦蛟O(shè)計(jì)概念和方法。而VBA 提供了面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,提供了相當(dāng)完整的程序設(shè)計(jì)語(yǔ)言。VBA 易于學(xué)習(xí)掌握,可以使用宏記錄器記錄用戶(hù)的各種操作并將其轉(zhuǎn)換為VBA 程序代碼。這樣用戶(hù)可以容易地將日常工作轉(zhuǎn)換為VBA 程序代碼,使工作自動(dòng)化。因此,學(xué)用VBA 有助于使工作自動(dòng)化,提高工作效率。另外,由于VBA 可以直接應(yīng)用宿主軟件的各項(xiàng)強(qiáng)大功能,所以對(duì)于程序設(shè)計(jì)人員的程序設(shè)計(jì)和開(kāi)發(fā)更加方便快捷。 VBA是一種自動(dòng)化語(yǔ)言,它可以使常用的程序自動(dòng)化,可以創(chuàng)建自定義的解決方案??梢哉J(rèn)為VBA是非常流行的應(yīng)用程序開(kāi)發(fā)語(yǔ)言Visual Basic 的子集,實(shí)際上VBA是寄生于VB應(yīng)用程序的版本。VBA 作為一種新一代的標(biāo)準(zhǔn)宏語(yǔ)言,具有跨越多種應(yīng)用軟件并且具有控制應(yīng)用軟件對(duì)象的能力,使得程序設(shè)計(jì)人員僅需學(xué)習(xí)一種統(tǒng)一的標(biāo)準(zhǔn)宏語(yǔ)言,就可以轉(zhuǎn)換到特定的應(yīng)用軟件上去,程序設(shè)計(jì)人員在編程和調(diào)試代碼時(shí)所看到的是相同的用戶(hù)界面,而且VBA 與原應(yīng)用軟件的宏語(yǔ)言相兼容,以保障用戶(hù)在代碼和工作上的投資。有了VBA 以后,多種應(yīng)用程序共用一種宏語(yǔ)言,節(jié)省了程序人員的學(xué)習(xí)時(shí)間,提高了不同應(yīng)用軟件間的相互開(kāi)發(fā)和調(diào)用能力。VBA 不但繼承了VB 的開(kāi)發(fā)機(jī)制,而且VBA 還具有與VB 相似的語(yǔ)言結(jié)構(gòu),它們的集成開(kāi)發(fā)環(huán)境IDE(Intergrated Development Environment)也幾乎相同。但是,經(jīng)過(guò)優(yōu)化,VBA 專(zhuān)門(mén)用于Office 的各應(yīng)用程序。缺點(diǎn)在于VB 可運(yùn)行直接來(lái)自操作系統(tǒng)桌面上的應(yīng)用程序,而VBA 的項(xiàng)目(Project)僅由使用VBA 的宿主應(yīng)用程序來(lái)調(diào)用。1.2 宏與宏錄制 計(jì)算機(jī)科學(xué)里的宏是一種抽象,它根據(jù)一系列預(yù)定義的規(guī)則替換一定的文本模式。解釋器或編譯器在遇到宏時(shí)會(huì)自動(dòng)進(jìn)行這一模式替換。對(duì)于編譯語(yǔ)言,宏展開(kāi)在編譯時(shí)發(fā)生,進(jìn)行宏展開(kāi)的工具常被稱(chēng)為宏展開(kāi)器。宏這一術(shù)語(yǔ)也常常被用于許多類(lèi)似的環(huán)境中,它們是源自宏展開(kāi)的概念,這包括鍵盤(pán)宏和宏語(yǔ)言。絕大多數(shù)情況下,使用宏這個(gè)詞的使用暗示著將小命令或動(dòng)作轉(zhuǎn)化為一系列指令。 宏的用途在于自動(dòng)化頻繁使用的序列或者是獲得一種更強(qiáng)大的抽象能力。 VBA一般是與宏錄制過(guò)程密切相關(guān)的。通過(guò)在SolidWorks中進(jìn)行宏錄制,不僅可以記錄下建模時(shí)所用到的命令代碼,也可以記錄其它相關(guān)過(guò)程的底層操作源代碼,同時(shí)也可以直觀快捷地編譯、修改與完善所錄制的宏命令,從而可較大地提高系統(tǒng)的自動(dòng)化水平與工作人員的工作效率。同時(shí),SolidWorks提供了強(qiáng)大與完善的API幫助文件,可以很好地為編程工作服務(wù),隨時(shí)進(jìn)行答疑解惑。 2 利用宏錄制實(shí)現(xiàn)圓臺(tái)交互式繪制程序的詳細(xì)開(kāi)發(fā)過(guò)程 本文以一個(gè)簡(jiǎn)單的圓臺(tái)實(shí)例為例,詳細(xì)講解這一開(kāi)發(fā)過(guò)程。 (1)首先是進(jìn)入SolidWorks環(huán)境,新建一個(gè)零件如圖1所示。 圖1 SolidWorks主界面示意圖 (2)點(diǎn)擊宏文件工具條中宏錄制按鈕進(jìn)行錄制,接下來(lái)進(jìn)行零件的繪制。繪制完畢后單擊停止按鈕進(jìn)行宏文件的保存。 (3)打開(kāi)錄制宏的源代碼,如下所示: Dim swApp As Object Dim Part As Object Dim SelMgr As Object Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long Dim Feature As Object Sub main() Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc Set SelMgr = Part.SelectionManager boolstatus = Part.Extension.SelectByID2(前視基準(zhǔn)面, PLANE, 0, 0, 0, False, 0, Nothing, 0) Part.ClearSelection2 True Part.CreateCircle 0, 0, 0, -0.0275447640118, 0.008279351032448, 0 Part.ShowNamedView2 *上下二等角軸測(cè), 8 Part.ClearSelection2 True boolstatus = Part.Extension.SelectByID2(Arc1, SKETCHSEGMENT, 0, 0, 0, False, 0, Nothing, 0) Part.FeatureManager.FeatureExtrusion2 True, False, False, 0, 0, 0.06, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 1, 1, 1, 0, 0, False Part.SelectionManager.EnableContourSelection = 0 End Sub (4)宏錄制的程序代碼比較混亂,存在過(guò)多的冗余代碼,占用內(nèi)存空間并影響瀏覽與調(diào)試過(guò)程的正常進(jìn)行,需要進(jìn)行修改與整理。 修改與整理的一般原則是:刪除掉程序中未使用到得變量聲明;清除選擇代碼可以去除;選擇輪廓代碼可以去除;選擇圓等操作代碼可以去除;程序中出項(xiàng)的隨機(jī)參數(shù)應(yīng)進(jìn)行修改等等。此處特別注意的一點(diǎn)就是,在某些操作環(huán)境下,可能錄制的宏不能直接運(yùn)行,此時(shí)的一種解決辦法就是將上述語(yǔ)句中的Set swApp = Application.SldWorks;Set Part = swApp.ActiveDoc;Set SelMgr = Part.SelectionManager三句代碼替換為以下較為通用的語(yǔ)句:Set swApp = Application.SldWorks;Set Part = swApp.NewPart;Set Part = swApp.ActiveDoc。 考慮到要實(shí)現(xiàn)圓臺(tái)參數(shù)化交互式調(diào)用的功能,右鍵點(diǎn)擊工程資源管理器中宏1目錄下SolidWorks 對(duì)象子對(duì)象,在彈出菜單中依次選中插入-用戶(hù)菜單,接下來(lái)在新建立的窗體上依次添加兩個(gè)lable控件、兩個(gè)Textbox控件及兩個(gè)CommandButton控件,設(shè)置好控件屬性,界面如圖2所示。 圖2 用戶(hù)菜單主界面 修改后的代碼如下所示1: Dim swApp As Object Dim Part As Object Dim boolstatus As Boolean Private Sub cmdCreate_Click() Set swApp = Application.SldWorks Set Part = swApp.NewPart Set Part = swApp

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論