亚洲免费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變換的秧苗行中心線提取
        亚洲国产成人无码电影| 久久午夜福利无码1000合集 | 国产激情无码一区二区| 亚洲精品无码av中文字幕| 亚洲国产精品嫩草影院久久| 水蜜桃一二二视频在线观看免费 | 骚货人妻视频中文字幕| 蜜桃视频在线观看网址| 国模冰莲极品自慰人体| 公粗挺进了我的密道在线播放贝壳| 国产WW久久久久久久久久| 久久久婷婷综合亚洲av| 高清不卡av一区二区| 国产亚洲精品第一综合另类| 国产精品久久久久久亚洲av| 国产精品99久久久久久98AV| 国产精品人人爱一区二区白浆 | 亚洲av推荐网站在线观看| 玖玖色玖玖草玖玖爱在线精品视频| 国产午夜毛片v一区二区三区| 国产香蕉97碰碰视频va碰碰看 | 吸咬奶头狂揉60分钟视频| 精品国产91久久久久久久a| 亚洲精品女人天堂av麻| 国产精品女同一区二区免费站| 久久久av波多野一区二区| 欧美极品少妇性运交| 日本熟妇精品一区二区三区| 亚洲成人激情深爱影院在线| 午夜dy888国产精品影院| 精品国产av最大网站| 无码免费午夜福利片在线| 91精品福利一区二区三区| 国产在线无码精品无码| 亚洲伊人色欲综合网| 精品九九视频| 熟女不卡精品久久av| 97色伦图片97综合影院| 亚洲av国产精品色午夜洪2| 久久久久一| 国产免费人成视频在线观看播放播|