基于 So1idworks專用夾具通用件庫的開發(fā)及應用
《基于 So1idworks專用夾具通用件庫的開發(fā)及應用》由會員分享,可在線閱讀,更多相關《基于 So1idworks專用夾具通用件庫的開發(fā)及應用(43頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第 1 頁 共 36 頁畢 業(yè) 論 文基于 So1idworks專用夾具通用件庫的開發(fā)及應用學生姓名: 學號: 學 院: 專 業(yè): 指導教師: 年 6 月機械工程與自動化學院機械設計制造及其自動化第 2 頁 共 36 頁基于 So1idworks專用夾具通用件庫的開發(fā)及應用摘要夾具在機械加工中起著重要的作用,它直接影響著機械加工的質量、生產效率和成本。要加工結構和尺寸都比較特殊的工件就必須設計專用夾具。在產品相對穩(wěn)定、批量較大的生產中,采用專用夾具可獲得較高的生產率和加工精度。隨著現(xiàn)代多品種、中小批量生產的發(fā)展,傳統(tǒng)的夾具設計方式己成為企業(yè)中產品快速上市的瓶頸,企業(yè)迫切需要提高夾具設計的效率。為構建一個能支持產品快速制造的生產準備系統(tǒng),夾具設計要從全局自動化的高度進行變革。計算機輔助夾具設計正是為了適應這一要求而產生的,而且已經(jīng)成為國際上競相研究的熱點。本文結合國內外機床夾具設計的現(xiàn)狀,廣泛研究了國內外 CAFD 系統(tǒng),針對國內制造業(yè)中存在的問題,以實用性、高效性為指導思想,以建立機床夾具通用件庫為切入點,提出了設計專用夾具 CAD 系統(tǒng)((Computer Aided Special Fixture Design,CASFD)的新觀點,并付諸實現(xiàn)。通過調查、比較和分析各類 CAD 軟件在國內的應用現(xiàn)狀,從開發(fā)的難易程度、可移植性、易維護性等方面考慮,SolidWorks 是一種非常優(yōu)秀的三維機械設計軟件,但是它缺少國家標準零件庫,為機械設計工作帶來了不便。VB 是一種簡單易學,而且功能強大的高級編程語言,Access 是一種容易使用,而且功能強大的數(shù)據(jù)庫管理系統(tǒng)。SolidWorks 提供了基于 OLE 自動化技術的 API 函數(shù),可以使用 VB 為它進行二次開發(fā),專用夾具通用件的標準參數(shù)可以用 Access 來管理。所以選定以三維設計軟件 SolidWOrks 作為開發(fā)平臺,綜合運用 VisualBasic 編程技術和 Aeeess 數(shù)據(jù)庫管理技術,利用 SolidWOrksAPI 強大的二次開發(fā)功能,開發(fā)完成了基于特征造型、參數(shù)化驅動生成零部件的機床夾具三維通用件庫?;诖?,本文主要研究了以下幾個方面:第 3 頁 共 36 頁1.介紹了計算機輔助夾具設計系統(tǒng)的發(fā)展概況和研究現(xiàn)狀。2.分析快速設計、模塊化、并行設計等現(xiàn)代設計方法對 CAFD 系統(tǒng)的影響,研究了參數(shù)化技術、數(shù)據(jù)管理技術及數(shù)據(jù)庫技術在 CAFD 系統(tǒng)中的應用。3.利用 Solidwoks 三維繪圖軟件繪制了大量的夾具通用件三維模型,建立了CASFD 系統(tǒng)的數(shù)據(jù)庫和圖形庫。4.應用 VB 和 Solidworks API 函數(shù)對 Solidworks 進行二次開發(fā),生成了Solidworks 插件,創(chuàng)建了人機交互參數(shù)化界面,并實現(xiàn)了插件與 Solidworks 的無縫連接。關鍵詞:參數(shù)化驅動;特征造型;機床夾具通用件庫 ; Solidworks;CAFDBased So1idworksGeneral Parts Library for special fixtures and Application DevelopmentABSTRACTFixture is Playing a very important role in machining,which influence the quality of machining,Production efficiency and cost direetly.SPecial fixture must be designed when workpiece with complex strueture and size is proeessed.With the development of modern multi-variety and small batch production, traditional fixture design has become the bottleneck of rapid Production coming-into-the-market.So enterprises cry for promoting the effieieney of designing fixture.In order to build a production preparation system supporting rapid manufacturing of production,fixture design must be reformed based on global automation. CAFD is generated for adapting to the requirement and has beeome the focus of intemational study.第 4 頁 共 36 頁Through investigating,comparing,analyzing the variable CAD software and thinking about the degree of difficulty,transportability and maintainability. The SolidWorks is a real fair 3D machine design software, But it be in defect of the Lib of the national standard parts, that works to bring for machine design very inconvenient. VB is a easily study, and powerful computer high class language, Access is an easy usage, and powerful DBMS. The SolidWorks provided mass API functions base the OLE Automation technique, Can be use the VB to development two times for it, the special fixture parts common standard parameters can use the Access to manage.So the 3D CAD software SolidWorks is seleeted as the developing Platform and VisualBasie6.0 program technique and database management technique of Aceess is utilized.By the seeondary development function of Solidwbrks API, a feature- based and paramete- driven parts library for machine tool fixture are developed.Based on that,such main works are studied in this Paper.1.The development and research statement of CAFD are introduced.2.The effeetion on CAFD system exerted by modem design methods isanalyzed,such as RaPid Design, Coneurrent Design etc.The apPlieation in CAFD of Parametrie,DataManagement and Data Base is studied. 3.Many drawings of the standardized Parts and components hav been drawn and the Data Base and GraPhic Base are created for CASFD.4.Describing the seeondary development of Solidworks based on VB andSolidworks API funetion, Generating Solidworks menu Plug- in andHuman-comPuter interaction dialog box, and seamless conneetion between Solidwbrks and general standard Parts library is realized at last.KcyWords:Parameter Driving; Feature Modeling; Machine Fixture Genera1 Parts Solidworks API;CAFD.第 5 頁 共 36 頁目 錄1、引言…………………………………………………………………………… 11.1 設計目的和意義……………………………………………………………11.2 機床夾具的現(xiàn)狀和發(fā)展方向……………………………………………… 21.2.1 機床夾具的現(xiàn)狀……………………………………………………… 21.2.2 機床夾具的發(fā)展方向……………………………………………………… 31.3 論文各部分主要內容……………………………………………………… 32.solidworks 二次開發(fā)及其 API 函數(shù)的簡介…………………………………… 32.1 相關術語 ………………………………………………………………… 42.2SolidworksAPI 函數(shù)介紹 ……………………………………… 6 2.2.1 Solidworks 的對象模型 ……………………………………… 62.2.2 對象的屬性和方法 ……………………………………………………… 62.2.3 更多的 Solidworks 的 API 函數(shù)介紹……………………………………… 92.3 VB 開發(fā) Solidworks 的基本原理…………………………………………… 92.4 VB 開發(fā) Solidworks 的一般步驟……………………………………………112.5 開發(fā)方式選擇方法……………………………………………………………122.6 Solidworks 的 API 函數(shù)語法 ………………………………………………… 123. 簡單標準件的開發(fā)與實現(xiàn)………………………………………………… 143.1 十字墊圈的設計……………………………………………………… 133.1.1 建立墊圈對話框……………………………………………………… 133.1.2 程序的設計……………………………………………………… 133.1.3 建立數(shù)據(jù)庫………………………………………………………14第 6 頁 共 36 頁3.1.4 程序運行及結果……………………………………………………… 163.2 定向鍵的設計……………………………………………………… 163.2.1 定向鍵對話框的建立………………………………………………………173.2.2 程序的設計……………………………………………………… 183.2.3 建立數(shù)據(jù)庫……………………………………………………… 183.24 程序的運行及結果……………………………………………………… 203.3 固定式定位銷的設計……………………………………………………… 213.3.1 定位銷對話框的建立…………………………………………………… 213.3.2 程序的設計……………………………………………………… 223.3.3 建立定位銷數(shù)據(jù)庫……………………………………………………… 233.4 圓形對刀塊的設計………………………………………………………243.4.1 對刀塊對話框的建立…………………………………………………… 243.4.2 程序的設計……………………………………………………… 253.4.3 建立對刀塊數(shù)據(jù)庫……………………………………………………… 263.4.4 程序運行及結果……………………………………………………… 284.設計的具體實現(xiàn)……………………………………………………… 294.1 在 Solidworks 軟件下添加菜單及子菜單 ………………………………… 294.2 程序的運行及結果……………………………………………………… 325.結論………………………………………………………………………… 32致謝…………………………………………………………………………… 34參考文獻…………………………………………………………………………35第 7 頁 共 36 頁1. 引言1.1 課題研究的目的及意義機床夾具是機械制造過程中最常用的一種工藝裝備,其主要作用是保證加工精度,提高勞動生產率,擴大機床的使用范圍和保證生產安全,因此機床夾具在機械制造中占有很重要的地位。機床專用夾具是為完成某一工件的某工序而專門設計的工藝裝備。在傳統(tǒng)的專用夾具設計過程中,由于工藝裝備尤其是夾具零部件的標準化、系列化、規(guī)格化程度差,傳統(tǒng)的設計方法在資料檢索、繪圖、編制技術文件等方面均由人工完成,這不僅需要大量的人力、物力和較長的周期,且由于人為因素使設計精度和質量受到影響 。因此快速實現(xiàn)夾具設計己成為企業(yè)的迫切要求。將計算機輔助[1]設計技術(Computer Aided Fixture Design,CAFD)應用到夾具設計的過程也就成為解決這一問題的必然選擇。夾具可分為通用夾具、組合夾具、專用夾具等幾類。通用夾具己完全標準化,由專業(yè)廠家生產、市場有售。組合夾具和專用夾具要滿足生產要求,在設計時需要進行一系列的定位、夾緊、裝配設計,成為制造企業(yè)面廣量大且繁重的工作。組合夾具是由一套預先制造好的標準元件組成,可針對不同的加工對象進行裝配以獲得可滿足要求的夾具。使用完畢后,可拆散成元件和組件 ,且夾具元件的[2]第 8 頁 共 36 頁配合尺寸具有完全互換性,可以重復使用。組合夾具的設計主要是擬定組裝方案、進行裝配設計。CAFD 首先在組合夾具設計上得到較多的研究 ,采用先進的計算[3]機拼裝方法和手段提高拼裝效率和質量,進行組合夾具的設計和元件管理,這使得組合夾具 CAD 的研究及開發(fā)取得了較快的發(fā)展。對于加工結構和尺寸都比較特殊的工件,組合夾具很難滿足其要求,必須設計專用夾具。而且大批量生產時,專用夾具是最經(jīng)濟的選擇。專用夾具是為完成某一工件的某一工序而專門設計的工藝設備。與組合夾具相比,專用夾具具有以下特殊的優(yōu)點:(l)能確保工件的加工精度;(2)總體方案與生產綱領相適應;(3)操作方便,能減輕工人的勞動強度;(4)便于排屑,有良好的結構工藝性。傳統(tǒng)的專用夾具設計需要耗費大量的時間進行設計計算,需要經(jīng)驗豐富的夾具設計人員來完成,勞動量大,效率低 。[4]由于機床專用夾具結構依賴于產品的結構特征和企業(yè)的工藝水平,因而使其結構設計變得復雜和不確定,長期以來一直是企業(yè)制造過程中提高生產效率的瓶頸環(huán)節(jié) 。專用夾具作為一種特殊的產品,需要豐富的設計經(jīng)驗,設計人員的經(jīng)[5]驗與技能將直接影響著設計結果。而現(xiàn)有的一些通用 CAD 軟件只能完成一些諸如繪圖,三維建模等方面的工作,計算機對設計人員的輔助作用非常有限,設計的自動化程度也很低,據(jù)統(tǒng)計僅標準件建模就占設計工作量的 50%以上,僅標準件建模一項,就需花費工程技術人員大量的寶貴時間。然而,國內外在對機床夾具的研究方面,大多是集中在對組合 和柔順拼裝夾具 ,基于 AuToCAD 二維環(huán)境[6] [7]下開發(fā)的,而對占夾具總量 60%以上的機床專用夾具則研究較少 。目前迫切需[8]要開發(fā)專用夾具 CAD 系統(tǒng)(Computer Aided Special Fixture Design,CASFD)。1.2 機床夾具的現(xiàn)狀及發(fā)展方向1.2.1 機床夾具的現(xiàn)狀機床夾具是由定位元件(或組件)、對刀元件、導向元件(或組件)、夾緊元件(或組件)及夾具體等幾個基本單元組成。機床夾具的設計的特點主要體現(xiàn)在:夾具的各個組成部分可以分別進行設計。與一般的產品設計相比,夾具設計的重構性還是比較強的。國際生產研究協(xié)會的統(tǒng)計表明,目前中、小批多品種生產的工件品種已占工件種類總數(shù)的 85%左右?,F(xiàn)代生產要求企業(yè)所制造的產品品種經(jīng)常更新?lián)Q代,以第 9 頁 共 36 頁適應市場激烈的競爭。然而,一般企業(yè)仍習慣于大量采用傳統(tǒng)的專用夾具。另一方面,在多品種生產的企業(yè)中,約隔四年就要更新 80%的專用夾具,而夾具的實際磨損量僅為 15%左右 。特別是近幾年來,數(shù)控機床(NC)、加工中心(MC)、成[9]組技術(GT)、柔性制造系統(tǒng) (FMS)等新技術的應用,對機床夾具提出了如下新要求:(1)能迅速而方便地裝備新產品的投產,以縮短生產準備周期,降低生產成本。(2)能裝夾一組具有相似特征的工件。(3)適用于精密加工的高精密機床夾具。(4)適用于各種現(xiàn)代化制造技術的新型機床夾具。(5)采用液壓或氣壓夾緊的高效夾緊裝置,以進一步提高勞動生產率。(6)提高機床夾具的標準化程度。1.2.2 現(xiàn)代機床夾具的發(fā)展方向現(xiàn)代機床夾具的發(fā)展方向主要表現(xiàn)為精密化、高效化、柔性化、標準化四個方面:精密化 隨著產品精度的日益提高,勢必相應提高了對夾具的精度要求。高效化 高效化夾具主要用來減少工件加工的基本時間和輔助時間,以提高勞動生產率,減輕工人的勞動強度。常見的高效化夾具有:自動化夾具、高速化夾具、具有夾緊動力裝置的夾具等。柔性化 機床夾具的柔性化與機床的柔性化相似,它是指機床夾具通過調整、拼裝、組合等方式,以適應可變因素的能力。具有柔性化特征的新型夾具種類主要有:組合夾具、通用可調夾具、成組夾具、拼裝夾具、數(shù)控機床夾具等。標準化 機床夾具的標準化與通用化是相互聯(lián)系的兩個方面。在制定典型夾具結構的基礎上,首先進行夾具元件和部件的通用化,建立類型尺寸系列或變型,以減少功能用途相近的夾具元件和部件的形式,摒除一些功能低劣的結構。1.3 論文各部分主要內容SolidWorks 作為機械類的三維 CAD 軟件,對于具體的用戶可能有不同的應用??蛻糇约航⑾嚓P的軟件,使得 SolidWorks 能更好的成為開發(fā)管理方面的優(yōu)秀應用軟件。第 10 頁 共 36 頁論文的第二章介紹了本次設計的相關知識,并對 SolidWorks 的使用作了簡明的介紹。第三章闡述了簡單標準件的設計,對系統(tǒng)設計作了具體的分析。第四章介紹了本次設計的具體實現(xiàn),即菜單的加入和調試。第五章是對這次設計的總結。最后是謝詞,參考文獻。當然,設計中還存在很多的不足和漏洞,希望廣大的老師和同學能幫助我找出并加以改進,本人在此感激不盡。2 Solidworks 的二次開發(fā)及其 API 函數(shù)簡介2.1 相關術語為了方便用戶進行二次開發(fā),SolidWorks 提供了幾百個 API 函數(shù),這些API 是 SolidWorks 的 OLE 或 COM 接口,用戶可以使用 VB/VC 等高級語言對其進行二次開發(fā),建立適合用戶需要的、專用的 SolidWorks 功能模塊。要順利對SolidWorks 進行二次開發(fā),以下的基本術語是需要知道的。OLE 技術OLE 就是對象的嵌入與連接,它使得應用程序之間能夠通過數(shù)據(jù)的嵌入或連接的方式來共享數(shù)據(jù)。含有嵌入或連接文檔的應用程序被稱為容器程序,提供文檔數(shù)據(jù)編輯的應用程序被稱為服務器程序。OLE2.0 推出以后,OLE 已經(jīng)不再是對象的嵌入和連接的縮略詞。不妨認為 ActiveX 是 OLE3.0,事實上 ActiveX 是OLE 在網(wǎng)絡上的擴展,它使用了 OLE 技術并且超過了本地機器的范圍。自動化技術 Automation 是 OLE 技術的一個重要內容。直到今天,自動化技術擴充和發(fā)展為ActiveX Automation,它適用于 OLE 對象和 ActiveX 對象。自動化技術由客戶程序和服務器程序組成,客戶程序是操縱者與控制者,服務器程序是被控制者,它包含了一系列的暴露對象。服務器應用程序通過自身對象的屬性、方法、事件外顯其功能;對象的服務器程序簡單而抽象的代表。而客戶應用程序則通過操縱服務器應用程序所暴露的一系列對象來操縱服務器應用程序。只要服務器程序提供一定的接口,可以使任何對象實現(xiàn)自動化。對象包含的一些外部接口,它們被稱為方法與屬性。方法是自動化對象的一些函數(shù),它們是提供給客戶程序的外部公共成員函數(shù),屬性是一個對象的一些命名特性,即對象的一些共有數(shù)據(jù)域。操縱程序被稱為客戶(Client),而被操縱程序稱為服務器(Server),被操縱的對象是ActiveX 對象如果應用程序支持 OLE 技術,則在不同應用程序之間的切換由 OLE自動完成。SolidWoks 支持 OLE 標準,完全實現(xiàn)了 OLE 自動化,前已提及,第 11 頁 共 36 頁SolidWoks 具有開放的結構體系,它的這種開放性體現(xiàn)在它所提供的 API 對象上。API 是一個對 SolidWoks 的應用編程接口(Application Programming Interface),包含了幾百個對象及其屬性、方法和事件,這正是 SolidWoks 為用戶提供的功能強大的二次開發(fā)接口,凡支持 OLE 編程的開發(fā)工具,如 Visual C++、Visual Basic、Dephi 等均可從各自本身操作這些對象,從而直接行使 SolidWoks 的功能,如畫一條直線,拉伸一個凸臺,或修改一個表面的參數(shù)等。利用這種方法可以完成 SolidWoks 的二次開發(fā),創(chuàng)建出用戶定制的、專用的 SolidWoks 功能模塊。在本課題中,我們用 VB 來控制 SolidWoks 提供的各種對象,即把 VB 作為客戶程序,SolidWoks 作為服務器程序。ActiveX 技術ActiveX 是微軟新近提出的一種技術,它以 COM 為基礎,其中包括了 OLE技術以及應用于 internet 的多種技術。它使得不同的進程,甚至是網(wǎng)絡上的進程之間相互通信,并朝著多媒體方向發(fā)展。ActiveX 是一種面向對象的組件系統(tǒng),其中包括了組件軟件的各個方面,有復雜文檔、自定義控制、OLE 自動化、交互應用程序腳本、數(shù)據(jù)傳送及其他分布軟件的相互作用。這些組件對象為用戶提供了不同的功能,使得不同的軟件供應商提供的組件可以在二進制之間進行相互的連接和通信。對象通過接口實現(xiàn)組件之間以及組件與系統(tǒng)之間的相互作用。在桌面系統(tǒng)進行軟件交互時,除了系統(tǒng)提供的標準控制外,OLE 控件是一個重要的組成部分。ActiveX 是一種標準,利用這個標準可以使用通過不同的語言開發(fā)的軟件構件在單機或網(wǎng)絡環(huán)境中相互操作。同時,ActiveX 也是以組件對象模型為基礎的開放技術的集合,它代表了應用程序與 internet 的一種集成策略。OLE Automation 技術自動化技術(Automation)為軟件之間的交互創(chuàng)造了條件,它允許多個應用程序或組件之間進行通訊和交互,而與它們的語言、分布和原始平臺無關。在開發(fā)標準件庫時,運用 OLE(Object Linking and Embedding)Automation 技術,無疑會減小開發(fā)的難度,使系統(tǒng)更加穩(wěn)定可靠。SolidWorks 系統(tǒng)提供數(shù)據(jù)操縱接口函數(shù) API,專門讀寫三維零件數(shù)據(jù),并提供了一系列的 Automation 接口(包括對象、屬性和方法),使用戶進行二次開發(fā)更加容易。運用 Automation 技術使得在自己的應用程序中驅動三維 CAD 系統(tǒng)中的零件變的有可能而且容易。第 12 頁 共 36 頁尺寸驅動原理本論文對標準件建模采用尺寸驅動原理,即標準件的生成也是對相應標準件模板進行尺寸驅動的過程。尺寸驅動即在零件拓撲結構不變的情況下,把零件的尺寸參數(shù)定義為尺寸變量,并定義出變量間的關系,當給定不同的尺寸值,就可得到一組結構相同而尺寸不同的零件,每一類標準件對應一個模板文件,在模板文件中定義尺寸變量和變量間的關系。由于三維 CAD 都采用了參數(shù)化的設計方法,在開發(fā)標準件庫時沒有必要再做尺寸約束求解,所以零件的最后生成可以依靠系統(tǒng)參數(shù)化功能來實現(xiàn),即通過用新的尺寸值對準備好的標準件模板進行尺寸驅動來生成一個新的標準件。在工程實踐中用到的具有系列尺寸的標準件,其尺寸參數(shù)可分為獨立參數(shù)和非獨立參數(shù),獨立參數(shù)中包含了主驅動參數(shù)(稱之為基本參數(shù))和自定義特性參數(shù)。一般只要給定獨立參數(shù),即可唯一確定零件的全部幾何參數(shù)(非獨立參數(shù)可由主驅動參數(shù)從標準件特性參數(shù)庫中取得)。2.2 SolidWorks 的 API 函數(shù)介紹2.2.1 SolidWorks 的對象模型相關術語對象類定義了具有相同結構和操作的一組對象,其最基本的特征是封裝和繼承。作為一種抽象數(shù)據(jù),對象把實體的相關特征和操作封裝在一起,允許人們以自然的方式去模擬外部實體的結構和行為;繼承是對象類實現(xiàn)可復用性和可擴充性的重要特征。一個對象類可以定義為另一個更一般的特殊情形, 這個對象類是特殊對象類的父類( SuperClass) ,或者說, 特殊對象是這個一般對象的子類(SubClass) ,子類繼承父類的所有屬性和操作,除此以外子類還可以定義自己特有的屬性和操作。繼承是對象類的一種特例化關系,亦即集合包含關系,子類對象實例集合是父類對象實例集合的子集。對象模型SolidWorks 的對象模型是一個多層次的對象網(wǎng)絡,如圖2.1所示。最高級別的對象類是SolidWorks ,該對象中封裝了很多方法 (Methods) , 如OpenDoc2 、ActivateDoc2 、CloseDoc、ExitApp,下面又創(chuàng)建了許多子類, 如ModelDoc、Environment 、Frame。本文將重點介紹 ModelDoc 對象,因為大部分繪第 13 頁 共 36 頁圖操作都在ModelDoc 對象中, 如SelectByID (選擇) 、CreateCircle2 ( 畫圓) 、CreateLine2 ( 畫直線)。ModelDoc 中又創(chuàng)建了PartDoc、AssemblyDoc、DrawingDoc 等子類。其中大部分實體建模操作都在PartDoc 對象中,如FeatureExtrusion (拉伸) 、FeatureRevolve (旋轉);而相關的裝配操作如AddComponent (插入零部件) 、AddMate (插入配合) 等都在AssemblyDoc 對象中。2.2.2 對象的屬性和方法在SolidWorks 創(chuàng)建的對象中,每個對象都有自己的屬性和方法,通過調用API 函數(shù)實現(xiàn),反過來,應用SolidWorks 的每一步操作都體現(xiàn)在特定的對象類中。下面以VB 為開發(fā)平臺介紹其一些常用的API 函數(shù)。連接SolidWorks在對SolidWorks 進行二次開發(fā)時,首先要建立SolidWorks 的連接,創(chuàng)建SolidWorks 的應用對象:Dim swApp As ObjectSet swApp = CreateObject (″SldWorks.Application″)通過這個函數(shù),就打開了SolidWorks 的接口,可以調用它的API 函數(shù)了。選擇“選擇”可以說是在使用SolidWorks 時用得最多的一個命令,有很多命令在使用時都要選擇操作對象,通過調用ModelDoc 對象中的SelectByID 函數(shù)來實現(xiàn):ModelDoc.SelectByID(objectName ,object Type ,x , y , z)這個函數(shù)在應用時需要輸入五個參數(shù):objectName 表示要選擇對象的名稱,該名稱是SolidWorks在創(chuàng)建對象時按先后順序自動命名的,如基準面1 、基準面2 、Arc1 、Line3 、D1 @ 草圖1 @Part1.SLDPRT;object Type 要輸入對象的類型,如PLANE (面) 、SKETCHSEGMENT (草圖上的對象如直線、圓弧等) 、DIMENSION (尺寸標注);x , y , z 是平面上任一點的坐標值。插入草圖在所選平面上插入草圖,調用ModelDoc 中的InsertSketch 函數(shù): ModelDoc.InsertSketch ()基本草圖繪制命令第 14 頁 共 36 頁畫直線調用ModelDoc 對象中的CreateLine2 函數(shù):ModelDoc.CreateLine2 (xStart ,yStart ,zStart ,xEnd , yEnd , zEnd )[.Const ructionGeomet ry =True ]xStart 、yStart 、zStart 、xEnd、yEnd、zEnd 分別是直線的起點和終點坐標; Const ructionGeomet ry =True 時表示畫中心輔助線。畫圓調用ModelDoc 對象中的CreateCircle2函數(shù):ModelDoc.CreateCircle2 (xc ,yc ,zc ,xp ,yp ,zp)xc、yc、zc、xp 、yp 、zp 分別是圓心和圓上一點的坐標值。標注尺寸先通過SelectByID 函數(shù)選擇要標注的對象 ,再調用ModelDoc 中的AddDimension 函數(shù):ModelDoc.AddDimension ( x , y , z)x、y、z 為尺寸文本所要放的位置的坐標值?;緦嶓w建模命令拉伸調用PartDoc 中的FeatureExtrusion 函數(shù):PartDoc.FeatureExtrusion(sd,flip,dir,t1,t2,d1 ,d2 ,dchk1 ,dchk2 ,ddir1,ddir2 ,dang1 ,dang2 ,off setReverse1 ,off setReverse2)sd 為TRUE 時表示單向拉伸,為FALSE 時雙向拉伸,以0 、1 表示;dir 為TRUE 時表示正向拉伸,為真時有效;dir 為TRUE 時表示反向拉伸,為真時有效; t1 、t2 表示終止類型,可取下列值: 0 (給定深度) 、1 (貫穿) 、2 (為貫穿下一個) 、3 (成形到一頂點) 、4 (成形到一面) 、5 (到離指定面指定的距離) 、6 (兩側對稱) ; d1 , d2 表示拉伸的深度; ddir1 、ddir2 為TRUE 時表示帶拔模角拉伸;dang1 、dang2 為TRUE 時表示向內拔模,為FALSE 是向外拔模;off setRe2verse1 , off setReverse2 控制到離指定面指定的距離,在t1 、t2 為5 時有效。其中d2 、dchk2 、 ddir2 、dang2 、off setReverse2 在雙向拉伸時有效。旋轉調用PartDoc 中 FeatureRevolv函數(shù):PartDoc.FeatureRevolve (angle ,reverseDir ,angle2 ,revType)angle 表示旋轉的角度;reverseDir 控制旋轉的方向,為TRUE 時表示反向, revTyp 為1 時無效; an2gle2 表示旋轉的反向角度,僅當revTyp 為2 時有效 ;revTyp 表示旋轉類型,為0 時單方向旋轉 ,為1 時雙向等角度旋轉,為2 時雙向旋轉。倒角調用ModelDo中的FeatureChamfer2Type 函數(shù):ModelDoc.FeatureChamferType(chamfer Type,width ,angle ,flip ,otherDist ,vertexChamDist1 ,vertexChamDist2 ,vertexChamDist3)chamfer Type 控制倒角的類型,可取下列值: 1(角度- 距離控制) 、2 (距離- 距離控制) 、3 (頂點-第 15 頁 共 36 頁倒角控制) 、 4 (兩邊等距離控制 ) ;width 表示倒角邊距 ;angle 表示倒角角度,僅當chamfer Type1 為1 時有效;otherDist 表示chamfer Type 為2 時的另一邊距; vertexChamDist1、vertexChamDist2 、vertex2ChamDist3 表示chamfer Type 為3 時的三個距離添加菜單為了操作方便,把生成標準件的功能掛到Solidworks 裝配環(huán)境的菜單和工具欄上,在菜單上的提示為各標準件的名稱,在工具條上的提示則為圖標,用戶要插入某個標準件時,只需在菜單或工具條上進行選擇,然后由開發(fā)的程序調用相應的標準件功能模塊。Solidworks 的SldWorks 對象,為 VB 對Solidworks 工作環(huán)境進行訪問處理提供了接口。關于菜單插件的具體具體實現(xiàn)方法將在后面談到。2.2.3 更多的SolidWorks的API函數(shù)介紹在這里只是簡要的介紹SolidWorks的API函數(shù),不可能作到全面的認識或是圖2.1熟悉這些API要了解更多的API知識可以查看SolidWorks的API和插件幫助主題,如圖2.1。第 16 頁 共 36 頁2.3 VB開發(fā)SolidWorks的基本原理SolidWorks支持ActiveX Automation技術,VB 環(huán)境下建立的客戶程序可以直接訪問SolidWorks中的對象。ActiveX Automation是Microsoft公司提出的一個基于COM( Componet Object Model)的技術標準,是以前的OLE( Object Linking and Embeding)技術的更高層次的發(fā)展,ActiveX Automation被開發(fā)出來的原因就是需要協(xié)調不同的應用程序。Windows 本身準許同時運行多個應用程序,ActiveX Automation準許這些應用程序互相通訊。每個應用程序可以決定哪些信息和功能可以公布或者暴露給系統(tǒng)上的其它應用程序。雖然ActiveX Automation總是在兩個應用程序之間安排對話,但是這個對話不是雙向的,也是不平等的。ActiveX Automation程序的每一塊都包括兩個程序,起不同的作用,客戶機是開始對話的應用程序,服務器是響應客戶機的應用程序。代碼在客戶機上運行,而這個代碼所控制的動作由服務器執(zhí)行。在這里我們將SolidWorks理解為一個服務程序,把二次開發(fā)工具的VB 程序作為客戶程序,它們之間是服務器與客戶的關系。用戶只要在VB 上進行操作,VB 就驅動SolidWorks完成相應的工作。SolidWorks為二次開發(fā)提供了大量的API 對象,這些對象涵蓋了全部的SolidWorks的數(shù)據(jù)模型,通過對這些對象屬性的設置和方法的調用,就可以在用戶自己開發(fā)的DLL 中實現(xiàn)與SolidWorks相同的功能。 SolidWorks中常用的主要ActiveX Automation 對象有SolidWorks 的Body Parameter、Sldworks、Part、Face 和Feature 對象等。Sldworks對象為VB 對SolidWorks工作環(huán)境進行訪問處理提供了接口。通過此對象可以對SolidWorks工作環(huán)境添加菜單、刪除菜單、添加工具條、打開文件、新建文件、退出SolidWorks系統(tǒng)。用VB 調用SolidWorks中的API 函數(shù),還可以完成零件的建造和修改;零件各特征的建立、修改、刪除和壓縮等各項控制;零件特征信息的提取,如特征尺寸的設置與提取,特征所在面的信息提取及各種幾何和拓撲信息;零件的裝配信息;零件工程圖紙中的各項信息等。 第 17 頁 共 36 頁對SolidWorks進行二次開發(fā)。開發(fā)方法主要有兩種方法:一是用人機交互形式建立模型,設置合理的設計變量,再通過V B 程序驅動設計變量實現(xiàn)模型的更新,這種方法編程較簡單,通用性好;二是完全用程序實現(xiàn)三維模型的參數(shù)化設圖 2.2計以及模型的編輯,這種方法編程較前者復雜,但可以實現(xiàn)對具有復雜形體的零件造型,如生成精確的漸開線齒輪齒廓。開發(fā)過程首先針對要建立的實體分析結構,在SolidWorks中創(chuàng)建實體并標注參數(shù)尺寸,主要是各特征的驅動尺寸,標注尺寸的大小是建立實體時的實際尺寸,SolidWorks會自動讀取,一般不要修改它,但SolidWorks自動標注的尺寸名字( 如:D 1,D 2)在程序中難以識別,所以尺寸的名字可在標注時修改,使尺寸的名字盡量表達出特征。通過菜單,如圖2.2,為V B 添加SolidWorks引用。本設計為標準件庫的一般開發(fā)方法,對致力于SolidWorks二次開發(fā)的人員,具有一定的參考價值。2.4 用Visual Basic 6.0開發(fā)Solidworks的一般步驟(1) 安裝 Solidworks 和 Visual Basic 6.0。(2) 啟動 Visual Basic 6.0,新建一個工程,編寫代碼。在任何情況下,第 18 頁 共 36 頁你寫的代碼應該類似于由 Solidworks 的宏工具所產生的代碼。在 Solidworks 中,應用記錄宏(【工具】→【宏操作】→【錄制】 )來獲得程序頭部和應用程序的代碼是十分有益的。為了查看 Visual Basic 會話中的每個對象,可單擊【視圖】→【對象瀏覽器】菜單命令,右鍵單擊對象瀏覽器的“類”或“成員”窗口。在出現(xiàn)的彈出菜單中,單擊【顯示隱含成員】命令。此時可以瀏覽每個 Solidworks API 對象及相關的屬性和 Visual Basic 安全數(shù)組傳遞的方法。 [1](3) 在 Visual Basic 里,選擇文件,生成.EXE 文件即可。用 Visual Basic 寫的應用程序能夠在許多地方運行。若在 Solidworks 中運行,則選擇【工具】→【宏操作】→【運行】菜單命令,選擇源文件即可;若作為.EXE 文件運行,直接運行即可。如果 Solidworks 已經(jīng)運行,你的程序將附加于它;否則,Solidworks 打開一個新的會話;也可以創(chuàng)建一個宏文件來運行Visual Basic。2.5 開發(fā)方式選擇分析即程序載入方式的選取。關于Solidworks API,在不同情況下使用有不同的使用方法。下圖表示的是各種情況下的數(shù)據(jù)傳遞情況,Solid works 數(shù)據(jù)指的是零件,裝配體,工程圖等等此軟件中涉及的各種元素??紤]到建立參數(shù)化模型需要用戶自行選擇零件種類,并由用戶手動輸入各種參數(shù),且要給用戶提供一個友好的界面,因此可以 DLL 動態(tài)鏈接庫形式動態(tài)在菜單上添加按鈕,按鈕的驅動函數(shù)實現(xiàn)的功能就是提供給用戶所需的界面。2.6 SolidWorks API函數(shù)語法1 .常用的 API 函數(shù)語法如下:return_value Object :: Function ( Parameters )所有的 API 函數(shù)均支持執(zhí)行程序界面。如果你正在使用可執(zhí)行程序,SolidWorks API 函數(shù)返回 HRESULT 和一些其他變量的參數(shù)值。 [13]2. 含多個變量函數(shù)的語法例:下面的函數(shù)用 ModelDoc2::SelectByID 返回一個布爾值。在該函數(shù)中使用了五個變量。第 19 頁 共 36 頁boolean ModelDoc2::SelectByID(BSTR objectName, BSTR objectType, double x, double y, double z)VB 語法: Dim result As Booleanresult = ModelObj.SelectByID(“Point1“,“SKETCHPOINT“, .2, .3, 0)3. 無變量函數(shù)的語法下面用嵌入草圖函數(shù)作為例子,該函數(shù)無返回值,同時也沒有輸入變量,它將在當前文件(ModelDoc2)中插入一個草圖。void ModelDoc2::InsertSketch( )VB 語法:ModelObj.InsertSketch4. 含返回值函數(shù)語法下面的語法用 ModelDoc2::GetType 函數(shù)為例,該函數(shù)不含輸入變量,返回一個長整型值,該值為當前文件的類型。Long ModelDoc2::GetType( )VB 語法:Dim docType As LongdocType = ModelObj.GetType同樣,下面的例子得到所選表面的邊數(shù),將該值作為長整型返回。long Face2::GetEdgeCount( )VB 語法:Dim edgeCount As LongedgeCount = FaceObj.GetEdgeCount5. 同一函數(shù)的不同接口一些函數(shù)可能有不同的實現(xiàn)方法。如果需要還可能含有多個接口。IDispatch *Body2::GetFirstFace( ) (OLE Automation)HRESULT Body2::IGetFirstFace( LPFACE* retval ) (COM Object)VB 語法: Dim FaceObj As ObjectSet FaceObj = BodyObj.GetFirstFace 注意:所調用的接口(對象自動連接標簽)返回一個調用指針,而執(zhí)行程序接口返回一個 LPFACE2 指針??蓤?zhí)行程序界面用對象指針代替調用指針,用指針代替不同的。因此,變量類型不同,一些 API 函數(shù)用不同的接口處理對象和數(shù)據(jù),一個用于執(zhí)行,一個用于連接調用。在上面的例子中,調用和執(zhí)行接口分別是第 20 頁 共 36 頁GetFirstFace 和 IgetFirstFace。 [17]3 簡單標準件的開發(fā)與實現(xiàn)3.1 十字墊圈的設計3.1.1 建立墊圈對話框建立對話框如下:圖 3.13.1.2 程序的設計首先我們要繪制一個十字墊圈.SLDPRT 作為模型,設置文件的保存路徑。要根據(jù)數(shù)據(jù)來繪制不同尺寸的零件圖,首先我們要通過 solidworks 的 API 接口來獲取模型的尺寸值,然后建立變量來驅動模型尺寸,使其得到我們所需要的零件圖。其關鍵代碼如下:Dim modelTitle As StringDim longstatus As LongSet sldApp = GetObject(““, “SldWorks.Application“)Set model = sldApp.ActiveDocIf model Is Nothing ThenSet model = sldApp.OpenDoc4(“C:\Documents and Settings\Administrator\桌面\第 21 頁 共 36 頁王艷軍畢設\數(shù)據(jù)庫\solidworks\十字墊圈-零件 16“, 1, 0, ““, longstatus)ElsemodelTitle = model.GetTitlesldApp.CloseDoc modelTitleSet model = sldApp.OpenDoc4(“C:\Documents and Settings\Administrator\桌面\王艷軍畢設\數(shù)據(jù)庫\solidworks\十字墊圈-零件 16“, 1, 0, ““, longstatus)End If'If model Is Nothing Then Exit Submodel.Parameter(“D1@草圖 1“).SystemValue = Text1.Text / 1000 'Dmodel.Parameter(“D1@草圖 5“).SystemValue = Text2.Text / 1000 'dmodel.Parameter(“D2@圓角 1“).SystemValue = Text6.Text / 1000 '圓角大小 r1model.EditRebuildEnd Sub3.1.3 建立數(shù)據(jù)庫數(shù)據(jù)庫技術是計算機應用技術中的一個主要部分,對于大量的數(shù)據(jù),使用數(shù)據(jù)庫來存儲數(shù)據(jù)比通過文件來存儲有更高的效率,Visual Basic 的數(shù)據(jù)控件(data)及相關的網(wǎng)格控件等提供了訪問數(shù)據(jù)庫的方法。 [3](1)應用 Microsoft Access 建立十字墊圈的數(shù)據(jù)庫,如下圖: [6](2)VB 與數(shù)據(jù)庫之間的連接第 22 頁 共 36 頁圖 3.23.1.4 程序運行及結果當我們運行上述程序時,程序會自動打開 solidworks 軟件打開我們所建立的模型,然后根據(jù)我們選擇的尺寸來生成我們需要的新零件圖,而且新的零件圖是可以編輯和保存的。第 23 頁 共 36 頁圖 3.33.2 定向鍵的設計3.2.1 定向鍵對話框的建立建立對話框如下:第 24 頁 共 36 頁圖 3.43.2.2 程序的設計定向鍵的尺寸的參數(shù)化變化主要通過以下關鍵代碼來實現(xiàn):Private Sub Command3_Click()Dim swAppTitle As StringDim longstatus As LongSet sldApp = GetObject(““, “SldWorks.Application“)Set swApp = sldApp.ActiveDocIf swApp Is Nothing ThenSet swApp = sldApp.OpenDoc4(“C:\Documents and Settings\Administrator\桌面\王艷軍畢設\數(shù)據(jù)庫\solidworks\定向鍵-零件4.SLDPRT“, 1, 0, ““, longstatus)第 25 頁 共 36 頁ElseswAppTitle = swAppl.GetTitlesldApp.CloseDoc swAppTitleSet swApp = sldApp.OpenDoc4(“C:\Documents and Settings\Administrator\桌面\王艷軍畢設\數(shù)據(jù)庫\solidworks\定向鍵-零件4.SLDPRT“, 1, 0, ““, longstatus)End If'IfswApp Is Nothing Then Exit SubAssem.Parameter(“直線 2@草圖 1“).SystemValue = Val(Text1.Text) / 1000 '基本尺寸 BAssem.Parameter(“直線 5@草圖 1“).SystemValue = Val(Text2.Text) / 1000 'h1Assem.Parameter(“直線 1@草圖 1“).SystemValue = Val(Text3.Text) / 1000 'HAssem.Parameter(“直線 3@草圖 1“).SystemValue = Val(Text4.Text) / 1000 'B1 Assem.EditRebuildAssem.EditRebuildEnd Sub3.2.3 建立定向鍵數(shù)據(jù)庫(1)應用 Microsoft Access 建立定向鍵的數(shù)據(jù)庫,如下圖所示:第 26 頁 共 36 頁圖 3.5(2)進行數(shù)據(jù)庫的連接第 27 頁 共 36 頁圖 3.63.2.4 程序運行及結果當我們運行上述程序時,程序會自動打開 solidworks 軟件打開我們所建立的模型,然后根據(jù)我們選擇的尺寸來生成我們需要的新零件圖,而且新的零件圖是可以編輯和保存的。第 28 頁 共 36 頁圖 3.73.3 固定式定位銷的設計3.3.1 定位銷對話框的設計第 29 頁 共 36 頁圖 3.83.3.2 程序的設計Dim swAppTitle As StringDim longstatus As LongSet sldApp = GetObject(““, “Sld- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 基于 So1idworks 專用 夾具 通用 開發(fā) 應用
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
鏈接地址:http://www.3dchina-expo.com/p-442656.html