高麗華







摘要:整個系統基于AutoCAD VBA技術進行二次開發,針對不同類型的齒輪,根據用戶輸入的參數,產生相應的齒輪外形,再根據需要自動生成需要的視圖。另外,在課題中為了提高繪圖的效率,對圖紙的常規設置包括圖框線及標題欄的插入也實現了自動化。齒輪系統的開發,實現了AutoCAD功能的拓展,能很好地滿足機械行業產品的設計需求。
Abstract: The overall system technology carries on the re-development based on AutoCAD VBA, in view of the different type's gear, according to the Parameters entered by the users, the shape of the gear will to be produced, According to the needs of the users to produce the view automatically which will again need . Moreover, in topic to enhance the cartography the efficiency, it has realized the automation to the blueprint conventional establishment including the chart frame and the title block insertion. The developmence of commonly used gear system has realized the AutoCAD function development, and this can satisfy the design demand of the mechanical profession product well.
關鍵詞:齒輪;AutoCAD;VBA
Key words: gear;AutoCAD;VBA
中圖分類號:TP319? ? ? ? ? ? ? ? ?文獻標識碼:A? ? ? ? ? ? ? ? 文章編號:1674-957X(2021)17-0198-02
0? 引言
利用AutoCAD VBA語言實現齒輪繪圖過程的自動化是提高效率和減少重復性勞動的最佳方法。也就是說,只要用戶在對話框中輸入齒輪的必要參數,AutoCAD就會自動地繪出齒輪的零件圖,使整個設計過程簡化。這樣就會節省更多的人力物力,使產品開發人員更好地專注于其他方面的產品問題。系統開發完成了常用齒輪中的直齒圓柱齒輪、直齒圓柱斜齒輪、直齒圓錐齒輪,蝸輪、蝸桿等的繪制。同時通過編程實現了圖框線、標題欄及齒輪參數表的自動插入。
1? 系統開發實現總論
1.1 系統實現的設計思想? 根據用戶輸入的參數不同,系統就會產生不同外形的的齒輪零件。針對齒輪設計,在AutoCAD VBA基礎平臺上進行功能擴展,將機械設計進行簡化,無須查找資料,也可以在AutoCAD中設計出所需的零件,并直接生成數據報告和零件圖。首先確定齒輪繪制所需要的一些基本參數,通過它們的組合使用就可以將齒輪的外形繪制出來。再用其他的內部命令,如圖層,線性的定制命令,進行相應的修改后,就可以繪制出所需要的圖形來。機械零件的參數表用來說明機械零件圖中零件的名稱、參數和材料等信息。
1.2 AutoCAD二次開發工具的選擇? ①目前AutoLisp的使用程序運行速度慢,已經逐漸被其它幾種開發工具所取代。②VBA開發工具:盡管ARX開發技術功能強大,而且VB開發工具又簡單易用,但是也存在一些不足。VB開發的軟件必須脫離開AutoCAD,在VB的集成環境下進行調試,使用起來二者不是一個有機整體,因而不太方便。為改善這些缺點,在AutoCAD上出現了內置的VBA。
2? 系統實現的技術路線
2.1 參數化繪圖的特點? 實現對AutoCAD的二次開發,其中一個重要的內容是實現參數化繪圖。參數化繪圖也是CAD系統的一個重要的方面和特色。
2.2 參數化繪圖的實現繪圖的基本思路? 確定齒輪的基本點的坐標,然后賦值給數組,如圖1所示。一個齒輪可以分為幾部分繪制出來,綜合應用直線(AddLine),圓?。ˋddArc),圓(AddCircle)的繪制命令就可以將圖形繪制出來了。而對話框的作用就是通過用戶輸入的模數、齒數、壓力角等,計算出齒輪繪制需要的直徑,通過繪圖命令繪制出相應線段或圓弧(圓),進而繪制出該齒輪的圖形。在繪制圖形中可綜合應用多段線、鏡像、復制、移動等命令。
3? 編程思路、主要代碼及注意事項
3.1 圖框線的繪制
在圖紙圖框繪制的過程中,先確定其插入點,然后應用AddLine命令繪制出相應長度的線段。在編寫程序時應注意各直線段端點坐標的計算,防止出現坐標點的計算錯誤。程序的運行結果,如圖1所示。
3.2 標題欄的繪制及程序代碼的說明
標題欄的繪制,首先可以繪制出標題欄的總體格式框架,可以使用AddLine和Pline命令,二者相結合。注意各端點數組的賦值,防止出現線段繪制的錯誤。然后應用AddText命令,插入文本。注意文本插入點各數組的賦值。以下為部分程序代碼:
' 給標題欄線段各端點坐標賦值
Dim line As AcadLine
a1(0)=sj1(0)-140:a1(1)=sj1(1)+21:a1(2)=0
a2(0)=sj1(0)-140+10:a2(1)=sj1(1)+21:a2(2)=0
a3(0)=sj1(0)-140+35:a3(1)=sj1(1)+21:a3(2)=0
……
a22(0)=sj1(0)-140+110:a22(1)=sj1(1):a22(2)=0
a23(0)=sj1(0):a23(1)=sj1(1):a23(2)=0
' 給文本插入點坐標賦值
aa8(0)=sj1(0)-140+2:aa8(1)=sj1(1)+14+2:aa8(2)=0
aa9(0)=sj1(0)-140+10+2:aa9(1)=sj1(1)+14+2:aa9(2)=0
aa10(0)=sj1(0)-140+35+2:aa10(1)=sj1(1)+14+2:aa10(2)
=0
aa12(0)=sj1(0)-140+110+2:aa12(1)=sj1(1)+14+2:aa12(2)=0
……
aa18(0)=sj1(0)-140+60+13:aa18(1)=sj1(1)+7+5:aa18(2)=0
aa20(0)=sj1(0)-140+12:aa20(1)=sj1(1)+2:aa20(2)=0
aa21(0)=sj1(0)-140+60+13:aa21(1)=sj1(1)+2:aa21(2)=0
aa22(0)=sj1(0)-140+110+8.5:aa22(1)=sj1(1)+6:aa22(2)
=0
' 繪制標題欄各線段
Set line = ThisDrawing.ModelSpace.AddLine(a1, a20)
line.Lineweight = acLnWt040
Set line = ThisDrawing.ModelSpace.AddLine(a1, a7)
line.Lineweight = acLnWt040
Set line = ThisDrawing.ModelSpace.AddLine(a7, a23)
……
Set line = ThisDrawing.ModelSpace.AddLine(a12, a14)
Set line = ThisDrawing.ModelSpace.AddLine(a15, a19)
' 寫入標題欄的文本
Dim text As AcadText
Set text = ThisDrawing.ModelSpace.AddText("制圖", aa8, 4)
Set text = ThisDrawing.ModelSpace.AddText("審核", aa15, 4)
……
Set text = ThisDrawing.ModelSpace.AddText(cl, aa21, 4)
Set text = ThisDrawing.ModelSpace.AddText(th, aa22, 4)
End Sub
程序的運行結果,如圖2所示。
3.3 參數表的繪制及程序代碼的說明
參數表的繪制程序不再詳細說明,其思路與標題欄的繪制相似,程序的運行結果,如表1所示。
其他的齒輪參數表,不再說明,其繪制原理與之相同。
3.4 常用齒輪圖形的繪制
齒輪圖形的繪制是研究的重點。
圓柱齒輪的參數輸入界面如圖3所示,其中,“計算參數”命令按鈕控件是通過用戶輸入齒數、模數等參數計算相應的齒輪的其他參數。“確定參數”命令按鈕控件是通過中間變量將計算得到的齒輪一些參數賦值給程序中的公用參數,這樣可以簡化程序中變量的定義,“取消”命令按鈕控件是卸載窗體用的。程序的運行結果,如圖4所示。圓錐齒輪和蝸輪、蝸桿等的繪制方式與之相同,不再說明。
4? 結束語
針對齒輪結構的相似性,實現了參數化設計。
參考文獻:
[1]李長勛.AutoCAD VBA程序開發技術[M].北京:國防工業出版社,2004.
[2]張帆.AutoCAD VBA二次開發教程[M].北京:清華大學出版社,2006.
[3]牛又奇,孫建國.新編Visual Basic程序設計教程[M].江蘇:蘇州大學出版社,2013.