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

        ?

        點(diǎn)之記自動(dòng)生成程序的實(shí)現(xiàn)

        2013-03-03 11:44:30王保國(guó)
        城市勘測(cè) 2013年3期
        關(guān)鍵詞:中心線二次開(kāi)發(fā)成果

        王保國(guó)

        (蚌埠市勘測(cè)設(shè)計(jì)研究院,安徽蚌埠 233000)

        點(diǎn)之記自動(dòng)生成程序的實(shí)現(xiàn)

        王保國(guó)?

        (蚌埠市勘測(cè)設(shè)計(jì)研究院,安徽蚌埠 233000)

        點(diǎn)之記是測(cè)量工作成果中不可缺少的一部分,它可以幫助工作人員迅速在實(shí)地查找控制點(diǎn)或路中點(diǎn)等,本文利用Visual Basic 2008結(jié)合.NET API在AutoCAD中開(kāi)發(fā)了點(diǎn)之記自動(dòng)生成程序,它可以自動(dòng)的查找特征點(diǎn)并標(biāo)示距離,如果沒(méi)有特征點(diǎn)則輸出程序日志文件,而且保存文件名均和各種工程用途相關(guān)聯(lián),此程序可以快速的生成點(diǎn)之記,提高了工作效率,減少錯(cuò)誤率。

        點(diǎn)之記;特征點(diǎn);.NET API

        1 前 言

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

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

        2 程序設(shè)計(jì)

        2.1 開(kāi)發(fā)平臺(tái)和開(kāi)發(fā)語(yǔ)言的選擇

        現(xiàn)階段在測(cè)繪行業(yè)中,Autodesk公司的產(chǎn)品Auto-CAD使用非常廣泛,在此平臺(tái)上的二次開(kāi)發(fā)軟件也很多。當(dāng)然AutoCAD支持的開(kāi)發(fā)語(yǔ)言種類(lèi)也多,如AutoLISP、VBA、ObjectArx、.NET API等,對(duì)于不是專(zhuān)業(yè)的軟件開(kāi)發(fā)者,選擇一種適合自己的二次開(kāi)發(fā)語(yǔ)言即可,沒(méi)有必要全部掌握。如果你有C++的基礎(chǔ)你可以學(xué)習(xí)ObjectArx,它的功能最為強(qiáng)大,但學(xué)習(xí)起來(lái)有點(diǎn)困難。如果你是正在學(xué)習(xí).NET的軟件,如C#、VB.NET等,可以學(xué)習(xí).NET API二次開(kāi)發(fā),因?yàn)樵谧钚碌腁utoCAD 2011中,.NET API已經(jīng)擁有與C++相匹配的強(qiáng)大功能,由于開(kāi)發(fā)接口是完全面向?qū)ο蟮?,又具有方便易用的特點(diǎn),所以用.NET API來(lái)進(jìn)行AutoCAD的二次開(kāi)發(fā)還是比較容易掌握的。

        2.2 程序設(shè)計(jì)思路

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

        2.3 界面設(shè)計(jì)

        用戶(hù)界面使用了用戶(hù)常用的工具選項(xiàng)板,簡(jiǎn)潔而且實(shí)用,主要是設(shè)置點(diǎn)之記需要的內(nèi)容,如作業(yè)員、檢查員等。如圖2所示。

        3 功能及部分代碼實(shí)現(xiàn)

        3.1 點(diǎn)之生成文件

        在生成路中點(diǎn)點(diǎn)之記時(shí),文件名使用里程樁號(hào)來(lái)保存,這樣可以方便對(duì)文件的管理,如圖3所示。

        圖1 程序流程圖

        圖2 用戶(hù)界面 圖3 文件名稱(chēng)

        3.2 生成日志文件

        在程序生成的日志文件中,列出了點(diǎn)之記中沒(méi)有特征點(diǎn)可用的文件名。用戶(hù)在查看日志文件時(shí),可以對(duì)其中的點(diǎn)之記進(jìn)行手動(dòng)修改。

        3.3 生成點(diǎn)之記成果

        生成的點(diǎn)之記會(huì)自動(dòng)標(biāo)注特征點(diǎn)距離,填入點(diǎn)名、坐標(biāo)和相應(yīng)的說(shuō)明等,如圖4所示。

        圖4 點(diǎn)之記成果

        3.4 部分代碼實(shí)現(xiàn)

        (1)在選擇道路中心線的同時(shí),把道路名稱(chēng)添加到擴(kuò)展數(shù)據(jù)中,這樣在生成點(diǎn)之記時(shí)將會(huì)自動(dòng)標(biāo)注道路名稱(chēng)。

        '如果選擇的線性是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"

        '加入道路名稱(chēng)的擴(kuò)展數(shù)據(jù)

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

        Else

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

        Return End If

        (2)生成點(diǎn)之記文件。

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

        '新建臨時(shí)數(shù)據(jù)庫(kù)來(lái)讀取點(diǎn)之記模板

        Dim tempDb As New Database(False,True) '新建數(shù)據(jù)庫(kù)來(lái)生成點(diǎn)之記

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

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

        Dim sSet As SelectionSet=resSel.Value

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

        Ids.Add(pLine.ObjectId)

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

        '讀取點(diǎn)之記模板

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

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

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

        '插入點(diǎn)之記模板文件到數(shù)據(jù)庫(kù)

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

        '開(kāi)始點(diǎn)之記數(shù)據(jù)庫(kù)的事務(wù)處理

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

        '如果圖形中沒(méi)有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點(diǎn)點(diǎn)名

        Dim tpName As New DBText

        '在點(diǎn)之記中加入作業(yè)員

        Dim workmanText As New DBText '在點(diǎn)之記中加入檢查員

        Dim checkmanText As New DBText '在點(diǎn)之記中加入說(shuō)明

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

        '點(diǎn)之記根據(jù)比例尺縮小或者放大

        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

        '把臨時(shí)存取模板的數(shù)據(jù)庫(kù)銷(xiāo)毀tempDb.Dispose() '保存各個(gè)點(diǎn)之記

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

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

        4 結(jié) 語(yǔ)

        .NET語(yǔ)言中的VB.NET和C#都是面向?qū)ο蟮恼Z(yǔ)言,它們對(duì)于初學(xué)者來(lái)說(shuō)易學(xué)易用。用這些語(yǔ)言結(jié)合CAD的托管API來(lái)進(jìn)行二次開(kāi)發(fā)非常的方便。鑒于在線路測(cè)量或控制測(cè)量中,需要提交點(diǎn)之記時(shí),可以使用本程序來(lái)生成成果,這樣方便快捷而且不容易出錯(cuò)。本程序開(kāi)發(fā)完成后,進(jìn)行了詳細(xì)的測(cè)試后才投入到生產(chǎn)當(dāng)中,它實(shí)現(xiàn)了點(diǎn)之記的自動(dòng)生成,提高了工作效率。

        [1] Thearon Willis Bryan Newsome.Visual Basic 2008入門(mén)經(jīng)典[M].北京:清華大學(xué)出版社,2009.

        [2] 秦洪現(xiàn),崔惠嵐,孫劍.Autodesk系列產(chǎn)品開(kāi)發(fā)培訓(xùn)教程[M].北京:化學(xué)工業(yè)出版社,2008.

        [3] 曾洪飛,張帆,盧擇臨.AutoCad VBA&VB.NET開(kāi)發(fā)基礎(chǔ)與實(shí)例教程[M].北京:中國(guó)電力出版社,2008.

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

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

        [6] 李文柱.AutoCAD VBA二次開(kāi)發(fā)在道路橫斷面數(shù)據(jù)處理中的應(yīng)用[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

        王保國(guó)(1979—),男,工程師,主要從事城市測(cè)繪生產(chǎn)與管理工作。

        猜你喜歡
        中心線二次開(kāi)發(fā)成果
        淺談基于Revit平臺(tái)的二次開(kāi)發(fā)
        甘肅科技(2020年20期)2020-04-13 00:30:02
        工大成果
        淺談Mastercam后處理器的二次開(kāi)發(fā)
        模具制造(2019年3期)2019-06-06 02:11:02
        “走出去”成果斐然
        “健康照明”成果聚焦
        西門(mén)子Easy Screen對(duì)倒棱機(jī)床界面二次開(kāi)發(fā)
        “三醫(yī)聯(lián)動(dòng)”擴(kuò)大醫(yī)改成果
        第十講 幾何公差代號(hào)標(biāo)注示例10
        ——目鏡套筒
        X線攝影中中心線對(duì)DR攝影質(zhì)量的重要性
        基于Meanshift和Hough變換的秧苗行中心線提取
        国产精品久久成人网站| 免费啪啪av人妻一区二区| 日本师生三片在线观看| 国产精品二区一区二区aⅴ污介绍| 欧美亚洲日本国产综合在线| 久久国产乱子伦精品免费强| 人妻秘书被社长浓厚接吻| 国产亚洲欧洲aⅴ综合一区| 亚洲产国偷v产偷v自拍色戒| 调教在线播放黄| 日本特殊按摩在线观看| 国产精品亚洲精品日韩已方| 亚洲自偷自拍熟女另类| 四虎影视国产884a精品亚洲| 国产福利不卡视频在线| 免费乱理伦片在线观看| 国模无码视频一区| 国产精品国产三级国产an | 亚洲精品自拍视频在线观看 | 精品日韩欧美一区二区三区在线播放| 日本一区二区三区精品免费| 国语自产偷拍在线观看| 精品无码国产污污污免费| 亚洲又黄又大又爽毛片| 开心五月天第四色婷婷| 久久综合国产乱子伦精品免费| 综合无码综合网站| 亚洲国产一区二区,毛片| 看久久久久久a级毛片| 欧性猛交ⅹxxx乱大交| 在线观看国产精品自拍| 日韩在线观看入口一二三四| 亚洲aⅴ在线无码播放毛片一线天 中国国语毛片免费观看视频 | 亚洲天堂线上免费av | 国产天美传媒性色av| 中文字幕有码一区二区三区| 国产精品久久久黄色片| 狠狠精品久久久无码中文字幕| 色丁香在线观看| 女同另类一区二区三区| 欧美激情在线播放|