亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        VBA在AutoCAD渠道橫斷面繪圖中的應(yīng)用

        2016-12-26 02:23:20付少波
        廣東水利水電 2016年8期
        關(guān)鍵詞:橫斷面圖層繪圖

        付少波,王 超

        (廣東省水利水電科學(xué)研究院,廣東省水動(dòng)力學(xué)應(yīng)用研究重點(diǎn)實(shí)驗(yàn)室,廣東 廣州 510635)

        ?

        VBA在AutoCAD渠道橫斷面繪圖中的應(yīng)用

        付少波,王 超

        (廣東省水利水電科學(xué)研究院,廣東省水動(dòng)力學(xué)應(yīng)用研究重點(diǎn)實(shí)驗(yàn)室,廣東 廣州 510635)

        通過VBA編程,建立AutoCAD的模型空間和Excel表格中特征參數(shù)聯(lián)系,批量繪制渠道橫斷面。通過實(shí)例證明該方法可有效減少工作量,提高工作效率。

        AutoCAD;VBA;Excel;橫斷面

        渠道設(shè)計(jì)是農(nóng)田水利設(shè)計(jì)的重要組成部分。在渠道設(shè)計(jì)中,設(shè)計(jì)人員常以Excel為工具來進(jìn)行渠道各項(xiàng)水利特征數(shù)據(jù)計(jì)算與試算,并根據(jù)有關(guān)計(jì)算結(jié)果利用AutoCAD繪制圖紙。渠道橫斷面繪圖過程存在操作步驟重復(fù)率高、準(zhǔn)確度差且批量修改困難等問題,給繪圖人員帶來很大困擾。

        經(jīng)過筆者探索與實(shí)踐,通過AutoCAD 內(nèi)嵌的VBA(Visual Basic For Applications)進(jìn)行二次開發(fā),可以實(shí)現(xiàn)Excel中有關(guān)特征參數(shù)直接批量導(dǎo)入AutoCAD中[1-2],并以此為依據(jù)繪制渠道橫斷面圖。這種方法提高了繪圖效率,形成了統(tǒng)一格式,提高了繪圖準(zhǔn)確度,便于批量修改。

        1 編制思路

        1.1 渠道橫斷面繪圖中遇到的問題

        渠道橫斷面設(shè)計(jì)的過程中,為滿足各設(shè)計(jì)階段橫斷面間距的要求,常常存在斷面形式變化不大的情況下,繪制許多尺寸不同,形式類似圖形的問題。渠道橫斷面繪圖過程中要反復(fù)參照Excel表格計(jì)算出的數(shù)據(jù),再根據(jù)相關(guān)特征參數(shù)進(jìn)行繪圖。例如設(shè)計(jì)渠底高程、設(shè)計(jì)水位、渠道幾何尺寸等。

        以廣東省仁化縣農(nóng)田水利重點(diǎn)縣(2013年度)灌區(qū)明渠改造為例,項(xiàng)目區(qū)有1條總長12.886 km干渠需要進(jìn)行改造,施工圖方案為在原有矩形渠道基礎(chǔ)上,襯砌擋墻并將渠道加高至設(shè)計(jì)值,部分渠段根據(jù)需要加設(shè)蓋板。根據(jù)施工圖出圖要求每隔50 m繪制1張渠道橫斷面圖,該干渠全段需繪制258個(gè)橫斷面,繪圖任務(wù)工作量很大[3]。

        1.2 程序編制思路

        以AutoCAD中內(nèi)嵌的VBA為工具,建立Excel表格中相關(guān)數(shù)據(jù)與AutoCAD的模型空間連接,通過參數(shù)(見圖1)的調(diào)用與循環(huán),依次分圖層完成繪圖、標(biāo)注、位移等操作,設(shè)計(jì)思路見圖2。

        圖1 基礎(chǔ)數(shù)據(jù)表

        圖2 關(guān)鍵方法實(shí)現(xiàn)的流程示意

        2 主要代碼部分

        2.1 數(shù)據(jù)提取

        利用循環(huán)嵌套語句將Excel數(shù)據(jù)表中與繪圖有關(guān)的數(shù)據(jù)讀取到二維數(shù)組內(nèi)。主要代碼如下:

        Setxlapp=CreateObject(“excel.application”)

        Setxlbook=xlapp.workbooks.Open(“C:Desktop1.xlsx”)′打開Excel工作簿的路徑

        xlapp.Visible=False

        Set xlsheet=xlbook.worksheets(“渠道改造特性表”) ′打開Excel中的工作表

        Dim w(1 To 259, 10) As String′建立二維數(shù)組讀取數(shù)據(jù)

        For j=1 To 10

        For i=2 To 259 Step 1

        w(i, j)=xlsheet.cells(i, j)

        Val (w(i, j)) ′將讀取的數(shù)據(jù)轉(zhuǎn)化為數(shù)值型

        i=i+1

        Next i

        j=j+1

        Next j

        2.2 圖形繪制

        通過讀取變量定出繪制圖形坐標(biāo),用劃線命令[4]完成繪圖。以渠道底邊為例,主要代碼部分如下:

        Dim mospace As AcadModelSpace

        Set mospace=ThisDrawing.ModelSpace

        Dim lineobj As AcadLine

        DimiAs Integer

        For i=2 To 259 Step 1

        j=5

        startpoint(0)=0+a

        startpoint(1)=0+c

        startpoint(2)=0

        endpoint(0)=startpoint(0)+w(i, j)

        endpoint(1)=0+c

        endpoint(2)=0

        ′ThisDrawing.ActiveLayer=ThisDrawing.Layers.Item(“原有渠道斷面”)′將當(dāng)前圖層設(shè)置為原有渠道斷面圖層

        Set lineobj=mospace.AddLine(startpoint, endpoint) ′底邊

        i=i+1

        Next i

        其他線位置以此為基準(zhǔn)點(diǎn),依次引用相關(guān)變量繪出,代碼不重復(fù)列出。

        2.3 尺寸標(biāo)注繪制

        定義標(biāo)注樣式,尺寸界限位置,偏移值等屬性,通過標(biāo)注命令完成標(biāo)注。以底邊標(biāo)注[5]為例,主要代碼部分如下:

        ThisDrawing.ActiveLayer=ThisDrawing.Layers.Item(“標(biāo)注”)′將當(dāng)前圖層設(shè)置為標(biāo)注圖層

        ThisDrawing.ActiveDimStyle=ThisDrawing.DimStyles.Item(“TestDimStyle”)’將TestDimStyle視為當(dāng)前標(biāo)樣式

        Dim retval As AcadDimAligned

        Dim ExtLinelPoint(0 To 2) As Double

        Dim ExtLine2Point(0 To 2) As Double

        Dim textposition(0 To 2) As Double

        ExtLinelPoint(0)=startpoint(0)

        ExtLinelPoint(1)=startpoint(1)-0.6 ′尺寸界限偏移值

        ExtLinelPoint(2)=0

        ExtLine2Point(0)=endpoint(0)

        ExtLine2Point(1)=endpoint(1)-0.6 ′尺寸界限偏移值

        ExtLine2Point(2)=0

        textposition(0)=1

        textposition(1)=startpoint(1)-0.8 ′尺寸標(biāo)注文字位置

        textposition(2)=1

        Set retval=ThisDrawing.ModelSpace.AddDimAligned(ExtLinelPoint, ExtLine2Point, textposition)’添加尺寸標(biāo)注

        2.4 塊類型標(biāo)注添加

        在模型空間添加塊,定義塊名稱,通過相關(guān)參數(shù)調(diào)用確定位置,執(zhí)行插入塊命令。以添加水位標(biāo)識(shí)為例,主要代碼部分如下:

        ThisDrawing.ActiveLayer= ThisDrawing.Layers.Item(“水位”) ′將當(dāng)前圖層設(shè)置為水位標(biāo)志圖層

        Dim blockObj As AcadBlockReference

        Dim insertblock1(0 To 2) As Double

        insertblock1(0)=startpoint(0)+kd(i) / 2′確定水位標(biāo)識(shí)位置

        insertblock1(1)=startpoint(1)+sw(i)+0.1

        insertblock1(2)=startpoint(2)

        Set blockObj=ThisDrawing.ModelSpace.InsertBlock(insertblock1, “water level”, 1, 1, 1, 0) ′ 插入塊

        根據(jù)需要可完成添加打斷線、漿砌石等塊類型符號(hào)的插入,代碼不重復(fù)列出。

        2.5 文字類標(biāo)注添加

        調(diào)用樁號(hào)變量并加上指定字符串,組成要求的格式,確定插入位置,通過添加文字命令,添加樁號(hào)文字。以添加樁號(hào)為例,主要代碼部分如下:

        ThisDrawing.ActiveLayer=ThisDrawing.Layers.Item(“樁號(hào)”) ′將當(dāng)前圖層設(shè)置為樁號(hào)圖層

        Dim textObj As AcadText ′增加樁號(hào)

        Dim textString As String

        Dim insertionPoint(0 To 2) As Double

        Dim height As Double

        textString=zh(i) & “改造斷面圖”

        insertionPoint(0)=startpoint(0)

        insertionPoint(1)=startpoint(1)-1.03

        insertionPoint(2)=0

        height=0.15’文字高度

        Set textObj=ThisDrawing.ModelSpace.AddText(textString, insertionPoint, height)’插入樁號(hào)文字

        根據(jù)需要可添加其它文字類標(biāo)注信息,代碼不重復(fù)列出。

        2.6 圖形位置的判定

        在循環(huán)外定義a、b、c、d,初始值均為0。進(jìn)入循環(huán)則進(jìn)行累加和計(jì)數(shù),用來判斷是否換行,是否執(zhí)行完畢。主要代碼如下:

        在繪圖循環(huán)內(nèi)

        a=a+9.1 ′x軸間距

        b=b+1

        d=d+1

        If b=3 Then ′換行

        a=0 ′x的值

        b=0 ′計(jì)數(shù)歸零

        c=c-6.36 ′y軸間距

        End If

        If d=8 Then ′計(jì)數(shù)除圖簽位置的圖形

        a=0 ′x的值

        c=c-8.28 ′y軸間距

        b=0

        d=0 ′計(jì)數(shù)歸零

        End If

        圖3 執(zhí)行結(jié)果示意

        3 結(jié)語

        通過基于AutoCAD的VBA二次開發(fā),建立Excel數(shù)據(jù)表與AutoCAD模型空間連接,實(shí)現(xiàn)了批量化、標(biāo)準(zhǔn)化、快速化、屬性化作圖。本例如按普通方法繪圖,1人需要10 d左右完成繪制。采用上述方法程序開發(fā)時(shí)間1 d,執(zhí)行時(shí)間約2 min,節(jié)約了時(shí)間,提高了效率,程序執(zhí)行結(jié)果見圖3。

        圖形各部分間采用分圖層繪圖,各圖層屬性易修改。如遇方案調(diào)整可根據(jù)修改后的參數(shù)直接執(zhí)行程序,進(jìn)行重新繪圖,提高了繪圖的效率和準(zhǔn)確性。但此方法對(duì)于一些比較短的渠道,編程部分略顯瑣碎,效率提升并不明顯。此方法在較長的渠道繪圖的處理中,有明顯優(yōu)勢(shì)。對(duì)河堤、公路等其它線性工程橫斷面繪制有參考意義。

        [1] 李長勛.AutoCAD VBA 程序開發(fā)技術(shù)[M].北京:國防工業(yè)出版社,2004.

        [2] 張帆.AutoCAD 二次開發(fā)教程[ M] .北京:清華大學(xué)出版社,2006.

        [3] 廣東省水利廳.廣東省中型灌區(qū)續(xù)建配套與節(jié)水改造工程初步設(shè)計(jì)報(bào)告編制指南[R].廣州: 廣東省水利廳,2011.

        [4] 符裕紅,張代杰. AutoCAD VBA 在渠道縱斷面設(shè)計(jì)中的應(yīng)用[J].中國農(nóng)村水利水電,2009,9(1):133-136.

        [5] 黎富忠, 顏景順. 在AutoCAD 中實(shí)現(xiàn)斷面數(shù)據(jù)的自動(dòng)生成與繪圖[J].廣西水利水電,2011(1):32-34.

        (本文責(zé)任編輯 王瑞蘭)

        Application of VBA to AutoCAD Channel Cross Section Drawing

        FU Shaobo, WANG Chao

        (Guangdong Research Institute of Water Resources and Hydropower, Key Laboratory of Hydrodynamics Research, Guangzhou 510635, China)

        This paper carries on procedural programming by using VBA. It connects the model space of AutoCAD with the characteristic data in the Excel that the programming draws the batch construction of ditches at one shot. It is proved that this method can both reduce workload and improve work efficiency.

        AutoCAD, VBA, Excel, cross-section

        2016-07-18;

        2016-07-30

        付少波(1990),男,本科,助理工程師,從事水利水電工程設(shè)計(jì)工作。

        TV391.72

        A

        1008-0112(2016)08-0061-04

        猜你喜歡
        橫斷面圖層繪圖
        來自河流的你
        中國三峽(2022年7期)2022-12-02 05:28:02
        “禾下乘涼圖”繪圖人
        城市道路橫斷面設(shè)計(jì)研究
        基于HTML5 Canvas繪圖技術(shù)應(yīng)用
        巧用混合圖層 制作抽象動(dòng)感森林
        廣州市健康體檢人群種植修復(fù)情況的橫斷面研究
        圖層法在地理區(qū)域圖讀圖中的應(yīng)用
        2014年某院醫(yī)院感染橫斷面調(diào)查
        Surfer和ArcView結(jié)合在氣象繪圖中的應(yīng)用
        河北遙感(2015年2期)2015-07-18 11:11:14
        中醫(yī)院醫(yī)院感染橫斷面調(diào)查分析
        精品国产福利片在线观看| 午夜精品久久久久久久无码| 国产精品视频露脸| 午夜一级成人| 中文乱码字幕在线中文乱码| 一区二区三区国产色综合| 中文字幕网伦射乱中文| 厨房玩丰满人妻hd完整版视频| 精品一区二区三区在线观看l| 国产一区二区三区小向美奈子| 亚洲精品欧美精品日韩精品| 亚洲av男人的天堂在线观看| 久久国产精品99精品国产987| 久久精品一区一区二区乱码| 国产成人无码a区在线观看导航| 越猛烈欧美xx00动态图| 中文字幕精品一二三区| 久久久精品网站免费观看| 国产精品私密保养| 国产真人无码作爱视频免费| 国产精品成人av电影不卡| 亚洲av专区一区二区| 亚洲av无码久久| 中文在线√天堂| 精选二区在线观看视频| 日韩精品极品免费视频观看 | 91九色极品探花内射| 亚洲av无码成人精品区狼人影院| 四虎成人精品无码永久在线| 国产免费激情小视频在线观看| 成人国产激情自拍视频| 中国老熟妇自拍hd发布| 99久久超碰中文字幕伊人| 国产亚洲3p一区二区| 欧美成人精品a∨在线观看| 四虎国产精品永久在线无码| 精选二区在线观看视频| 精品综合一区二区三区| 亚洲精品综合一区二区| 最新手机国产在线小视频| 在教室轮流澡到高潮h免费视|