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

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

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

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

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