吳海宏
摘 要:本文基于.Net平臺(tái)采用c#語(yǔ)言對(duì)AutoCAD進(jìn)行二次開(kāi)發(fā),研制了多種風(fēng)電塔筒參數(shù)化展開(kāi)放樣技術(shù),解決了風(fēng)電塔筒生產(chǎn)過(guò)程中傳統(tǒng)手工放樣及繪圖的難題,提高了放樣和繪圖的工作效率和準(zhǔn)確率。
關(guān)鍵詞:風(fēng)電塔筒;參數(shù)化;展開(kāi)放樣;CAD二次開(kāi)發(fā)
DOI:10.16640/j.cnki.37-1222/t.2018.13.176
1 引言
風(fēng)電塔筒項(xiàng)目在投標(biāo)報(bào)價(jià)及生產(chǎn)準(zhǔn)備環(huán)節(jié),必須快速算出筒身鋼材的實(shí)際訂購(gòu)量,在生產(chǎn)環(huán)節(jié)則需要詳細(xì)的下料圖。通常技術(shù)員手工計(jì)算往往需要1-2天的拆料、繪圖、復(fù)核及統(tǒng)計(jì)。風(fēng)電塔筒設(shè)計(jì)圖紙一般將同種板厚的筒體高度定為4800mm、6900mm、7200mm等,需要由制造廠將同種板厚的筒體自行拆圖。基于節(jié)省鋼材和采購(gòu)方便的角度考慮,在拆圖的時(shí)候需要考慮所拆的同種板厚原材料的板寬相同。由于該過(guò)程手工計(jì)算量較大,且手工計(jì)算出錯(cuò)率高,如果能夠通過(guò)計(jì)算機(jī)自動(dòng)計(jì)算及繪圖,則可提高出圖效率,從而更好響應(yīng)市場(chǎng)需求。基于生產(chǎn)實(shí)際的需要,本文研究開(kāi)發(fā)了多種風(fēng)電塔筒參數(shù)化展開(kāi)放樣技術(shù)。
2 研究思路
通過(guò)研究風(fēng)電塔筒的單節(jié)、多節(jié)展開(kāi)放樣技術(shù),采用VS 2005軟件對(duì)AutoCAD2007軟件進(jìn)行二次開(kāi)發(fā)。在.NET平臺(tái)上采用C#語(yǔ)言,對(duì)風(fēng)電塔筒采用展開(kāi)計(jì)算法進(jìn)行計(jì)算,實(shí)現(xiàn)自動(dòng)展開(kāi)計(jì)算功能;利用CAD核心數(shù)據(jù)庫(kù)結(jié)構(gòu)、圖形系統(tǒng),通過(guò)向CAD對(duì)象發(fā)送消息,直接調(diào)用CAD核心函數(shù),從而實(shí)現(xiàn)自動(dòng)繪圖功能。
3 風(fēng)電塔筒展開(kāi)放樣計(jì)算原理
風(fēng)電塔筒鋼板采購(gòu)時(shí)均要求雙定尺,根據(jù)錐形筒的特征,每塊板的長(zhǎng)度寬度均不同,但如在放樣時(shí)考慮同種板厚的鋼板調(diào)整為相同板寬,則可以減少定尺的種類要求和板材損耗,減少采購(gòu)費(fèi)用。如圖1,當(dāng)n=2時(shí)需要計(jì)算出一個(gè)關(guān)鍵的參數(shù)R2,即可滿足采購(gòu)時(shí)同種板厚的鋼材等板寬原則。
根據(jù)已知參數(shù)小端直徑d1、大端直徑d2、錐筒高H、板厚t、分節(jié)數(shù)n,利用幾何關(guān)系依次求得錐筒下夾角∠b、R1,R3,展開(kāi)扇形夾角∠a,設(shè)立方程解得R2 = (R3+R1*cos(a/2))/(1+cos(a/2));再求出兩張鋼板寬S=R2-R1*cos(a/2),上端板長(zhǎng)L1=2*R2*sin(a/2),下端板長(zhǎng)L2=2*R3*sin(a/2)。
將以上計(jì)算原理的各種分塊計(jì)算情況通過(guò)函數(shù)的形式封裝在CL.cs類文件中,待需要時(shí)直接調(diào)用,如下所示:
public static void DrawPolyLine(double d1,double d2,double H,int n,int t )。
4 風(fēng)電塔筒展開(kāi)放樣自動(dòng)繪圖原理
為了訪問(wèn)CAD模型空間、圖紙空間,需要先引用“AutoCAD 2007 Type Library.dll”、“AutoCAD/ObjectDBX Common 17.0 Type Library.dll”和“Microsoft.VisualBasic.dll”三個(gè)文件,保證放樣程序與CAD軟件的通信。
將直線和弧線等繪圖功能采用函數(shù)的形式,封裝在PF.cs類文件中,例如,以pt1為起點(diǎn),pt2為終點(diǎn)的直線繪圖函數(shù)如下:
public static ObjectId AddLine(Point3d pt1, Point3d pt2)
{ Line ent = new Line(pt1, pt2);
ObjectId entId = AppendEntity(ent);
return entId; }
在自動(dòng)繪圖前,利用函數(shù)DrawPolyLine計(jì)算出原點(diǎn)坐標(biāo)ppt0,弧線的半徑值R1、R2、R3,角度值astar、aend,以及六個(gè)端點(diǎn)的坐標(biāo)值,然后調(diào)用PF.cs中的繪制弧線和直線的函數(shù)。上端板的繪圖調(diào)用如下:
PF.AddArc(ppt0, R1, astar,aend);
PF.AddArc(ppt0, R2, astar, aend);
PF.AddLine(ppt2, ppt3);
PF.AddLine(ppt1, ppt4);
5 功能實(shí)現(xiàn)及界面設(shè)計(jì)
(1)單節(jié)塔筒放樣。單節(jié)塔筒放樣程序的界面設(shè)計(jì)如圖2,在獲取屏幕參數(shù)后,直接調(diào)用函數(shù)DrawPolyLine(d, D, H, n,t),先根據(jù)同板厚鋼板等板寬展開(kāi)計(jì)算原理,利用switch(n)和case語(yǔ)句,求得n節(jié)情況下的關(guān)鍵參數(shù),再將關(guān)鍵參數(shù)傳遞給PF.cs的繪圖函數(shù),實(shí)現(xiàn)繪圖功能。
(2)多節(jié)塔筒放樣。多節(jié)塔筒放樣程序的界面設(shè)計(jì)如圖3,獲取的參數(shù)存入一維數(shù)組arr[i]中,再直接調(diào)用函數(shù)DrawPolyLineM(arr[i], k)進(jìn)行k次單節(jié)塔筒展開(kāi)計(jì)算和繪圖,計(jì)算和繪圖原理與單節(jié)塔筒放樣相同。
6 結(jié)語(yǔ)
利用AutoCAD提供的API接口,可以訪問(wèn)、創(chuàng)建及編輯各類對(duì)象。在此基礎(chǔ)上能夠靈活開(kāi)發(fā)出適合企業(yè)產(chǎn)品的各類自動(dòng)繪圖程序。本文通過(guò)開(kāi)發(fā)風(fēng)電塔筒參數(shù)化放樣及繪圖程序,實(shí)現(xiàn)輸入關(guān)鍵參數(shù)即可輸出下料圖紙,極大提高繪圖效率和節(jié)約鋼材損耗,也為今后對(duì)復(fù)雜的結(jié)構(gòu)件的展開(kāi)放樣提供了思路和借鑒。
參考文獻(xiàn):
[1]張帆.盧擇臨.AutoCAD VBA & VB.NET開(kāi)發(fā)基礎(chǔ)與實(shí)例教程[M].中國(guó)電力出版社,2008(02).
[2] 董慶華.鈑金展開(kāi)速查手冊(cè)[M].化學(xué)工業(yè)出版社,2008(02).