摘 要 介紹了AutoCAD R14.0的ActiveX Automation技術(shù)及其有關(guān)自動(dòng)編程程序的設(shè)計(jì)技術(shù),在AutoCAD R14.0集成環(huán)境下實(shí)現(xiàn)菜單及按鈕圖標(biāo)開(kāi)發(fā)的方法,并給出了實(shí)例編程。
關(guān)鍵詞 WEDM 自動(dòng)編程 AutoCAD ActiveX Automation技術(shù) 開(kāi)發(fā)
Abstract This paper introduces the ActiveX Automation techniques of AutoCAD R14.0,the program design skill of the developing automatic program,the method of the developing menus and button icons in the integrated environment of AutoCAD R14.0,and gives a program example.
1 前言
目前,國(guó)內(nèi)線切割自動(dòng)編程系統(tǒng)采用的操作平臺(tái)絕大多數(shù)為DOS版本,采用高級(jí)語(yǔ)言開(kāi)發(fā)程序,周期長(zhǎng)、工作量大,技術(shù)開(kāi)發(fā)工具較落后。國(guó)內(nèi)有在AutoCAD R12.0版本上開(kāi)發(fā)自動(dòng)編程,也為DOS版本,操作平臺(tái)也較為落后,并且編程相當(dāng)復(fù)雜。
AutoCAD R14.0是在Windows95/NT多窗口多任務(wù)先進(jìn)操作平臺(tái)下用Visual C++開(kāi)發(fā)出來(lái)的,是目前世界上最好的繪圖軟件,利用其強(qiáng)大繪圖功能完成自動(dòng)編程的圖形輸入相當(dāng)理想。
同時(shí),AutoCAD R14.0支持微軟的ActiveX Automation技術(shù),其顯露出大約70個(gè)對(duì)象300多種屬性給Automation Client(客戶),ActiveX Automation技術(shù)可以用Visual Basic 6.0程序來(lái)直接在AutoCAD圖形中提取圖形實(shí)體(如直線、圓弧)的屬性(如起點(diǎn)、終點(diǎn)、圓心等坐標(biāo),圓半徑等),并可操縱實(shí)體。隨著多任務(wù)多窗口操作系統(tǒng)的發(fā)展,線切割自動(dòng)編程也必須緊跟當(dāng)代先進(jìn)計(jì)算機(jī)技術(shù)的發(fā)展,脫離單任務(wù)單窗口的DOS版本。因此,在AutoCAD R14.0中用ActiveXAutomation技術(shù)開(kāi)發(fā)數(shù)控自動(dòng)編程系統(tǒng)很有意義。
2 AutoCAD R14.0的ActiveX Automation技術(shù)簡(jiǎn)介
ActiveX技術(shù)是一組基于構(gòu)件對(duì)象模型COM的技術(shù)集合。ActiveX Automation是OLE(Object Linking and Embedding,對(duì)象鏈接和嵌入)自動(dòng)化技術(shù)的擴(kuò)充和發(fā)展,它適用于OLE對(duì)象與ActiveX對(duì)象。Automation技術(shù)允許一個(gè)應(yīng)用程序操縱另一個(gè)應(yīng)用程序中實(shí)現(xiàn)的對(duì)象,從而可被操縱。AutoCAD R14.0的ActiveX Automation對(duì)象模型如圖1所示,所有的對(duì)象組成一個(gè)層狀結(jié)構(gòu)。最高層是Application對(duì)象,其他對(duì)象都是Application子對(duì)象。與本自動(dòng)編程有關(guān)的AutoCAD R14.0的Automation對(duì)象如下:

圖1 AutoCAD R14.0的ActiveX Automation對(duì)象模型
(1)Application對(duì)象。Application對(duì)象有許多屬性和方法:ActiveDocument屬性返回當(dāng)前文檔, ActiveDocument對(duì)象是AutoCAD正在編輯的圖形;Preference屬性返回對(duì)象,返回對(duì)象等價(jià)于Preferences對(duì)話框。
(2)Document對(duì)象。Document對(duì)象是AutoCAD當(dāng)前正在編輯的圖形,它可存取所有的AutoCAD圖形與非圖形對(duì)象。 ModelSpace和PaperSpace屬性可存取圖形對(duì)象(如直線、圓弧、多義線等),非圖形對(duì)象可通過(guò)屬性Layers、LineType、 TextStyles等存取。Document對(duì)象方法有文件的存儲(chǔ)與打開(kāi)。AutoCAD的圖形或非圖形對(duì)象都可以對(duì)象集合 (CollectionSet)的形式存在,通過(guò)對(duì)這些對(duì)象集合的操作,可遍歷到當(dāng)前圖形中所有的對(duì)象。
(3)圖形對(duì)象。AutoCAD的圖形對(duì)象被稱為實(shí)體(Entities),是圖形的可見(jiàn)對(duì)象。包括Lines(線段)、Arcs(圓弧)、Polylines(多義線)、Dims(尺寸標(biāo)注)等。可使用ModelSpace和PaperSpace的AddEntityname方法產(chǎn)生一個(gè)新的圖形對(duì)象。圖形對(duì)象的編輯可通過(guò)圖形對(duì)象自身的方法(Copy,Erase,Move,Rotate等)實(shí)現(xiàn)。一些圖形對(duì)象的典型特征可通過(guò)對(duì)象屬性進(jìn)行修改,如Color(顏色)、LineType (線形)、Layer(圖層)等。
(4)非圖形對(duì)象。非圖形對(duì)象是指圖形中不可見(jiàn)對(duì)象。包括Dimstyle尺寸標(biāo)注風(fēng)格,LineType(線型)、SelectionSet選擇集等。
(5)Preferences對(duì)象。可查詢和設(shè)置Preferences對(duì)話框,該對(duì)象也是Application對(duì)象的子對(duì)象,它的主要功能是進(jìn)行交互輸入和類型轉(zhuǎn)換。
3 AutoCAD R14.0的ActiveX Automation技術(shù)編程設(shè)計(jì)
AutoCAD R14.0的ActiveX Automation技術(shù)編程設(shè)計(jì)流程圖如圖2所示。

圖2 程序設(shè)計(jì)流程圖
3.1 設(shè)置應(yīng)用程序全局變量
一個(gè)Visual Basic 6.0應(yīng)用程序包括三類模塊:窗體模塊、全局模塊、類模塊。為提高程序的健壯性和運(yùn)行效率,將Application對(duì)象、Document對(duì)象、ModelSpace對(duì)象和PaperSpace對(duì)象定義為全局變量。
3.2 將Application對(duì)象與AutoCAD程序鏈接
Application對(duì)象是VB應(yīng)用程序與AutoCAD之間鏈接的關(guān)鍵。只有通過(guò)Application對(duì)象才能獲得Document對(duì)象、 ModelSpace和PaperSpace對(duì)象。將Application對(duì)象與AutoCAD鏈接是為AutoCAD開(kāi)發(fā)ActiveX Automation應(yīng)用程序的第一步工作。
Application對(duì)象與AutoCAD鏈接的代碼如下所示。如成功則返回Application對(duì)象,否則利用信息框反饋錯(cuò)誤信息。
Dim acadApp As Object
On Error Resume Next
‘返回Application對(duì)象
Set acadApp=GetObject(,"AutoCAD.Application")
If Err Then
Err.Clear
`如果在AutoCAD沒(méi)有運(yùn)行,則強(qiáng)迫AutoCAD啟動(dòng)
Set acadApp=CreateObject("AutoCAD.Application")
If Err Then
MsgBox Err.Description `反饋錯(cuò)誤信息
Exit Sub
End If
End If
acadApp.Visible=True
得到了Application對(duì)象,就可調(diào)用相應(yīng)的方法與函數(shù)。調(diào)用ActiveDocument屬性可得到當(dāng)前的Document對(duì)象。調(diào)用Preferences屬性可得到Preferences對(duì)象。
3.3 使用Document對(duì)象
AutoCAD屬性的Document對(duì)象是進(jìn)行圖形編輯的最高層對(duì)象。Application對(duì)象的ActiveDocument返回一個(gè)Document對(duì)象,它是當(dāng)前正在編輯的圖形。下面的代碼產(chǎn)生一個(gè)新的Document對(duì)象。
Dim acadDoc As Object
Set acadDoc=acadApp.ActiveDocument
當(dāng)?shù)玫紻ocument對(duì)象后,就可使用它的方法和屬性。
3.4 零件圖形輸入及處理
在AutoCAD中按零件圖紙尺寸輸入零件圖形,可利用本文開(kāi)發(fā)的“繪圖點(diǎn)線圓及工具”菜單和“繪圖點(diǎn)線圓及工具”按鈕圖標(biāo)方便地實(shí)現(xiàn)。將零件圖形編輯成多義線,加入放電間隙量,加入穿絲線,零件圖形處理完畢。
3.5 構(gòu)造AutoCAD選擇集
將正在編輯的圖形的直線和圓弧構(gòu)成一個(gè)選擇集。其中選擇的第一、第二元素(實(shí)體)順序必須為圖形的加工方向,第一段實(shí)體可為穿絲線。構(gòu)造AutoCAD選擇集代碼如下:
Dim sset As Object
Set sset=acadDoc.SelectionSets.Add("ss1") ′構(gòu)造新選擇集
Sset.SelectionOnScreen ′在屏幕上選擇直線圓弧實(shí)體
3.6 確定選擇集的第一、第二段元素的加工起點(diǎn)、終點(diǎn)坐標(biāo)
第一、第二段元素的起點(diǎn)、終點(diǎn)是根據(jù)繪圖的順序確定,根據(jù)第一段與第二段元素的相連點(diǎn),確定出加工方向的起點(diǎn)、終點(diǎn)坐標(biāo)。
3.7 對(duì)所有選擇的實(shí)體進(jìn)行排序
確定了加工方向的第二段元素的終點(diǎn),再依次搜尋與加工方向第二段元素終點(diǎn)相連的直線或圓弧,作為加工方向的第三段元素,根據(jù)加工的第三段元素(實(shí)體)的終點(diǎn)再搜尋與其相連的下一段元素(實(shí)體),……,直到排序完所有加工方向的實(shí)體。
3.8 生成3B數(shù)控加工代碼或ISO代碼
排序的同時(shí),得到了各段排序?qū)嶓w的幾何數(shù)據(jù),如加工方向直線的起點(diǎn)、終點(diǎn)坐標(biāo);圓弧的起點(diǎn)、終點(diǎn)、圓心坐標(biāo),起始角、終止角,圓弧半徑,圓弧方向等。
根據(jù)加工直線圓弧的數(shù)據(jù),可方便地生成3B數(shù)控加工代碼或ISO代碼。
4 應(yīng)用菜單及按鈕圖標(biāo)的開(kāi)發(fā)
一般自動(dòng)編程繪圖有12種直線、16種圓弧和4種點(diǎn)。可利用AutoCAD的菜單文件方便地?cái)U(kuò)充AutoCAD的功能。本文用寫(xiě)字板編輯程序調(diào)出菜單源文件Acad.mns,在“幫助”菜單后按照菜單的標(biāo)準(zhǔn)格式增加菜單“繪制點(diǎn)線圓及工具”項(xiàng),即生成所需的應(yīng)用菜單。
利用AutoCAD的按鈕圖標(biāo)開(kāi)發(fā)工具,即下拉菜單中的“View/Toolbars”菜單選項(xiàng)、“Toolbars”對(duì)話框、“New Toolbar”對(duì)話框、“Customize Toolbars”對(duì)話框、“Button Properties”對(duì)話框、“Button Edit”對(duì)話框,可生成按鈕圖標(biāo)并掛上所要執(zhí)行的命令。
5 Visual Basic 6.0程序文件的生成
在Visual Basic 6.0下建立如圖3所示的工程1(自動(dòng)編程.vbp),其中3B指令顯示.frm窗體是用RichTextBox高級(jí)文本控件制做的寫(xiě)字板,用來(lái)顯示生成的3B指令,并對(duì)生成的3B指令進(jìn)行保存。加工仿真.FRM窗體用來(lái)顯示加工仿真的圖形。自動(dòng)編程.bas模塊是對(duì)AutoCAD進(jìn)行處理的主要模塊。該工程生成可執(zhí)行文件R14_3b.exe,外掛在Acad.pgp程序中,即可在AutoCAD中執(zhí)行。

圖3 應(yīng)用程序VB6.0工程的建立
6 編程實(shí)例
在AutoCAD中輸入如圖4所示的圖形,將圖形編輯成多義線,加入放電間隙及穿絲線。用鼠標(biāo)單擊“3B”圖標(biāo)按鈕,再單選穿絲線為第一段實(shí)體,穿絲線左邊為第二段實(shí)體,再用復(fù)選框全選整個(gè)圖形后,按鼠標(biāo)左鍵即可生成3B代碼。

圖4 編程實(shí)例
7 結(jié)束語(yǔ)
在AutoCAD中用ActiveX Automation技術(shù)開(kāi)發(fā)數(shù)控編程的周期短;開(kāi)發(fā)工具及技術(shù)平臺(tái)先進(jìn),編程簡(jiǎn)單;使用菜單和按鈕圖標(biāo),繪圖簡(jiǎn)單易學(xué),用戶界面和通用性能好;可在同一個(gè)*.dwg文件中繪制多個(gè)零件圖形,分別生成加工指令;利用多窗口特性,可不退出系統(tǒng),查看生成的3B指令、AutoCAD編輯的圖形和加工仿真圖形,非常方便。計(jì)算機(jī)的配置也較簡(jiǎn)單,能較好地滿足自動(dòng)編程的要求。
相關(guān)文章
- 2021-09-08BIM技術(shù)叢書(shū)Revit軟件應(yīng)用系列Autodesk Revit族詳解 [
- 2021-09-08全國(guó)專業(yè)技術(shù)人員計(jì)算機(jī)應(yīng)用能力考試用書(shū) AutoCAD2004
- 2021-09-08EXCEL在工作中的應(yīng)用 制表、數(shù)據(jù)處理及宏應(yīng)用PDF下載
- 2021-08-30從零開(kāi)始AutoCAD 2014中文版機(jī)械制圖基礎(chǔ)培訓(xùn)教程 [李
- 2021-08-30從零開(kāi)始AutoCAD 2014中文版建筑制圖基礎(chǔ)培訓(xùn)教程 [朱
- 2021-08-30電氣CAD實(shí)例教程AutoCAD 2010中文版 [左昉 等編著] 20
- 2021-08-30電影風(fēng)暴2:Maya影像實(shí)拍與三維合成攻略PDF下載
- 2021-08-30高等院校藝術(shù)設(shè)計(jì)案例教程中文版AutoCAD 建筑設(shè)計(jì)案例
- 2021-08-29環(huán)境藝術(shù)制圖AutoCAD [徐幼光 編著] 2013年P(guān)DF下載
- 2021-08-29機(jī)械A(chǔ)utoCAD 項(xiàng)目教程 第3版 [繆希偉 主編] 2012年P(guān)DF