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

點之記自動生成程序的實現

2013-03-03 11:44:30王保國
城市勘測 2013年3期
關鍵詞:二次開發程序數據庫

王保國

(蚌埠市勘測設計研究院,安徽蚌埠 233000)

點之記自動生成程序的實現

王保國?

(蚌埠市勘測設計研究院,安徽蚌埠 233000)

點之記是測量工作成果中不可缺少的一部分,它可以幫助工作人員迅速在實地查找控制點或路中點等,本文利用Visual Basic 2008結合.NET API在AutoCAD中開發了點之記自動生成程序,它可以自動的查找特征點并標示距離,如果沒有特征點則輸出程序日志文件,而且保存文件名均和各種工程用途相關聯,此程序可以快速的生成點之記,提高了工作效率,減少錯誤率。

點之記;特征點;.NET API

1 前 言

點之記是測繪工作中使用的比較頻繁的一種圖件,它是根據現場條件用鋼尺測量出相關特征點的距離,并繪制簡要的略圖。其作用是測量人員或其他相關人員在使用工作點時,依據點之記很方便地在實地能夠找到。使用的范圍主要在提交各種等級的GPS點、水準點、城市導線點、道路的中心點和給施工單位引測的臨時水準點等成果時,必須要有點之記的成果表。尤其是現在隨著城市的發展,道路建設越來越快,測繪單位需要根據規劃好的道路中心線在實地放樣和縱橫斷面的測量,最后把成果交付給施工單位,在這其中就有點之記的成果表。平時的做法就是在現場用鋼尺丈量距離,再繪制圖形,這樣既費時又費力,因為既然實測了地形圖,其實際位置都是準確的,那么用地形圖來生成點之記即可。

剛開始我們使用做好的模板在地形圖上進行裁切,然后保存,再打開進行編輯和保存,一直重復這樣的工作。如果遇到一條長約幾十公里的道路時,那路中點之記和水準點之記可能達到上百個,使用人工去手動完成這些重復而枯燥的工作,工作效率低下,也更容易出錯。現在計算機使用廣泛,它最擅長的就是做重復的工作,因此筆者開發了一段點之記自動生成的程序應用于工作中。

2 程序設計

2.1 開發平臺和開發語言的選擇

現階段在測繪行業中,Autodesk公司的產品Auto-CAD使用非常廣泛,在此平臺上的二次開發軟件也很多。當然AutoCAD支持的開發語言種類也多,如AutoLISP、VBA、ObjectArx、.NET API等,對于不是專業的軟件開發者,選擇一種適合自己的二次開發語言即可,沒有必要全部掌握。如果你有C++的基礎你可以學習ObjectArx,它的功能最為強大,但學習起來有點困難。如果你是正在學習.NET的軟件,如C#、VB.NET等,可以學習.NET API二次開發,因為在最新的AutoCAD 2011中,.NET API已經擁有與C++相匹配的強大功能,由于開發接口是完全面向對象的,又具有方便易用的特點,所以用.NET API來進行AutoCAD的二次開發還是比較容易掌握的。

2.2 程序設計思路

由于是自動生成點之記,那么首先要有繪制好的地形圖,而且需要點之記在圖形范圍中,為了適應各種點之記,可以分幾種常用的情況如控制點、路中點、水準點點之記等,筆者就以路中點為例。程序流程如圖1所示。

2.3 界面設計

用戶界面使用了用戶常用的工具選項板,簡潔而且實用,主要是設置點之記需要的內容,如作業員、檢查員等。如圖2所示。

3 功能及部分代碼實現

3.1 點之生成文件

在生成路中點點之記時,文件名使用里程樁號來保存,這樣可以方便對文件的管理,如圖3所示。

圖1 程序流程圖

圖2 用戶界面 圖3 文件名稱

3.2 生成日志文件

在程序生成的日志文件中,列出了點之記中沒有特征點可用的文件名。用戶在查看日志文件時,可以對其中的點之記進行手動修改。

3.3 生成點之記成果

生成的點之記會自動標注特征點距離,填入點名、坐標和相應的說明等,如圖4所示。

圖4 點之記成果

3.4 部分代碼實現

(1)在選擇道路中心線的同時,把道路名稱添加到擴展數據中,這樣在生成點之記時將會自動標注道路名稱。

'如果選擇的線性是Polyline

If TypeOf(ent)Is Polyline=True Then Tools.AddLayer("斷面道路中心線",0) plRoad=CType(ent,Polyline)

plRoad.Layer="斷面道路中心線"

polyLength=plRoad.GetDistanceAtParameter(plRoad. EndParam)

pointMarkPalette.lblLength.Text=Format(polyLength," 0.000")&"m"

'加入道路名稱的擴展數據

Tools.AddXdata("RoadName",plRoad,pointMarkPalette.strRoadName)

Else

ed.WriteMessage(vbCrLf&"該實體不是多段線")

Return End If

(2)生成點之記文件。

Using trans As Transaction=curDb.TransactionManager.Start-Transaction

'新建臨時數據庫來讀取點之記模板

Dim tempDb As New Database(False,True) '新建數據庫來生成點之記

Dim db As New Database(False,True) '使用多邊形框來選擇范圍內的實體Dim resSel As PromptSelectionResult=ed.SelectCrossingPolygon(ptColl)

播前進行種子篩選和晾曬。選種時要選粒大飽滿、純度高、不帶病蟲害的大豆種子。播種前做好種子處理工作。采用藥劑、根瘤菌拌種或種子包衣。藥劑拌種時,用50%多菌靈按種子重量的0.4%拌種,以防治根腐病。拌種隨拌隨播,處理后的種子不宜過夜。

Dim sSet As SelectionSet=resSel.Value

Dim Ids As ObjectIdCollection=New ObjectIdCollection(sSet. GetObjectIds)

Ids.Add(pLine.ObjectId)

db=curDb.Wblock(Ids,curDb.Ucsorg)

'讀取點之記模板

Dim fileName As String="C:\Program Files\AcadTool\測量工具箱\TP.dwg"

If System.IO.File.Exists(fileName)Then

tempDb.ReadDwgFile(fileName,System.IO.FileShare. Read,True,Nothing)

'插入點之記模板文件到數據庫

db.Insert(System.IO.Path.GetFileNameWithoutExtension (fileName),tempDb,True)

'開始點之記數據庫的事務處理

Using atrans As Transaction=db.TransactionManager.StartTransaction Dim bt As BlockTable=atrans.GetObject(db.Block-TableId,OpenMode.ForWrite)

'如果圖形中沒有TP的塊定義If bt.Has("TP")=False Then

Return

End If

Dim block As BlockTableRecord=atrans.GetObject (bt.Item("TP"),OpenMode.ForW rite) '字體樣式

Dim tst As TextStyleTable=TryCast(atrans.GetObject(db.TextStyleTableId,_OpenMode.ForWrite),TextStyleTable) Dim textObjectId As ObjectId=atrans.GetObject(tst. Item("宋體"),_OpenMode.ForWrite).ObjectId

'添加TP點點名

Dim tpName As New DBText

'在點之記中加入作業員

Dim workmanText As New DBText '在點之記中加入檢查員

Dim checkmanText As New DBText '在點之記中加入說明

Dim typeText As New MText…………Dim blockref As BlockReference=New BlockReference(pt,bt.Item("TP"))

'點之記根據比例尺縮小或者放大

blockref.ScaleFactors=New Scale3d(ScaleFlector)

blockref.Rotation=0

Dim btr As BlockTableRecord=atrans.GetObject(bt.

Item(BlockTableRecord.ModelSpace),-OpenMode.ForWrite)

btr.AppendEntity(blockref)

atrans.AddNewlyCreatedDBObject(blockref,True) atrans.Commit()

End Using

End If

'把臨時存取模板的數據庫銷毀tempDb.Dispose() '保存各個點之記

db.SaveAs(pointMarkPalette.saveFileName&"TP"&num.ToString&".dwg",DwgVersion.Current)

'提交事務處理trans.Commit() End Using…………

4 結 語

.NET語言中的VB.NET和C#都是面向對象的語言,它們對于初學者來說易學易用。用這些語言結合CAD的托管API來進行二次開發非常的方便。鑒于在線路測量或控制測量中,需要提交點之記時,可以使用本程序來生成成果,這樣方便快捷而且不容易出錯。本程序開發完成后,進行了詳細的測試后才投入到生產當中,它實現了點之記的自動生成,提高了工作效率。

[1] Thearon Willis Bryan Newsome.Visual Basic 2008入門經典[M].北京:清華大學出版社,2009.

[2] 秦洪現,崔惠嵐,孫劍.Autodesk系列產品開發培訓教程[M].北京:化學工業出版社,2008.

[3] 曾洪飛,張帆,盧擇臨.AutoCad VBA&VB.NET開發基礎與實例教程[M].北京:中國電力出版社,2008.

[4] 鄭勇波.基于AutoCAD的斷面測量新模式和軟件研究[J].城市勘測,2011(6),149~151.

[5] 周建康,冷泠,王瑞青.AutoCAD中判斷折線自相交的一種快速算法[J].2012(1),84~86.

[6] 李文柱.AutoCAD VBA二次開發在道路橫斷面數據處理中的應用[J].2008(3),127~129.

Description of Station Automatically Generate the Im p lementation of the Program

Wang Baoguo
(Bengbu Geotechnical Engineering and Surveying Institute,Bengbu 233000,China)

Description of station is an indispensable part of the measurement results of the work,it can help staff quickly find the control points in the field or road midpoint this article using Visual Basic 2008 combined NET API in AutoCAD development points credited automatically generated program,it can automatically find the feature points and marked the distance,if there is no feature points output log file,and save the file name and various engineering purposes,this program can quickly generate description of Station,improve work efficiency to reduce the error rate.

description of station feature points;.NET API

1672-8262(2013)03-143-03

P209

B

2013—01—07

王保國(1979—),男,工程師,主要從事城市測繪生產與管理工作。

猜你喜歡
二次開發程序數據庫
淺談基于Revit平臺的二次開發
甘肅科技(2020年20期)2020-04-13 00:30:02
淺談Mastercam后處理器的二次開發
模具制造(2019年3期)2019-06-06 02:11:02
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
西門子Easy Screen對倒棱機床界面二次開發
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
主站蜘蛛池模板: 亚洲国产理论片在线播放| 亚洲欧美一区二区三区蜜芽| 青草国产在线视频| 亚洲首页在线观看| 女人18一级毛片免费观看| 国产精品亚洲五月天高清| 狠狠干综合| 免费在线a视频| www.精品国产| 性视频一区| 国内精品自在自线视频香蕉| 青青草久久伊人| 久久中文无码精品| 青青操视频免费观看| 激情综合网址| 一区二区日韩国产精久久| 欧美色视频网站| 国产办公室秘书无码精品| 日韩亚洲综合在线| www.亚洲一区| 国产成人免费高清AⅤ| 欧美在线综合视频| 欧美一级夜夜爽| 97免费在线观看视频| 亚洲人成电影在线播放| 国产精品手机在线观看你懂的| 天天综合网亚洲网站| 婷婷综合缴情亚洲五月伊| 国产真实乱了在线播放| 亚洲国产欧洲精品路线久久| 91在线丝袜| 最新国产精品第1页| 91成人免费观看在线观看| 国产视频资源在线观看| 免费毛片网站在线观看| 91最新精品视频发布页| 国产成人啪视频一区二区三区| 婷婷色一二三区波多野衣| 99热最新在线| 中文字幕日韩视频欧美一区| 亚洲天堂视频在线观看免费| 精品福利视频导航| 久久青草精品一区二区三区| 曰韩免费无码AV一区二区| 91在线精品麻豆欧美在线| 亚洲无码日韩一区| 国产精品区视频中文字幕| 久久一级电影| 国产综合无码一区二区色蜜蜜| 自拍偷拍欧美日韩| 亚洲欧美另类中文字幕| 日韩麻豆小视频| 中文成人无码国产亚洲| 狠狠做深爱婷婷久久一区| 国产特一级毛片| 91探花在线观看国产最新| 网久久综合| 色偷偷一区| 午夜电影在线观看国产1区| 午夜国产在线观看| 免费av一区二区三区在线| 黄色网页在线观看| 国产免费黄| 99久久精品国产综合婷婷| 色屁屁一区二区三区视频国产| 久久无码av一区二区三区| 国产素人在线| 国产精品偷伦视频免费观看国产 | 国产亚洲精品在天天在线麻豆| 欧美激情第一欧美在线| 国产精品尹人在线观看| 高清不卡一区二区三区香蕉| 久久人搡人人玩人妻精品一| 国产一区二区精品福利| 免费A级毛片无码免费视频| 国产黑丝一区| 国产精品综合久久久| 欧美国产成人在线| 中文无码精品A∨在线观看不卡 | 亚洲婷婷丁香| 欧美伦理一区| 日韩无码黄色|