陳家新 何喬
摘要:電機(jī)模型繪制是永磁電機(jī)設(shè)計(jì)過程中的一個(gè)關(guān)鍵環(huán)節(jié)。永磁電機(jī)在設(shè)計(jì)時(shí),需要經(jīng)常調(diào)整一些尺寸,若手動(dòng)在 AutoCAD中繪制電機(jī)模型,則非常耗費(fèi)時(shí)間且容易出錯(cuò)。針對(duì)永磁電機(jī)模型在繪制過程中效率低下的問題,考慮運(yùn)用參數(shù)化的思想,開發(fā)一套系統(tǒng)實(shí)現(xiàn)模型自動(dòng)繪制。而采用 AutoCAD 內(nèi)置的開發(fā)工具進(jìn)行二次開發(fā),又會(huì)帶來使用不方便和拓展性差的問題。使用Visu- al Basic語(yǔ)言對(duì) AutoCAD進(jìn)行二次開發(fā),針對(duì)一款永磁同步電機(jī)實(shí)現(xiàn)了參數(shù)化繪圖,并能調(diào)整優(yōu)化參數(shù),自動(dòng)批量化地繪制。繪制好的電機(jī)模型均以 DXF 格式保存在指定的文件夾內(nèi),為后續(xù)的電機(jī)優(yōu)化提供了大量的樣本。繪制系統(tǒng)界面簡(jiǎn)潔、操作方便、自動(dòng)化程度高,為以后電機(jī)產(chǎn)品的設(shè)計(jì)提供了思路。
關(guān)鍵詞:永磁電機(jī);Visual Basic;AutoCAD;參數(shù)化
中圖分類號(hào):TP391.72文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1009-9492(2021)11-0017-04
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
Automatic Drawing System of Motor Model Based on Secondary Development of AutoCAD with VB
Chen Jiaxin1,He Qiao2
(1.School of Mechanical Engineering, Donghua University, Shanghai 201620, China;2.School of Information Science and Technology, Donghua University, Shanghai 201620, China)
Abstract: Drawing of motor modelis a key link in the design process of permanent magnet motor. In the design of permanent magnet motor, it is necessary to adjust some sizes frequently. If the motor model is drawn manually in AutoCAD, it is very time-consuming and error-prone. Aiming at the problem of low efficiency in the drawing process of permanent magnet motor model, a system was developed to realize the automatic drawing of permanent magnet motor model by using parameterization idea. However, using the built-in development tools of AutoCAD for secondary development will bring the problems of inconvenience and poor expansion, so Visual Basic language was used to the secondarydevelopmentof AutoCAD,theparametricdrawingof apermanentmagnetsynchronousmotor wasrealized,inaddition,the parameters were adjusted to be optimized and draw mass models according to these parameters. The drawn motor models were stored in the specified folder in DXF format, which provided a large number of samples for the subsequent motor optimization. The drawing system has the advantages of simple interface, convenient operation and high degree of automation, which provides ideas for the design of motor products in the future.
Key words: permanent magnet motor; Visual Basic; AutoCAD; parameterized
0 引言
電機(jī)的模型繪制是電機(jī)產(chǎn)品在設(shè)計(jì)中的一個(gè)基礎(chǔ)環(huán)節(jié)[1]。在使用等效磁路法對(duì)永磁電機(jī)進(jìn)行分析和優(yōu)化時(shí),為了找到電機(jī)的最佳設(shè)計(jì)結(jié)果,通常需要不斷調(diào)整電機(jī)某幾處的尺寸數(shù)據(jù),每調(diào)整一次則要在 AutoCAD中重新繪制一張電機(jī)的模型。為了使設(shè)計(jì)方案盡可能覆蓋更大的范圍,會(huì)繪制上百?gòu)埳踔粮嗟哪P?,手工繪制會(huì)大幅降低電機(jī)設(shè)計(jì)的效率,同時(shí)也很容易出錯(cuò)。因此,設(shè)計(jì)出一款高效、簡(jiǎn)潔的電機(jī)模型繪制系統(tǒng)是一件十分有必要的事。
傳統(tǒng)的基于 AutoCAD 的二次開發(fā)思路是利用 Auto- CAD 內(nèi)置的開發(fā)工具(Auto Lisp 語(yǔ)言、VBA 等)[2],開發(fā)設(shè)計(jì)腳本語(yǔ)言,當(dāng)需要繪制特定圖形的時(shí)候,在 Auto- CAD中手動(dòng)加載對(duì)應(yīng)的腳本文件即可。但是由于腳本語(yǔ)言無法獨(dú)立運(yùn)行的特性,每次使用都要手動(dòng)打開 Auto- CAD軟件并加載,并且與其他軟件接口難度較大,拓展性差。使用該方法開發(fā)的軟件實(shí)際使用體驗(yàn)并不好,繪制的效率需要進(jìn)一步提高。使用 VB 語(yǔ)言對(duì) AutoCAD進(jìn)行二次開發(fā),不僅能方便地修改電機(jī)的尺寸、批量地進(jìn)行繪制,其高拓展性為后續(xù)增加其他功能提供了方便。相對(duì)于手動(dòng)繪圖,極大地提高了電機(jī)設(shè)計(jì)的效率。本文以實(shí)驗(yàn)室設(shè)計(jì)的60永磁電機(jī)為例,詳細(xì)介紹了在 Win- dow環(huán)境下使用 Visual Basic6.0對(duì) AutoCAD2016進(jìn)行二次開發(fā)進(jìn)行參數(shù)化繪制電機(jī)模型的過程。
1 VB對(duì)AutoCAD二次開發(fā)的原理
VB 是一種面向?qū)ο?、以事件為?qū)動(dòng)為運(yùn)行機(jī)制的編程語(yǔ)言[3]。相對(duì)于 AutoCAD二次開發(fā)的其他工具,VB 語(yǔ)言有可視化程度高、上手難度低等優(yōu)點(diǎn)[4],這十分契合系統(tǒng)對(duì)于高效、簡(jiǎn)潔的設(shè)計(jì)需求。使用 VB 對(duì) AutoCAD 進(jìn)行二次開發(fā)使用到了 ActiveX 自動(dòng)化技術(shù),即將 Auto- CAD當(dāng)作VB 中的一個(gè)圖形窗口,通過 VB 語(yǔ)言控制 Auto- CAD的打開、繪制、關(guān)閉等操作[5]。
1.1 AutoCAD對(duì)象
VB6.0通過操作 AutoCAD的對(duì)象和屬性來實(shí)現(xiàn)電機(jī)模型的繪制操作[6]。AutoCAD的對(duì)象包括圖形對(duì)象、樣式設(shè)置對(duì)象、組織結(jié)構(gòu)、圖形顯示對(duì)象和 AutoCAD應(yīng)用程序(Application)和文檔( Document ),并且他們之間存在一定的層級(jí)和隸屬關(guān)系[7]。在本系統(tǒng)中,用到的 Auto- CAD對(duì)象主要為應(yīng)用程序、活動(dòng)文檔和模型空間(Mod- elSpace)[8],其中模型空間是隸屬于活動(dòng)文檔的一個(gè)對(duì)象。因此,首先在程序中定義對(duì)應(yīng)3個(gè)對(duì)象的類變量,分別為AcadApp、AcadDoc和MoSpace。
1.2 VB與AutoCAD連接
使用 VB 語(yǔ)言對(duì) AutoCAD 進(jìn)行二次開發(fā),首先要在項(xiàng)目中添加 AutoCAD的類庫(kù)[9]。在 VB6.0的程序界面點(diǎn)擊“工程”—“引用…”,在彈出的對(duì)話框里勾選“Auto- CAD 2014 Type Library”,即可調(diào)用 AutoCAD 的類庫(kù)[10]。通過對(duì)變量賦初始值的方法判斷并控制 AutoCAD的打開和關(guān)閉:
Set AcadApp = GetObject (, "AutoCAD.Application")
……
AcadApp.Visible = True
Set AcadDoc = AcadApp.ActiveDocument
Set moSpace = AcadDoc.ModelSpace
程序中省略號(hào)為判斷 AutoCAD軟件有沒有打開的過程,如果沒有打開,就在程序中打開 AutoCAD 軟件。AcadApp.Visible = True 表示 CAD 軟件可見。AcadDoc表示應(yīng)用程序中的一個(gè)活動(dòng)文檔,moSpace表示活動(dòng)文檔的模型空間,分別為其賦初始值。
2 電機(jī)模型的參數(shù)化建模
2.1 電機(jī)模型的參數(shù)化表示
要通過參數(shù)化的方法實(shí)現(xiàn)電機(jī)模型的自動(dòng)繪制,達(dá)到與手動(dòng)繪制相同的效果,首先要對(duì)電機(jī)模型的幾何尺寸和其約束關(guān)系進(jìn)行分析[11]。首先,參考手動(dòng)繪制所需的尺寸數(shù)據(jù),完整地確定參數(shù)化繪制所需數(shù)據(jù),并對(duì)其進(jìn)行參數(shù)化表示。模型的參數(shù)化表示如圖1所示。
在圖中標(biāo)注的參數(shù),定子部分有定子軛厚 d0,定子外徑rSO,定子內(nèi)徑rSI,定子齒寬wt,槽間距wg,齒靴高度 h ,線圈離槽寬度 l ,齒靴處圓角半徑 r0;轉(zhuǎn)子部分有極對(duì)數(shù)p ,轉(zhuǎn)子外半徑rR,轉(zhuǎn)子外圓弧半徑rRO,轉(zhuǎn)子槽最薄處厚度 l2,磁鋼槽間厚度 l3,磁鋼槽高度 a ,轉(zhuǎn)子內(nèi)徑rRI,磁鋼圓角半徑rC。
以電機(jī)的中心為坐標(biāo)原點(diǎn),電機(jī)的某個(gè)定子的對(duì)稱軸為 Y軸建立二維坐標(biāo)系。將電機(jī)單個(gè)定子和轉(zhuǎn)子的左半部分分離出來,分別對(duì)構(gòu)成該部分的所有關(guān)鍵點(diǎn)和關(guān)鍵線條進(jìn)行標(biāo)注。標(biāo)注的關(guān)鍵點(diǎn)和關(guān)鍵線條的結(jié)果如圖2~3所示。
經(jīng)過幾何計(jì)算,使用圖1中標(biāo)注的參數(shù)表示圖2中所有關(guān)鍵點(diǎn)的坐標(biāo),得到部分關(guān)鍵點(diǎn)的坐標(biāo)如表1所示。根據(jù)已知信息繼續(xù)計(jì)算,求得圖2中所有關(guān)鍵點(diǎn)坐標(biāo)。
2.2 設(shè)計(jì)優(yōu)化參數(shù)及其調(diào)整策略
電機(jī)優(yōu)化參數(shù)需要在參數(shù)化表示中所有參數(shù)中選擇,電機(jī)優(yōu)化的所有樣本均是這些優(yōu)化參數(shù)按一定策略調(diào)整獲得。電機(jī)優(yōu)化參數(shù)的設(shè)計(jì)應(yīng)遵循以下幾個(gè)原則:
(1) 優(yōu)先考慮能夠連續(xù)變化的參數(shù);
(2) 電機(jī)設(shè)計(jì)之初設(shè)計(jì)的基本參數(shù)不能作為優(yōu)化參數(shù)(如定子內(nèi)徑、定子外徑等);
(3) 選擇的優(yōu)化參數(shù)之間應(yīng)是相互獨(dú)立、線性無關(guān)的,即一個(gè)優(yōu)化參數(shù)的變化不能影響另一個(gè)優(yōu)化參數(shù)的大小;
(4) 優(yōu)化參數(shù)的數(shù)量要適量,數(shù)量太多會(huì)導(dǎo)致需要優(yōu)化的樣本過多,計(jì)算時(shí)間太長(zhǎng),數(shù)量太少則會(huì)導(dǎo)致樣本覆蓋不全,不能找到電機(jī)設(shè)計(jì)的最優(yōu)解;
(5)盡量選擇對(duì)電機(jī)性能影響較大的參數(shù);
(6)優(yōu)化參數(shù)的變化區(qū)間應(yīng)容易確定,且有較大的調(diào)整空間。
遵照優(yōu)化參數(shù)設(shè)計(jì)原則,將電機(jī)的參數(shù)分為以下3類:(1) 在電機(jī)設(shè)計(jì)之初確定的基本結(jié)構(gòu)數(shù)據(jù),這些數(shù)據(jù)是確定的且不可修改的;(2)對(duì)電機(jī)性能沒有影響的數(shù)據(jù),這些數(shù)據(jù)在電機(jī)繪制時(shí)是必要的,但是在電機(jī)優(yōu)化時(shí)也可以設(shè)定為固定值;(3)對(duì)電機(jī)結(jié)構(gòu)和性能都有影響的重要數(shù)據(jù),這些數(shù)據(jù)在電機(jī)優(yōu)化中至關(guān)重要,每個(gè)數(shù)據(jù)的變化都會(huì)或多或少地改變電機(jī)的性能。第3類參數(shù)包含槽間距wg、齒靴高度 h 以及齒靴圓角半徑 r0,優(yōu)化的參數(shù)應(yīng)在這3個(gè)參數(shù)中選擇。
對(duì)比這3個(gè)參數(shù)的數(shù)學(xué)關(guān)系,發(fā)現(xiàn)槽間距wg和齒靴圓角半徑 r0的變化是會(huì)相互影響的,而齒靴高度 h 的大小則不受其影響,因此槽間距wg與齒靴圓角半徑 r0 不能同時(shí)選取為優(yōu)化參數(shù)。在實(shí)際的仿真環(huán)節(jié),齒靴圓角半徑 r0的變化對(duì)電機(jī)性能的影響較小,并且調(diào)整的范圍也很小。綜合考慮以上因素,將齒靴圓角半徑 r0設(shè)定為固定值0.5 mm ,選取槽間距wg和齒靴高度 h 作為優(yōu)化參數(shù)。在繪制電機(jī)模型的時(shí)候,保持其他參數(shù)不變,分別對(duì)槽間距wg和齒靴高度 h 在一定的區(qū)間內(nèi)按選定的步長(zhǎng)進(jìn)行調(diào)整,一次僅調(diào)整一個(gè)優(yōu)化參數(shù),并且每調(diào)整一次就繪制一個(gè)新的模型,最終得到一定數(shù)量的樣本。
3 系統(tǒng)的實(shí)現(xiàn)方式
系統(tǒng)的實(shí)現(xiàn)部分分為用戶界面和程序編寫兩個(gè)部分來闡述。
3.1 用戶界面設(shè)計(jì)
用戶界面發(fā)揮著人機(jī)交互的重要功能,用戶的所有操作都要在用戶界面來完成。在人機(jī)交互界面,系統(tǒng)提供了以下幾個(gè)功能:(1) 電機(jī)定轉(zhuǎn)子尺寸輸入,以及保存輸入的尺寸參數(shù)和導(dǎo)入已經(jīng)保存的參數(shù); (2)打開 AutoCAD軟件,按輸入的參數(shù)繪制電機(jī)定轉(zhuǎn)子模型,并按規(guī)定格式保存到指定文件夾。設(shè)計(jì)好的用戶界面如圖4所示;(3)選擇步長(zhǎng),并按選定步長(zhǎng)調(diào)整槽間距和齒靴高度兩個(gè)優(yōu)化參數(shù),并可微調(diào)氣隙的大小。
3.2 程序設(shè)計(jì)
在該系統(tǒng)中,除了參數(shù)輸入和優(yōu)化參數(shù)的調(diào)整,最核心的功能是根據(jù)輸入的參數(shù)繪制電機(jī)的模型。模型的繪制分為以下3個(gè)步驟進(jìn)行。
(1) 關(guān)鍵線條繪制
在已知關(guān)鍵點(diǎn)坐標(biāo)的情況下,圖 3中的關(guān)鍵線條可以由AddLine ()(添加線段)、AddCircle ()(添加圓)和AddArc ()(添加圓?。┮约坝善渫茖?dǎo)而來的函數(shù)繪制得到。
(2) 鏡像操作
在鏡像操作部分,定子部分(包括線圈)和轉(zhuǎn)子部分分開進(jìn)行。首先將定子左半部分(包括線圈)添加到選擇集1(SSet1),操作程序如下:
Dim SSet1 As AcadSelectionSet
Set SSet1= createSSet ("half_stator")
SSet1.Select acSelectionSetAll
對(duì)選擇集1的中所有圖元作鏡像操作,鏡像軸為 Y 軸所在直線,操作程序如下:
Dim i As Integer
Dim objEntity1 As AcadEntity
For i =0 To SSet1.Count -1
Set objEntity1= SSet1.Item (i)
objEntity1.Mirror pt1, pt2
Next i
同樣地,將轉(zhuǎn)子的左半部分添加到選擇集3(SSet3),對(duì)選擇集3作鏡像操作。
(3) 陣列操作
在陣列操作部分,定子部分(包括線圈)和轉(zhuǎn)子部分同樣分開進(jìn)行繪制。首先將選擇集1鏡像后的所有圖元添加到圖元集2(SSet2),則選擇集2中包含一個(gè)完整的定子和一對(duì)線圈的圖形。然后對(duì)圖元集2中所有圖元作陣列操作,陣列總角度為2π,陣列數(shù)量為定子槽數(shù) Z1,陣列操作程序如下:
Dim j As Integer
Dim objEntity2 As AcadEntity
For j =0 To SSet2.Count -1
Set objEntity2= SSet2.Item (j)
objEntity2.ArrayPolar Z1, pi *2, pt1
Next j
同樣地,對(duì)選擇集3鏡像后的所有圖元作陣列操作,陣列的總角度為2π,陣列數(shù)量為極數(shù)2p 。另外,定子內(nèi)為一個(gè)單獨(dú)的圓,單獨(dú)繪制出即可。繪制完整后,模型將以 DXF 格式按編號(hào)保存到指定文件夾中:
AcadDoc.SaveAs "dir:\"&"f"& order, ac2000_dxf
其中,“f+order”為圖片編號(hào),每新增一張圖紙, order數(shù)量加1。
3.3 系統(tǒng)操作方式
打開系統(tǒng),輸入所需參數(shù),點(diǎn)擊“打開 AutoCAD”按鈕,即可打開電腦中的 AutoCAD軟件,并新建一個(gè)空的繪制文件。點(diǎn)擊“繪制電機(jī)模型”按鈕,繪制得到的電機(jī)模型如圖5所示。
若要優(yōu)化電機(jī),批量繪制電機(jī)模型,找到電機(jī)設(shè)計(jì)的最優(yōu)解,則根據(jù)優(yōu)化精度的需要,選擇槽間距和齒靴高度的調(diào)整步長(zhǎng)。每新繪制一個(gè)模型,則要點(diǎn)擊“下一張”,在繪制完成后,再點(diǎn)擊“保存當(dāng)前圖形”即可。通過后續(xù)的有限元仿真實(shí)驗(yàn),對(duì)比繪制的所有電機(jī)的性能,可以找到性能最優(yōu)的電機(jī)設(shè)計(jì)方案。
4 結(jié)束語(yǔ)
本文介紹了一種使用 VB 對(duì) AutoCAD 進(jìn)行二次開發(fā)的方法,并將該方法運(yùn)用到永磁電機(jī)優(yōu)化中電機(jī)模型繪制的過程中。以實(shí)驗(yàn)室設(shè)計(jì)的60系列電機(jī)為例,開發(fā)了一套針對(duì)該電機(jī)的自動(dòng)化繪制系統(tǒng)。該系統(tǒng)不僅能參數(shù)化繪制永磁電機(jī)的模型,還內(nèi)置了優(yōu)化參數(shù)調(diào)整的功能,可針對(duì)優(yōu)化參數(shù)的調(diào)整繪制大量的電機(jī)模型,相比于手動(dòng)繪制,大幅提高了電機(jī)優(yōu)化的效率。經(jīng)驗(yàn)證,該系統(tǒng)在幾分鐘內(nèi)即可以繪制一套覆蓋大部分設(shè)計(jì)方案的電機(jī)模型,為后續(xù)電機(jī)的優(yōu)化提供了很大的便利,實(shí)現(xiàn)了電機(jī)設(shè)計(jì)圖紙的參數(shù)化和自動(dòng)化。由于 VB 語(yǔ)言的簡(jiǎn)單易學(xué)、開發(fā)周期低的特點(diǎn),可以將該方法推廣到其他電機(jī)的設(shè)計(jì)中。
參考文獻(xiàn):
[1]司萌,余霞,李登峰,等.基于 VB的電機(jī)沖片圖形自動(dòng)繪制技術(shù)[J].機(jī)械設(shè)計(jì)與制造,2019(9):176-180.
[2]陳煒.利用 VB實(shí)現(xiàn) AutoCAD二次開發(fā)中參數(shù)化繪圖[J].中國(guó)新技術(shù)新產(chǎn)品,2014(13):13.
[3]宋廣群.VB 程序設(shè)計(jì)[M].北京:中國(guó)科學(xué)技術(shù)大學(xué)出版社.2006.
[4]岳震, 張奉祿.基于 VB 的 AUTOCAD 二次開發(fā)[J].機(jī)械設(shè)計(jì)與制造,2002(1):25-26.
[5]成海濤.CAD二次開發(fā)方法研究與運(yùn)用[J].中阿科技論壇(中英文),2020(12):53-55.
[6]劉永波.基于 VB的 AutoCAD二次開發(fā)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2007.
[7]陳爾奎, 陳朋,姜文建.基于 VB對(duì) AutoCAD二次開發(fā)的變壓器繪圖軟件設(shè)計(jì)[J].變壓器,2012,49(11):25-28.
[8]盛忠起,趙立杰, 劉永賢.基于 ActiveX技術(shù)用面向?qū)ο蠓椒ㄟM(jìn)行 AutoCAD二次開發(fā)[J].電腦開發(fā)與應(yīng)用,2000(4):24-26.
[9]苗飛.面向機(jī)械產(chǎn)品設(shè)計(jì)系統(tǒng)構(gòu)建的 CAD軟件二次開發(fā)技術(shù)[D].天津:天津大學(xué),2004.
[10]趙紅梅.基于參數(shù)化技術(shù)的 CAD 系統(tǒng)二次開發(fā)的研究與實(shí)現(xiàn)[D].保定:華北電力大學(xué)(河北),2007.
[11]趙震,彭穎紅.基于 KBE 的工程設(shè)計(jì)——理論、方法與實(shí)踐[J].機(jī)械科學(xué)與技術(shù),2003(1):151-153.
作者簡(jiǎn)介:
陳家新(1968-),男,安徽宣城人,博士后,教授,碩士生導(dǎo)師,研究領(lǐng)域?yàn)殡娏﹄娮印㈦姍C(jī)設(shè)計(jì)及其智能控制,已發(fā)表論文近60篇。
何喬(1995-),男,江蘇鹽城人,碩士研究生,研究領(lǐng)域?yàn)殡姍C(jī)設(shè)計(jì)及其智能控制。
(編輯:王智圣)