国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于VB的Solid Works自動裝配技術研究

2013-10-22 12:49:28易炳剛
機械工程與自動化 2013年1期
關鍵詞:二次開發(fā)實例文檔

易炳剛,汪 雪

(1.深圳市特種設備安全檢驗研究院,廣東 深圳 518029;2.上海大學 管理學院,上海 200444)

1 Solid Works二次開發(fā)技術

1.1 Solid Works二次開發(fā)機理

Solid Works提供了二次開發(fā)接口API函數(Application Program Interface應用程序接口),能使用戶在該軟件的基礎上開發(fā)出新的功能模塊,滿足特定的需求[1]。為了能應用高級語言通過調用API成員與Solid Works應用程序的對象成員進行交互,首先應聲明和實例化Solid Works API最高層對象以及聲明和實例化一個文檔對象,一旦應用程序對象和文檔對象被實例化,這些API的對象成員就可以被訪問了。Solid Works API結構圖如圖1所示。

圖1 Solid Works API結構圖

在進行Solid Works二次開發(fā)過程中可以通過錄制宏獲得相應的命令函數代碼,宏代碼與Visual Basic代碼十分相似,只需要將其稍作變動就可以應用在Visual Basic代碼中。因此應用Visual Basic對Solid Works進行二次開發(fā)有著得天獨厚的優(yōu)勢。

1.2 Solid Works二次開發(fā)方法

Solid Works參數化設計主要有3種方法:①利用Solid Works添加“配置”生成一組新參數下的模型;②在內嵌的Excel工作表中指定參數,通過編輯系列零件表,即可生成系列零件;③通過Solid Works提供的API接口函數,利用高級語言(如Visual Basic、Visual C++、Del phi等)編寫相應程序實現參數化設計。

利用Solid Works添加“配置”需要建立大量的模型,然后通過壓縮放置在裝配體中。此種方法在進行零部件自動裝配時會出現整個裝配體失效現象,復雜的裝配體一般不采用此種方法。與添加“配置”相比內嵌Excel表存在明顯優(yōu)勢,它只需將不同零部件的結構尺寸添加到裝配體生成的Excel表中,但是對于結構比較復雜的零部件需要大量參數,此方法比較適合標準零部件模型的參數化設計。而利用高級語言對Solid Works進行底層二次開發(fā),可以實現API應用程序接口驅動Solid Works本身自動建模、裝配。且利用高級語言編輯的人機界面很容易與設計者進行交互,并且通用性、靈活性較好,適合專業(yè)CAD系統(tǒng)的參數化設計[2]。

2 自動裝配的關鍵技術

自動裝配過程主要包括以下幾個步驟:新建裝配體、插入零部件;添加配合關系;檢查干涉;完成裝配并保存。自動裝配流程圖如圖2所示。

2.1 新建裝配體、插入零件

開始自動裝配之前需激活Solid Works文檔、新建裝配體文檔,利用sw App.ActiveDoc來激活Solid Works文檔,s w App.New Assembly()新建裝配體文檔。向裝配體插入零部件之前,必須將該零部件裝入內存,否則無法將零部件插入裝配體。首先利用Open Doc6函數先將要插入的零部件打開即裝入內存,再利用Add Component函數將零部件添加到裝配體中,然后再利用函數Close Doc將其關閉并回收到內存空間。

圖2 自動裝配流程圖

2.2 選擇配合元素[3]

在實現裝配的過程中,需要選擇相互配合的元素,主要有以下3種方法:①在設計零件階段添加配合基準面、基準軸等,以便在裝配的過程中直接使用,此方法操作簡單,但適用范圍較窄;②利用零部件在裝配體中的位置確定要配合元素的坐標,利用坐標選取,此方法需精確計算配合元素在裝配體中的空間坐標,對于形狀簡單的零部件比較容易實現,不適用于形狀復雜的零部件;③通過編寫程序遍歷零部件(組件)的所有元素(線、軸、面等)并選擇已命名面的程序,此方法適用所有裝配過程,通用性靈活性較好。本文主要研究第三種方法。

為了能實現遍歷Solid Works中的幾何體,必須理解Solid Works使用的邊界表示模型(BREP)以及API如何表示這些對象。Solid Works API使用了兩種途徑來表示BREP模型[4]:①拓撲對象暴露的方法用于操作模型中所有幾何體的邊界;②幾何對象暴露的方法用于操作拓撲包圍的幾何形體的實際數據。Selection Manager管理是Solid Works用戶界面中一個被選中對象的對象接口。Solid Works中的每個文件都有自己的Selection Manager屬性,這些屬性可以通過API函數來訪問。Set Sel Mgr= Mod Doc.Selection Manager()。通過程序判斷選擇的面是不是需要裝配的面,如果是需要裝配的面通過b Ret=Face.Select2(Tr ue,0)函數選擇該面,并返回該面被選中的信息。

實現自動裝配不僅僅要能夠選擇裝配元素,并且要實現同時選擇兩個裝配元素,只有這樣自動裝配才能順利實現,否則無法進行裝配。解決該問題需要利用選擇函數的 b Ret= Face.Select2(Tr ue,0)和s w Model.And Select ByID語句,前者是返回選擇的面,后者是再選擇一個要裝配的元素這樣才能保證兩個面同時被選中。值得注意的是利用s w Model.And Select ByID函數選擇組件時,要將組件的名稱賦給該函數,在Solid Works裝配體中所添加的零件系統(tǒng)會自動給所加入的零部件添加一個序號(如:圓柱一-1),所以完整的組件名稱為“零件名稱-‘序號’”+“@”+“裝配體名稱”。

2.3 添加配合[5]

配合關系是指需要進行裝配的零部件被賦予了一定的約束關系(共線、平行、同軸、相切等),這些約束關系只對于特定的幾何實體組合有效。在API中使用Add Mate3()函數實現零部件之間的配合,并定義了20多種裝配關系以及6種相應的對齊類型。

3 應用實例

以帶式輸送機驅動滾筒為例,具體說明基于VB的Solid Works自動裝配的過程。在帶式輸送機驅動滾筒的裝配過程中要實現輪轂與兩個脹套之間圓柱面的同軸心、面與面的重合以及面與面的鎖定配合,脹套與軸的面與面的同軸心、面與面的重合以及面與面的鎖定配合,即可完成裝配。

本實例使用了遍歷命名面程序函數與選擇裝配面函數:Function On Face Traverse()//遍歷并命名面函數、Function Select Component FaceBy Na me()//選擇已命名面函數。

函數OnFaceTraverse通過Component的Get Body方法獲得實體Body,利用Body的Get First Face獲得Face,使用Get Next Face方法獲得其他Face,并通過Selected FaceProperties函數給遍歷過的面進行命名,以便裝配選擇使用。Select Component FaceBy Name函數的原理與On Face Traverse函數類似。

滾筒殼、脹套以及軸自動裝配的具體過程如下:

自動生成的裝配體如圖3所示。

4 結論

以VB為開發(fā)語言,應用Solid Works API接口技術對Solid Works進行二次開發(fā),應用遍歷面技術可實現零部件的精確自動裝配,從而可實現機械產品的參數化設計,提高設計質量和效率。

圖3 自動生成裝配體

[1]葉煒威.余才佳.Solid Works2006實體建模與二次開發(fā)教程[M].北京:國防工業(yè)出版社,2006.

[2]張亮有.文茂堂.橋式起重機運行機構三維參數化設計研究[J].陜西科技,2009(2):122-123.

[3]江洪.魏崢.王濤威,等.Solid Works二次開發(fā)實例解析[M].北京:機械工業(yè)出版社,2004.

[4]Solid Works公司,葉修梓,陳超祥.Solid Works高級教程:二次開發(fā)與API[M].杭州新迪數字工程系統(tǒng)有限公司,譯.北京:機械工業(yè)出版社,2007.

[5]殷國富.尹湘云.胡曉兵.Solid Works二次開發(fā)實例精解·沖模標準件3D圖庫[M].北京:機械工業(yè)出版社,2006.

猜你喜歡
二次開發(fā)實例文檔
有人一聲不吭向你扔了個文檔
淺談基于Revit平臺的二次開發(fā)
甘肅科技(2020年20期)2020-04-13 00:30:02
淺談Mastercam后處理器的二次開發(fā)
模具制造(2019年3期)2019-06-06 02:11:02
西門子Easy Screen對倒棱機床界面二次開發(fā)
基于RI碼計算的Word復制文檔鑒別
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
完形填空Ⅱ
完形填空Ⅰ
基于Pro/E二次開發(fā)的推土鏟參數化模塊開發(fā)
不讓他人隨意下載Google文檔
電腦迷(2012年4期)2012-04-29 06:12:13
闽侯县| 斗六市| 临邑县| 象州县| 洮南市| 铜梁县| 伽师县| 大竹县| 巢湖市| 信宜市| 论坛| 孟州市| 吴忠市| 曲沃县| 屯留县| 抚州市| 通城县| 仪征市| 沈阳市| 南城县| 左云县| 正定县| 库车县| 荆州市| 长寿区| 贵港市| 安阳市| 开鲁县| 盐山县| 远安县| 墨玉县| 常山县| 崇文区| 夏津县| 宣威市| 德令哈市| 海阳市| 内黄县| 宁德市| 涞源县| 锡林郭勒盟|