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
主站蜘蛛池模板: 伊人成人在线| 在线中文字幕日韩| 国产91视频免费| 玖玖精品在线| 亚洲一区毛片| 久久久91人妻无码精品蜜桃HD | AV天堂资源福利在线观看| 国产95在线 | 欧美色香蕉| 国产成人免费视频精品一区二区| 伊人成色综合网| 在线观看欧美国产| 国产又粗又猛又爽| 久久人搡人人玩人妻精品| 欧美一区二区啪啪| 久久国产精品嫖妓| 久久99国产精品成人欧美| 免费在线看黄网址| 国产精品性| 国产精品成人不卡在线观看 | 国产精品不卡片视频免费观看| 日本欧美视频在线观看| 国产99视频精品免费观看9e| lhav亚洲精品| 久久中文字幕2021精品| 国产尤物视频网址导航| A级毛片无码久久精品免费| 久久狠狠色噜噜狠狠狠狠97视色| 日韩欧美在线观看| 特级毛片8级毛片免费观看| 一级毛片免费观看不卡视频| 91精品国产一区| 亚洲黄色成人| 国产尹人香蕉综合在线电影| 色婷婷狠狠干| 天天摸夜夜操| 香蕉eeww99国产在线观看| 自偷自拍三级全三级视频| 综合天天色| 色婷婷综合激情视频免费看| 手机看片1024久久精品你懂的| 秘书高跟黑色丝袜国产91在线| 亚洲精品国产综合99久久夜夜嗨| 国产精品吹潮在线观看中文| 久久人妻系列无码一区| 在线精品视频成人网| 日韩免费毛片视频| 久久男人资源站| 亚洲综合色在线| 成人福利在线观看| 国产精品综合久久久 | 看av免费毛片手机播放| 超碰色了色| 国产丰满大乳无码免费播放| 日韩人妻精品一区| 国产精品区视频中文字幕| 亚洲无码高清一区二区| 国产菊爆视频在线观看| 91色老久久精品偷偷蜜臀| 色综合a怡红院怡红院首页| 伊人色综合久久天天| 久久人人97超碰人人澡爱香蕉| 一级毛片a女人刺激视频免费 | 国产成人无码AV在线播放动漫 | 婷婷五月在线视频| 欧美日韩国产精品va| 亚洲av无码成人专区| 国产福利微拍精品一区二区| 亚洲国产成人久久精品软件| 99草精品视频| 欧美中文字幕一区| 日韩在线第三页| 欧美一级高清片久久99| 欧美不卡视频在线| 国产精品欧美在线观看| 久热re国产手机在线观看| 毛片在线播放a| 欧美精品另类| 日韩无码黄色| 毛片在线区| 国产91视频免费观看| 有专无码视频|