AutoCAD自動(dòng)生成孔系坐標(biāo)表
- 文件介紹:
- 該文件為 doc 格式,下載需要 10 積分
- 自動(dòng)生成孔系坐標(biāo)表
一個(gè)很好的用在AUTOCAD上的二次開(kāi)發(fā)軟件,自動(dòng)在圖紙上形成孔系坐標(biāo)表自動(dòng)生成“孔系坐標(biāo)表”
江蘇春蘭機(jī)械制造有限公司 趙大慶
一、問(wèn)題的提出
在模具設(shè)計(jì)中時(shí)常與孔系打交道,如螺釘孔、水道孔、型銷(xiāo)孔、凹模圓孔等。在二維繪圖中,對(duì)于孔系的標(biāo)注,大家的習(xí)慣不一,有的采用傳統(tǒng)的標(biāo)注方式,孔少時(shí)還比較有效,孔多時(shí)就會(huì)有標(biāo)注線條縱橫或極其臨近的情況,給工人識(shí)圖帶來(lái)麻煩,并且極易出錯(cuò)。通過(guò)改進(jìn),有人采用了坐標(biāo)標(biāo)注,將基準(zhǔn)設(shè)為UCS原點(diǎn)后,直接在孔的圓心處的X、Y方向各引出一條短線分別注上圓心的X坐標(biāo)值,Y坐標(biāo)值,這種方法對(duì)工人的識(shí)圖有了一定幫助,但不夠清爽,特別是孔間距較密,孔大小相差不大易混淆時(shí),又可能造成工人辨別錯(cuò)誤。
隨著模具制造業(yè)的不斷發(fā)展,孔加工靠傳統(tǒng)手工劃線,然后鉆、鉸、鏜成型的低速低精度加工方法逐漸被自動(dòng)化加工設(shè)備所代替。在當(dāng)前模具業(yè)比較領(lǐng)先的日本等國(guó)家,一般采用數(shù)控機(jī)床進(jìn)行加工。這要求孔系的坐標(biāo)最好能以表格形式給出,這樣操作工將孔系坐標(biāo)的數(shù)據(jù)輸進(jìn)機(jī)床控制系統(tǒng),即可自動(dòng)進(jìn)行加工成形。由于減少了工人識(shí)圖的時(shí)間,并充分利用機(jī)器的自動(dòng)化,孔系的加工效率可以比以前提高10倍以上,并最終大幅度減少了模具加工成本。這在我廠生產(chǎn)的南京春蘭汽車(chē)的沖模中得到了充分體現(xiàn)。
手工填寫(xiě)坐標(biāo)表是一項(xiàng)繁重乏味的工作,大大增加了設(shè)計(jì)人員的工作量,并且設(shè)計(jì)人員對(duì)每個(gè)孔的坐標(biāo)都要保證其正確性,增加了設(shè)計(jì)難度,因而造成加工車(chē)間要求采用孔系坐標(biāo)表,而設(shè)計(jì)人員感到苦不堪言。如何將設(shè)計(jì)人員從繁重手工勞動(dòng)下解放出來(lái)?這就成了我們的研究課題。我們利用AutoCAD R14版中的Automation接口,借助VB,編制了下述自動(dòng)生成“孔系坐標(biāo)表”的程序。
二、程序主體
下面講述程序的思路,希望能給大家拋磚引玉,對(duì)于Automation的知識(shí),請(qǐng)查閱有關(guān)書(shū)籍或AutoCAD R14的幫助。
1.初始化應(yīng)用環(huán)境
初始化的過(guò)程是保證AutoCAD R14已打開(kāi),并對(duì)才AutoCAD R14創(chuàng)建引用的過(guò)程。
1)首先要判斷當(dāng)前AutoCAD R14是否已打開(kāi)。
如未打開(kāi),則啟動(dòng)AutoCAD R14
2)創(chuàng)建引用。
如已打開(kāi),則將對(duì)AutoCAD程序的引用交給變量Acadapp(注:AutoCAD不允許對(duì)其進(jìn)行直接操作,只能通過(guò)引用或替代來(lái)進(jìn)行操作)。
Public acadApp as Object
‘聲明對(duì)象變量acadApp
Set acadApp=GetObject(,”autocad.application”)
’將對(duì)AutoCAD的引用權(quán)交給acadApp
If Err Then
Err.Clear
Set acadApp=CreateObject(autocad.application)
‘如果當(dāng)前AutoCAD R14未打開(kāi),將引發(fā)錯(cuò)誤。
‘錯(cuò)誤的處理辦法是打開(kāi)一個(gè)新的AutoCAD R14
‘并將其引用權(quán)交給acadApp變量。
If Err Then
MsgBox Err.Description
Exit Sub
End If
End If
‘如果上述處理無(wú)法解決問(wèn)題,可能是機(jī)器中未
‘裝AutoCAD R14,這時(shí)給出錯(cuò)誤代碼,并退出程序。
2. 與用戶交互,獲取必要的創(chuàng)建信息
1)圖形坐標(biāo)原點(diǎn)的位置(即基準(zhǔn)角的位置)
2)孔系坐標(biāo)表的創(chuàng)建模式:自動(dòng)或手動(dòng)?
自動(dòng)模式:僅需選中孔系中的任一孔,則程序?qū)⒆詣?dòng)將
同孔系的孔搜尋出來(lái)。
手動(dòng)模式:適于有選擇地創(chuàng)建孔系坐標(biāo)。手動(dòng)選取一組圓,
程序?qū)⑦x中的圓與第一個(gè)選中的圓作比較,并
自動(dòng)剔除不同的圓。
一般自動(dòng)模式就可滿足實(shí)際的需要。
3)孔系是通孔、螺孔還是銷(xiāo)孔、沉孔?
程序根據(jù)此信息創(chuàng)建孔系坐標(biāo)表的標(biāo)題。
4)該孔系圓心的前綴
為了區(qū)別于其他的孔系,孔系圓心處都要注出一個(gè)簡(jiǎn)短的標(biāo)識(shí)。該標(biāo)識(shí)由前綴和該圓心在該孔系中的序號(hào)組成,如 X-1,C-12等,其前綴分別為X,C。
5)指出孔系坐標(biāo)表要放置的位置(即表的左上角的位置)
Prompt1$=vbCrLf+”請(qǐng)指定坐標(biāo)原點(diǎn):”
Prompt2$=vbCrLf+”孔系坐標(biāo)表的創(chuàng)建模式:Auto/Manual:”
Prompt3$=vbCrLf+”孔系類(lèi)型:1. 通孔 2.螺孔 3. 銷(xiāo)孔4.沉孔<1>:”
Prompt4$=vbCrLf+”請(qǐng)指定孔系圓心的前綴:”
Prompt5$=vbCrLf+”請(qǐng)指定孔系坐標(biāo)表左上角的放置位置:”
‘將提示賦給變量
Public acadDoc as Object
Public UtilObj as Object
Set acadDoc=acadApp.ActiveDocument
‘將對(duì)當(dāng)前圖形的引用權(quán)交給變量acadDoc
Set UtilObj=acadDoc.Utility
‘將當(dāng)前圖形的Utility屬性賦給變量UtilObj,用
‘于交互輸入
‘1. 獲取坐標(biāo)原點(diǎn)
Dim orgPnt
OrgPnt=UtilObj.GetPoint(,Prompt1)
‘2. 獲取創(chuàng)建模式...