999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

VBA在AutoCAD渠道橫斷面繪圖中的應用

2016-12-26 02:23:20付少波
廣東水利水電 2016年8期
關鍵詞:設計

付少波,王 超

(廣東省水利水電科學研究院,廣東省水動力學應用研究重點實驗室,廣東 廣州 510635)

?

VBA在AutoCAD渠道橫斷面繪圖中的應用

付少波,王 超

(廣東省水利水電科學研究院,廣東省水動力學應用研究重點實驗室,廣東 廣州 510635)

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

AutoCAD;VBA;Excel;橫斷面

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

經過筆者探索與實踐,通過AutoCAD 內嵌的VBA(Visual Basic For Applications)進行二次開發,可以實現Excel中有關特征參數直接批量導入AutoCAD中[1-2],并以此為依據繪制渠道橫斷面圖。這種方法提高了繪圖效率,形成了統一格式,提高了繪圖準確度,便于批量修改。

1 編制思路

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

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

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

1.2 程序編制思路

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

圖1 基礎數據表

圖2 關鍵方法實現的流程示意

2 主要代碼部分

2.1 數據提取

利用循環嵌套語句將Excel數據表中與繪圖有關的數據讀取到二維數組內。主要代碼如下:

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′建立二維數組讀取數據

For j=1 To 10

For i=2 To 259 Step 1

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

Val (w(i, j)) ′將讀取的數據轉化為數值型

i=i+1

Next i

j=j+1

Next j

2.2 圖形繪制

通過讀取變量定出繪制圖形坐標,用劃線命令[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(“原有渠道斷面”)′將當前圖層設置為原有渠道斷面圖層

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

i=i+1

Next i

其他線位置以此為基準點,依次引用相關變量繪出,代碼不重復列出。

2.3 尺寸標注繪制

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

ThisDrawing.ActiveLayer=ThisDrawing.Layers.Item(“標注”)′將當前圖層設置為標注圖層

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

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 ′尺寸標注文字位置

textposition(2)=1

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

2.4 塊類型標注添加

在模型空間添加塊,定義塊名稱,通過相關參數調用確定位置,執行插入塊命令。以添加水位標識為例,主要代碼部分如下:

ThisDrawing.ActiveLayer= ThisDrawing.Layers.Item(“水位”) ′將當前圖層設置為水位標志圖層

Dim blockObj As AcadBlockReference

Dim insertblock1(0 To 2) As Double

insertblock1(0)=startpoint(0)+kd(i) / 2′確定水位標識位置

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

insertblock1(2)=startpoint(2)

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

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

2.5 文字類標注添加

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

ThisDrawing.ActiveLayer=ThisDrawing.Layers.Item(“樁號”) ′將當前圖層設置為樁號圖層

Dim textObj As AcadText ′增加樁號

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)’插入樁號文字

根據需要可添加其它文字類標注信息,代碼不重復列出。

2.6 圖形位置的判定

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

在繪圖循環內

a=a+9.1 ′x軸間距

b=b+1

d=d+1

If b=3 Then ′換行

a=0 ′x的值

b=0 ′計數歸零

c=c-6.36 ′y軸間距

End If

If d=8 Then ′計數除圖簽位置的圖形

a=0 ′x的值

c=c-8.28 ′y軸間距

b=0

d=0 ′計數歸零

End If

圖3 執行結果示意

3 結語

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

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

[1] 李長勛.AutoCAD VBA 程序開發技術[M].北京:國防工業出版社,2004.

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

[3] 廣東省水利廳.廣東省中型灌區續建配套與節水改造工程初步設計報告編制指南[R].廣州: 廣東省水利廳,2011.

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

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

(本文責任編輯 王瑞蘭)

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),男,本科,助理工程師,從事水利水電工程設計工作。

TV391.72

A

1008-0112(2016)08-0061-04

猜你喜歡
設計
二十四節氣在平面廣告設計中的應用
河北畫報(2020年8期)2020-10-27 02:54:06
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
基于PWM的伺服控制系統設計
電子制作(2019年19期)2019-11-23 08:41:36
基于89C52的32只三色LED搖搖棒設計
電子制作(2019年15期)2019-08-27 01:11:50
基于ICL8038的波形發生器仿真設計
電子制作(2019年7期)2019-04-25 13:18:16
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
從平面設計到“設計健康”
商周刊(2017年26期)2017-04-25 08:13:04
主站蜘蛛池模板: 三上悠亚在线精品二区| 亚洲天堂网视频| 免费看a级毛片| 朝桐光一区二区| 欧美成人综合视频| 黄色网址手机国内免费在线观看| 中文字幕亚洲综久久2021| 亚洲欧美一级一级a| 国产屁屁影院| 免费一级无码在线网站 | 亚洲日韩每日更新| 999国产精品永久免费视频精品久久 | 免费观看亚洲人成网站| 亚洲综合狠狠| 在线视频97| 992Tv视频国产精品| 亚洲精品天堂在线观看| 国产精品久久自在自线观看| 亚洲Va中文字幕久久一区 | 国产二级毛片| 91精品福利自产拍在线观看| Jizz国产色系免费| 青草视频在线观看国产| 国产精品毛片一区| 无码中字出轨中文人妻中文中| 国产女同自拍视频| 22sihu国产精品视频影视资讯| 国产青青操| 日韩在线中文| 无码免费试看| 色婷婷色丁香| 国产草草影院18成年视频| 青草娱乐极品免费视频| 国产精品蜜芽在线观看| 欧美伦理一区| 亚洲精品自拍区在线观看| 国产精品第三页在线看| 国产精品免费久久久久影院无码| 国产成本人片免费a∨短片| 91小视频在线| 国产国产人在线成免费视频狼人色| 国产青榴视频在线观看网站| 欧美精品在线看| 91av国产在线| 免费一级毛片在线播放傲雪网| 久久情精品国产品免费| 欧美成人午夜影院| 国产超碰在线观看| 午夜国产大片免费观看| 女同国产精品一区二区| 午夜精品一区二区蜜桃| 中文字幕在线视频免费| 日韩福利视频导航| 亚洲第一黄片大全| 伊人久久大线影院首页| 黄片在线永久| 亚洲经典在线中文字幕| 欧美午夜小视频| 午夜激情福利视频| 国产精品夜夜嗨视频免费视频| 一本大道视频精品人妻| 色悠久久综合| 日韩精品无码免费一区二区三区| 欧洲亚洲一区| 久视频免费精品6| 亚洲一级毛片在线播放| 无码有码中文字幕| 欧美黄网站免费观看| 欧美伦理一区| 国产视频 第一页| 国产综合日韩另类一区二区| 视频在线观看一区二区| 国产亚洲精| 国产剧情一区二区| 日本高清有码人妻| 91小视频在线| 色噜噜综合网| 亚洲无码精品在线播放| 国产女主播一区| 99在线观看视频免费| 国产91熟女高潮一区二区| 亚洲天堂精品在线观看|