夏 甜 徐 剛
(三峽大學(xué) 水利與環(huán)境學(xué)院,湖北 宜昌 443002)
水利工程涉及到大量繁瑣的工程制圖的問題.工程師們?cè)谥茍D過程中一般都采用AutoCAD等設(shè)計(jì)軟件,有時(shí)候需要做大量差別不大但是重復(fù)量很大的制圖工作,如果對(duì)同一類制圖問題進(jìn)行參數(shù)化設(shè)計(jì),往往能夠大大提高工程設(shè)計(jì)的生產(chǎn)效率和技術(shù)水平.
目前AutoCAD的二次開發(fā)和參數(shù)化設(shè)計(jì)工具主要有:①VisualLisp.VisulLISP的全名是 Visul LIST Processing Language,起源于Autolisp,最早出現(xiàn)于1985年推出的AutoCAD R2.18中,是一種嵌入在AutoCAD內(nèi)部的編程語言[1].在AutoCAD平臺(tái)的支撐下,利用Visullisp可以方便快捷,可視化的進(jìn)行AutoCAD二次開發(fā),它一直是低版本Auto-CAD的首選編程語言.②VBA.VBA即 Microsoft office中的Visual Basic for Applications,它是一個(gè)功能強(qiáng)大的定制程序開發(fā)工具,用來自動(dòng)執(zhí)行任務(wù)的一個(gè)編程環(huán)境,VBA為AutoCAD的二次開發(fā)提供類似VisualBasic(VB)語言所擁有的功能,引入了對(duì)象的程序設(shè)計(jì)環(huán)境,為開發(fā)者提供了用來創(chuàng)建圖形用戶界面(GUI)的可拖拉工具和用來與AutoCAD對(duì)象交互的編程語言[2].VBA也是一種嵌入AutoCAD平臺(tái)的內(nèi)部編程語言要用到時(shí)候需要從AutoCAD平臺(tái)加載.③ObjectARX.ObjectARX應(yīng)用程序是以Visual C++為基本開發(fā)語言并且支持MFC基本類庫(kù),ObjectARX擁有對(duì)AutoCAD最深入的控制能力,能夠訪問很多AutoCAD底層工具,可以創(chuàng)建與AutoCAD內(nèi)部命令一樣的新命令,用其開發(fā)的應(yīng)用程序具有良好的人機(jī)界面,能簡(jiǎn)潔高效地實(shí)現(xiàn)許多復(fù)雜功能,運(yùn)行效率高,功能完善[3].同樣,基于 Object-ARX也不能脫離AutoCAD平臺(tái).④TeighaX.TeighaX組件是ODA開發(fā)的AutoCAD文件讀寫程序,基于TeighaX組件的AutoCAD二次開發(fā)適合目前幾乎所有版本的AutoCAD文件讀取、寫入、存檔及版本之間的轉(zhuǎn)換[4].
VisualLisp與VBA較為簡(jiǎn)單,特別是VBA,使用方便且開發(fā)速度較快,但其功能相比TeighaX有所不足,尤其是對(duì)面向?qū)ο蟮墓δ苤С植缓茫荒苊撾xAutoCAD平臺(tái).ObjectARX技術(shù)實(shí)現(xiàn)功能十分強(qiáng)大,但是也不能脫離AutoCAD平臺(tái).而TeighaX基于VC平臺(tái),在C#的支持下,其功能非常強(qiáng)大,可以很好地運(yùn)用各種面向?qū)ο蠹夹g(shù),TeighaX組件的最重要的優(yōu)點(diǎn)是本地計(jì)算機(jī)不用安裝AutoCAD軟件,可以脫離AutoCAD平臺(tái),進(jìn)行AutoCAD二次開發(fā).
ODA(Open Design Alliance)是一個(gè)非盈利的組織,在40多個(gè)國(guó)家有1 200多個(gè)成員.ODA致力于促進(jìn)開放的、工業(yè)標(biāo)準(zhǔn)的CAD數(shù)據(jù)和遺留的CAD數(shù)據(jù)的格式交換[5].ODA開發(fā)用于技術(shù)圖形應(yīng)用程序的核心平臺(tái) Teigha,Teigha支持dwg、dgn、stl、pdf之間的數(shù)據(jù)交換.Teigha支持的多個(gè)平臺(tái):Windows、Mac、Unix、Linux等[5].ODA會(huì)員可以用 C++、.NET和ActiveX接口開發(fā)自己的應(yīng)用程序[5].ODA的宗旨是開發(fā)核心的圖形技術(shù)庫(kù),讓軟件開發(fā)商專注與應(yīng)用開發(fā).和ITC一樣也是面向會(huì)員的[5].
ODA提供了AutoCAD二次開發(fā)的接口,ODA產(chǎn)品系列中的TeighaX組件曾用名DwgdirectX,可以脫離AutoCAD平臺(tái)對(duì)Dwg文件進(jìn)行讀寫,保存操作.因此可以實(shí)現(xiàn)對(duì)Dwg文件的參數(shù)化設(shè)計(jì).
DWG文件是AutoCAD文件的保存格式.一個(gè)DWG文件由4部分組成:文件頭、實(shí)體部、塊實(shí)體部和應(yīng)急頭部.其中最重要的部分是實(shí)體部分,實(shí)體部分由點(diǎn)(Point)、線(UBe,Ray,Xline,Mline,Pline,Spline等)、面(3Dface)、填充(hatch)、標(biāo)注(Dimen.sion)等構(gòu)成[4].
利用C#進(jìn)行基于TeighaX組件的二次開發(fā)技術(shù) 中,將 點(diǎn) (Point)、線 (UBe,Ray,Xline,Mline,Pline,Spline等)、圓(Circle)、圓弧(Arc)、塊(Block)、尺寸標(biāo)注(Dimen,sion)、填充(hatch)等等均以對(duì)象的方式表達(dá).比如一個(gè)點(diǎn)只要定義這個(gè)點(diǎn)的起點(diǎn)坐標(biāo)和終點(diǎn)坐標(biāo)就能實(shí)現(xiàn)繪圖功能.對(duì)于這些基本Auto-CAD對(duì)象在開發(fā)包[6]里面可以找到相應(yīng)的屬性、方法、字段,然后根據(jù)對(duì)象所擁有的方法、屬性、字段實(shí)例化對(duì)象,完成針對(duì)某一個(gè)對(duì)象的實(shí)例化操作.
參數(shù)化開發(fā)步驟包括模版創(chuàng)作、參數(shù)計(jì)算和參數(shù)化設(shè)計(jì).參數(shù)化設(shè)計(jì)流程如圖1所示.

圖1 參數(shù)化設(shè)計(jì)流程圖
基于TeighaX組件參數(shù)化設(shè)計(jì),通過讀取Dwg模版文件,對(duì)Dwg模版文件進(jìn)行寫入操作,保存經(jīng)過修改過的模板文件,得到最終繪圖結(jié)果文件.因此首先要新建一個(gè)Dwg模版文件,在模板文件里面只需要有各種規(guī)格的AutoCAD圖簽,根據(jù)標(biāo)準(zhǔn)常用圖簽有:A1,A3.將模板文件命名為指定的名稱,指定路徑,例如:“F:\standard.dwg”.也可以預(yù)存多個(gè)模板文件,在程序里面加以區(qū)別調(diào)用即可.
AutoCAD是在三維直角坐標(biāo)系中繪圖.對(duì)于某一類的工程制圖項(xiàng)目,只要指定參數(shù),比如長(zhǎng),寬,高,角度等,確定好直線的起點(diǎn)坐標(biāo),就可以推算出直線的終點(diǎn)坐標(biāo),確定坐標(biāo)系中的任意直線,從而可以繪制出工程圖紙的輪廓線.工程圖紙中的其它一些效果如填充,標(biāo)注等等通過指定范圍和起點(diǎn)坐標(biāo)實(shí)現(xiàn)在工程圖紙中一一對(duì)應(yīng),由此可以得到完整漂亮的Auto-CAD工程圖紙.對(duì)于繪圖起點(diǎn)坐標(biāo)規(guī)定,最重要的一點(diǎn)要保證所有圖形元素都落在模版圖簽內(nèi),兼顧工程圖紙的整潔美觀性要求.以設(shè)計(jì)參數(shù)為已知量,推算各CAD圖形對(duì)象的位置坐標(biāo),和關(guān)鍵控制點(diǎn)坐標(biāo).
2.3.1 引用 TeighaX組件
參數(shù)化設(shè)計(jì)的前提是保證開發(fā)者安裝有相應(yīng)的開發(fā)平臺(tái),本文采用的開發(fā)平臺(tái)是VS2005,開發(fā)環(huán)境為C#.當(dāng)然如果讀者對(duì)其他程序語言更加熟悉也可以采用其他開發(fā)環(huán)境.
安裝 TeighaX組件,啟動(dòng) VS2005,新建C#Windows應(yīng)用程序項(xiàng)目,引用TeighaX組件.這一步是相當(dāng)重要的,因?yàn)閰?shù)化設(shè)計(jì)是基于TeighaX組件的,沒有這個(gè)引用參數(shù)化設(shè)計(jì)無從談起.
2.3.2 程序基本界面設(shè)計(jì)
Windows應(yīng)用程序具有用事件驅(qū)動(dòng)特性.基于TeighaX組件的參數(shù)化設(shè)計(jì)中,Windows應(yīng)用程序包括一系列click點(diǎn)擊事件,引用TeighaX組件后,Windows應(yīng)用程序主界面上可設(shè)置Button,TeighaX等組件和控件.如圖2所示,界面從上至下依次有:Button(Button1),還有 TeighaX 控件:(注:圖中DWGDirectX2.07control即TeighaX控件).控件顯示范圍大小、背景色,界面的布局根據(jù)工程參數(shù)化設(shè)計(jì)需要而定.在Windows應(yīng)用程序界面上設(shè)置Textbox用來存放需要設(shè)置的參數(shù),傳遞給主程序.Label標(biāo)簽用來對(duì)Textbox參數(shù)進(jìn)行注釋.設(shè)置button(參數(shù)賦值)按鈕,點(diǎn)擊按鈕參數(shù)傳遞給主程序.

圖2 程序界面設(shè)計(jì)圖
2.3.3 實(shí)例化對(duì)象
1)文件讀取.利用TeighaX組件提供的數(shù)據(jù)接口,對(duì)Dwg文件進(jìn)行讀取操作.
2)AutoCAD圖形寫入操作.利用TeighaX組件對(duì)Dwg文件寫入操作.面向?qū)ο蟪绦蛟O(shè)計(jì)最重要的是對(duì)象實(shí)例化.在利用TeighaX組件的參數(shù)化設(shè)計(jì)中,將AutoCAD圖形看作是由一個(gè)個(gè)對(duì)象組成的.這些對(duì)象主要包括:點(diǎn)(Point)、線(UBe,Ray,Xline,Mline,Pline,Spline等)、圓(Circle)、圓弧(Arc)、塊(Block)、尺寸標(biāo)注(Dimen.sion)、填充(hatch)等.
基于C#開發(fā)環(huán)境中以添加對(duì)象的形式表達(dá)各種AutoCAD圖形.由于DWG文件中任何一個(gè)實(shí)體對(duì)象由實(shí)體頭和實(shí)體尾組成,實(shí)體頭表達(dá)的是實(shí)體對(duì)象屬性,實(shí)體尾表達(dá)的是實(shí)體的幾何參數(shù)[4].對(duì)于同一類實(shí)體,例如所有直線的實(shí)體頭屬性都是一樣的,他們的屬性都是直線.但是實(shí)體尾圖形參數(shù)卻大不相同,通過改變集合參數(shù),也就是實(shí)體尾就可以得到不同系列的直線[4].
對(duì)象實(shí)例化很重要的一個(gè)環(huán)節(jié)就是要根據(jù)設(shè)計(jì)參數(shù),把參數(shù)當(dāng)作已知量,確定對(duì)象的幾何尺寸、位置.比如,直線實(shí)例化的過程就是將設(shè)計(jì)參數(shù)當(dāng)作已知量,推算直線段長(zhǎng)度,然后確定直線起點(diǎn)坐標(biāo),根據(jù)直線長(zhǎng)度推算,直線終點(diǎn)坐標(biāo)表達(dá)式.
C#語句實(shí)例化AutoCAD對(duì)象的基本程序語句如下面所示:
指定圓心坐標(biāo)和圓半徑,繪制一個(gè)圓:double[]center1={x,y,0};
double Radius1=rad;
odaDoc. ModelSpace. AddCircle (center1,Radius1);
指定起點(diǎn)和終點(diǎn)坐標(biāo),繪制一條實(shí)線:double[]point1={x1,y1,0};
double[]point2={x,y,0};odaDoc.ModelSpace.AddLine(point1,point2);指定需要標(biāo)注的直線和線性標(biāo)注起點(diǎn)坐標(biāo),繪制線性標(biāo)注:
double[]point01={x1,y1,0};double[]point02={x2,y2,0};double[]dim1={x3,y3,0};
odaDoc.ModelSpace.AddDimAligned(point01,point03,dim1);
2.3.4 圖形的顯示
圖形寫入操作完畢之后要把圖形正確的顯示在控件的繪圖界面上面,因此需要對(duì)繪圖界面上的圖形進(jìn)行定位,對(duì)修改之后圖形更新,設(shè)置控件背景顏色.
2.3.5 參數(shù)賦值
參數(shù)的設(shè)置根據(jù)具體項(xiàng)目的需求,一般常見設(shè)置為長(zhǎng)度、半徑、角度等.
2.3.6 穩(wěn)定計(jì)算
根據(jù)設(shè)定參數(shù)對(duì)水工結(jié)構(gòu)進(jìn)行穩(wěn)定計(jì)算.根據(jù)不同類型的水工建筑物比如:重力壩、拱壩、導(dǎo)流隧洞等等,針對(duì)不同類型水工建筑物采取相應(yīng)的穩(wěn)定計(jì)算方法,編寫穩(wěn)定計(jì)算函數(shù),進(jìn)行穩(wěn)定計(jì)算校核.若穩(wěn)定計(jì)算結(jié)果符合要求,進(jìn)入下一步.反之,參數(shù)化設(shè)計(jì)從力學(xué)穩(wěn)定性上不合理,重新設(shè)計(jì)斷面尺寸,重新給參數(shù)賦值,直到新的斷面設(shè)計(jì)滿足力學(xué)穩(wěn)定,進(jìn)入下一步.
2.3.7 結(jié)果和保存
經(jīng)過以上步驟之后,外部參數(shù)已經(jīng)傳遞給繪圖主程序了.在Windows應(yīng)用程序界面上點(diǎn)擊確認(rèn)按鈕對(duì)Dwg文件進(jìn)行寫入操作,并保存輸出結(jié)果.TeighaX控件界面上顯示出經(jīng)過寫入操作后的AutoCAD圖形.經(jīng)過更改的模版圖形“F:\standard.dwg”自動(dòng)保存為“F:\finished.dwg”.“F:\finished.dwg”存放最終的工程圖紙.
本文提供一個(gè)基于TeighaX組件的參數(shù)化設(shè)計(jì)在水利工程中的應(yīng)用.在水利工程中經(jīng)常會(huì)遇到設(shè)計(jì)重力壩剖面圖的項(xiàng)目.某水利樞紐,大壩為重力壩,為Ⅰ級(jí)建筑物,混凝土與基巖間的f值為0.6,荷載組合為基本組合.根據(jù)TeighaX組件參數(shù)化設(shè)計(jì)步驟,模版創(chuàng)作和參數(shù)計(jì)算為前期準(zhǔn)備工作.本例中針對(duì)重力壩剖面圖,模版創(chuàng)作為一幅A3標(biāo)準(zhǔn)圖簽;參數(shù)設(shè)置為壩高,上游坡度,壩底寬度,下游坡度,死水位高度,根據(jù)所給參數(shù)推算剖面圖的關(guān)鍵點(diǎn)坐標(biāo).
安裝TeighaX組件,啟動(dòng) VS2005,新建一個(gè)Windows應(yīng)用程序項(xiàng)目,引用 TeighaX(DWGdirectX)組件.組件引用成功打開主程序引用目錄顯示如圖3所示.

圖3 重力壩剖面參數(shù)化設(shè)計(jì)實(shí)例引用組件
在Windows應(yīng)用程序界面上設(shè)置按鈕,命名為繪圖,點(diǎn)擊繪圖,執(zhí)行寫入操作.界面中的6個(gè)textbox分別用來存放設(shè)計(jì)參數(shù):壩高、上游坡度、壩底寬度、壩頂寬度、下游坡度、死水位.點(diǎn)擊強(qiáng)度穩(wěn)定計(jì)算按鈕,執(zhí)行強(qiáng)度穩(wěn)定計(jì)算函數(shù),進(jìn)行強(qiáng)度穩(wěn)定計(jì)算.點(diǎn)擊抗滑穩(wěn)定計(jì)算按鈕,執(zhí)行抗滑穩(wěn)定計(jì)算函數(shù)進(jìn)行抗滑穩(wěn)定計(jì)算.DwgdirectX控件尺寸為:長(zhǎng)717像素,寬345像素.程序基本界面見圖4.

圖4 重力壩剖面參數(shù)化設(shè)計(jì)實(shí)例主程序基本界面設(shè)計(jì)
3.3.1 文件讀取
讀取DWG模板文件,文件的圖形為一標(biāo)準(zhǔn)A3圖簽,存放在F:\standard.dwg目錄下.
文件讀取C#語句:OdaHost=newTeighaX.OdaHostAppClass();
odaApp=OdaHost.Application;
odaDoc= odaApp.Documents.Open(“F:\standard.dwg”,false,(object)“”)
3.3.2 圖形寫入操作
由于程序內(nèi)部比較復(fù)雜,具體AutoCAD中圖形元素如:直線,標(biāo)注,填充等等的繪制,根據(jù)參數(shù)推求的坐標(biāo)點(diǎn),結(jié)合TeighaX組件幫助文檔[6]可以實(shí)現(xiàn).以下結(jié)合本例簡(jiǎn)單敘述一些C#對(duì)象實(shí)例化參考語句.
繪制一條指定坐標(biāo)起點(diǎn)和終點(diǎn)直線:double[]point1 = {685.3653,485.9180,0};
double[]point2={685.3653+h0*a1,485.9180+h0,0};
odaDoc.ModelSpace.AddLine(point1,point2);
繪制一個(gè)線性對(duì)齊標(biāo)注:double[]dim1={666.3783,489.9180,0 };
double[]dim2={679.1533,489.0240,0};
odaDoc.ModelSpace.AddDimAligned(point1,point2,dim2);
本例中的參數(shù)設(shè)置包括如圖5所示的壩高:120 m,上游坡度:0.5,壩底寬度:88m,壩頂寬度:8m,下游坡度:3.5,死水位高度:25m.
參數(shù)賦值完畢之后點(diǎn)擊設(shè)定參數(shù)按鈕,參數(shù)傳遞給主程序.

圖5 重力壩剖面參數(shù)化設(shè)計(jì)實(shí)例中的參數(shù)設(shè)賦值和傳遞
設(shè)置好參數(shù)之后進(jìn)行抗滑穩(wěn)定計(jì)算校核和強(qiáng)度穩(wěn)定校核,穩(wěn)定計(jì)算校核均采用材料力學(xué)方法.
3.5.1 強(qiáng)度穩(wěn)定
強(qiáng)度穩(wěn)定校核將重力壩視作懸臂梁,根據(jù)材料力學(xué)公式[7],計(jì)算危險(xiǎn)截面,危險(xiǎn)點(diǎn)的應(yīng)力,本例計(jì)算校核壩踵壩趾位置的最大主應(yīng)力σ.查閱混凝土重力壩設(shè)計(jì)規(guī)范[8],水工建筑物壩體混凝土允許的最大拉應(yīng)力值0.1Mp,當(dāng)σ>0.1Mp壩踵位置最先拉裂破壞;當(dāng)σ≤0.1Mp壩體混凝土滿足強(qiáng)度穩(wěn)定要求.
應(yīng)力計(jì)算公式[7]:

3.5.2 抗滑穩(wěn)定計(jì)算
抗滑穩(wěn)定計(jì)算采用剛體極限平衡法,根據(jù)材料力學(xué)抗剪強(qiáng)度公式計(jì)算抗剪強(qiáng)度穩(wěn)定系數(shù).查閱混凝土重力壩設(shè)計(jì)規(guī)范,當(dāng)水工建筑物(假定為Ⅰ級(jí)建筑物)的抗滑穩(wěn)定系數(shù)K≥3.0,滿足抗滑穩(wěn)定要求.
抗滑穩(wěn)定計(jì)算公式[7]:

3.5.3 抗滑穩(wěn)定計(jì)算程序編寫
根據(jù)計(jì)算公式,編寫穩(wěn)定計(jì)算程序,在程序界面上設(shè)置強(qiáng)度穩(wěn)定計(jì)算按鈕和抗滑穩(wěn)定計(jì)算按鈕.點(diǎn)擊強(qiáng)度穩(wěn)定計(jì)算按鈕,當(dāng)強(qiáng)度穩(wěn)定滿足要求時(shí)程序運(yùn)行結(jié)果提示框顯示:強(qiáng)度穩(wěn)定計(jì)算結(jié)果,強(qiáng)度穩(wěn)定系數(shù)a0=a,a≤0.1Mp,穩(wěn)定計(jì)算結(jié)果滿足要求;當(dāng)強(qiáng)度穩(wěn)定不滿足要求時(shí)程序運(yùn)行結(jié)果提示框顯示:強(qiáng)度穩(wěn)定計(jì)算結(jié)果,強(qiáng)度穩(wěn)定系數(shù)a0=a,a>0.1Mp,穩(wěn)定計(jì)算結(jié)果不滿足要求.點(diǎn)擊抗滑穩(wěn)定計(jì)算按鈕,當(dāng)抗滑穩(wěn)定滿足要求時(shí)程序運(yùn)行結(jié)果提示框顯示:抗滑穩(wěn)定計(jì)算結(jié)果,抗滑穩(wěn)定系數(shù)K0=K,K≥3.0,穩(wěn)定計(jì)算結(jié)果滿足要求;當(dāng)抗滑穩(wěn)定不滿足要求時(shí)程序運(yùn)行結(jié)果提示框顯示:抗滑穩(wěn)定計(jì)算結(jié)果,抗滑穩(wěn)定系數(shù)K0=K,K<3.0,穩(wěn)定計(jì)算結(jié)果不滿足要求.
3.5.4 穩(wěn)定計(jì)算結(jié)果
根據(jù)4.5中傳遞到主程序的的重力壩剖面參數(shù)和工程參數(shù)編寫好強(qiáng)度穩(wěn)定系數(shù)和抗滑穩(wěn)定系數(shù)計(jì)算函數(shù),本例中點(diǎn)擊強(qiáng)度穩(wěn)定計(jì)算程序運(yùn)行提示框顯示如圖6所示,抗滑穩(wěn)定系數(shù)計(jì)算程序運(yùn)行提示框顯示如圖7所示,穩(wěn)定計(jì)算結(jié)果滿足要求.

本例中設(shè)置了圖形寫入操作完畢后,圖形顯示更新一次.控件界面的中心點(diǎn)設(shè)置為{760.869 7,544.582 2,0}.背景顏色設(shè)置為黑色.
圖形顯示C#語句參考如下:
oDevice= (VIEWXLib.IOdaDevice2)axOda-Viewer1.DeviceManager().NewDevice(“Open-GL”);
oDevice.UseCache=false;
oView = oDevice.SetupActiveLayoutViews((VIEWXLib.IAcadDatabase)odaDoc.Database);
oView.Zoom(2);
oDevice.BackgroundColor=new int[3]{0,0,0};
IAcadViewports viewports= odaDoc.Viewports;
double[]center5={760.8697,544.5822,};
viewports.Item(0).Center=center5;
oDevice.Update();
完成以上步驟,點(diǎn)擊繪圖按鈕.得到如圖8所示結(jié)果.繪制好的圖形已經(jīng)存在了指定盤符本例中存放在“F:\finished.dwg”根目錄下.
保存DWG文件C#語句:odaDoc.SaveAs(“F:\finished.dwg”,OdSaveAsType.odR18_dwg,null).

圖8 重力壩剖面參數(shù)化設(shè)計(jì)實(shí)例設(shè)計(jì)最終結(jié)果圖
使用傳統(tǒng)手段進(jìn)行重力壩剖面設(shè)計(jì)并用Auto-CAD出圖,是一個(gè)復(fù)雜的過程,如果算得的剖面不滿足穩(wěn)定計(jì)算要求,則要對(duì)剖面進(jìn)行重新設(shè)計(jì),Auto-CAD圖也要重新繪制.而基于TeighaX組件的Autocad參數(shù)化設(shè)計(jì)如果剖面穩(wěn)定計(jì)算不滿足要求只需要重新設(shè)置參數(shù),進(jìn)行計(jì)算,從整個(gè)設(shè)計(jì)流程來看傳統(tǒng)計(jì)算是純?nèi)斯さ模襟E較多,而利用編程技術(shù)將重力壩剖面設(shè)計(jì)一體化到程序里面,工程師僅需要給參數(shù)正確賦值就可以完成設(shè)計(jì).TeighaX組件的Autocad參數(shù)化設(shè)計(jì)在本文中的應(yīng)用能夠方便快捷的解決工程制圖的高效化信息化問題.充分運(yùn)用電子計(jì)算機(jī)編程技術(shù)和水利工程的專業(yè)技術(shù),體現(xiàn)了學(xué)科交叉的特點(diǎn).
由于TeighaX能夠脫離AutoCAD平臺(tái),讀寫保存DWG文件等等.因此,利用這個(gè)組件可以對(duì)AutoCAD參數(shù)化設(shè)計(jì).在文章的重力壩參數(shù)化設(shè)計(jì)實(shí)例中,工程圖紙的結(jié)構(gòu)內(nèi)容相對(duì)比較單一簡(jiǎn)單,因此CAD二次開發(fā)的時(shí)候有許多TeighaX參數(shù)化設(shè)計(jì)中的對(duì)象都沒有用到,比較單一,所寫程序也比較簡(jiǎn)單,但是任何復(fù)雜的東西都是由簡(jiǎn)單的東西融合成復(fù)雜的東西.本文中對(duì)TeighaX參數(shù)化設(shè)計(jì)的應(yīng)用具有一定的局限性,在這里本文提供一個(gè)比較有意義的思路,根據(jù)工程需求,確定好參數(shù),可以寫出更為復(fù)雜,更加高效率的程序,解決更加復(fù)雜的自動(dòng)化制圖問題.而且不一定要選用C#作為開發(fā)語言,可以選用其他更加方便的語言.
目前國(guó)內(nèi)許多AutoCAD制圖工程師都采用的是人工制圖,循著這條思路在不遠(yuǎn)的將來也許可以通過這種AutoCAD參數(shù)化設(shè)計(jì)技術(shù)解決同一類型的復(fù)雜的,工作量大的制圖的問題.這將會(huì)節(jié)約大量的勞動(dòng)力,使制圖工作更加高效準(zhǔn)確.甚至還可以有這樣一條思路,將制圖設(shè)計(jì)一體化在軟件當(dāng)中只要用戶輸入特定的參數(shù),就能夠馬上設(shè)計(jì)出來如圖中例所示的重力壩典型剖面.
[1]沈劍英,褚蓮娣.用VisualLISP編程實(shí)現(xiàn)參數(shù)化繪圖[J].機(jī)械工程及其自動(dòng)化,2003(2):27-28.
[2]王懷球,蔣月姣.AutoCAD中用VBA進(jìn)行CAD二次開發(fā)在工程測(cè)量中的應(yīng)用[J].數(shù)字技術(shù)及應(yīng)用,2011(5):119-120.
[3]王維鳳.基于ObjectARX的水工輔助設(shè)計(jì)系統(tǒng)開發(fā)[J].水科學(xué)與工程技術(shù),2011(2):43-44.
[4]肖起年.基于DWGDirectX讀寫DWG圖紙文件的實(shí)現(xiàn)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2009,18(3):164-167.
[5]Open design Alliance.Itroduce of the ODA[EB/OL].http://www.opendesign.com.2011.2/2011.12.
[6]ODA.DWGDirectX1.12+幫助文檔chm[CP/OL].http://download.csdn.net.2011.1/2011.12.
[7]林繼鏞.水工建筑物[M].5版.北京:中國(guó)水利水電出版社,2009:44-56.
[8]SL319-2005.混凝土重力壩設(shè)計(jì)規(guī)范[S].北京:中國(guó)水利水電出版社,2005.