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

        ?

        三維引擎AnyCAD在坐標(biāo)測量軟件開發(fā)中的應(yīng)用研究

        2021-07-30 09:13:10鮑晨興王鍇磊郭天茂
        測控技術(shù) 2021年7期
        關(guān)鍵詞:數(shù)據(jù)處理可視化解析

        鮑晨興, 王鍇磊, 郭天茂

        (北京航天計(jì)量測試技術(shù)研究所,北京 100076)

        三維坐標(biāo)測量軟件是測量儀器與檢測人員之間的人機(jī)交互接口,軟件一般具有設(shè)備控制、模型導(dǎo)入、數(shù)據(jù)顯示、數(shù)據(jù)處理、逆向建模等功能[1-3],三維坐標(biāo)測量軟件既是數(shù)據(jù)采集、處理應(yīng)用軟件,也是多元化檢測系統(tǒng)的集成平臺(tái)和信息展示的窗口。國內(nèi)軍工行業(yè)各大主機(jī)廠所使用的高端坐標(biāo)檢測設(shè)備大多數(shù)仍然依靠國外進(jìn)口,配套的坐標(biāo)測量軟件也基本是國外的商業(yè)軟件,價(jià)格昂貴,存在信息安全隱患,無法定制開發(fā),不能滿足工業(yè)互聯(lián)網(wǎng)和車間數(shù)字化的發(fā)展需求,因此亟需開發(fā)具有國產(chǎn)自主知識(shí)產(chǎn)權(quán)的通用型坐標(biāo)測量軟件。

        國外的商業(yè)化三維坐標(biāo)測量軟件如NRK公司的Spatial Analyzer、InnoveMetric公司的PolyWorks、3D System公司的Geometric等在幾何檢測領(lǐng)域有廣泛的應(yīng)用[4],它們均是通用型的坐標(biāo)測量軟件,檢測功能較完善,能夠兼容多種儀器設(shè)備,雖然提供二次開發(fā)接口,但二次開發(fā)接口的功能有限,對(duì)國產(chǎn)設(shè)備不能兼容。隨著中國制造業(yè)的快速發(fā)展,國內(nèi)高校、研究機(jī)構(gòu)也進(jìn)行了三維坐標(biāo)測量軟件的開發(fā)[5],常用于坐標(biāo)測量軟件開發(fā)的三維引擎有ACIS、HOOP、OpenCASCADE、OpenSceneGraph等[6-8],ACIS和HOOPS屬于商業(yè)庫,價(jià)格昂貴,系統(tǒng)龐大,開發(fā)上手比較困難;OpenCASCADE屬于開源庫,雖然免費(fèi),但是相關(guān)資料較少,穩(wěn)定性較差,開發(fā)起來也很困難。目前國內(nèi)還沒有成熟穩(wěn)定的通用型坐標(biāo)測量軟件,國內(nèi)現(xiàn)有的測量軟件一般由測量儀器設(shè)備廠家定制開發(fā),數(shù)據(jù)處理功能不夠完善,無法兼容多種儀器設(shè)備,不具備通用性。

        AnyCAD Rapid SDK(以下簡稱AnyCAD)是一個(gè)包含三維幾何造型、圖形顯示、數(shù)據(jù)管理等模塊的綜合三維圖形平臺(tái),AnyCAD核心功能基于C++實(shí)現(xiàn),由幾何造型、顯示引擎、數(shù)據(jù)管理和交互框架組成,在開發(fā)接口上又分為AnyGeom幾何造型模塊和AnyViz三維顯示模塊[9]。本文采用AnyCAD搭建坐標(biāo)測量軟件的基礎(chǔ)框架,實(shí)現(xiàn)三維模型導(dǎo)入和解析、三維顯示和人機(jī)交互等功能。檢測數(shù)據(jù)處理時(shí)借助AnyCAD良好的交互功能,實(shí)現(xiàn)形位公差的構(gòu)建和測量結(jié)果的顯示。

        本文旨在搭建一款通用型的坐標(biāo)測量軟件平臺(tái),能夠連接多種國產(chǎn)和進(jìn)口的測量儀器和設(shè)備,具備良好的三維顯示交互和完善的數(shù)據(jù)處理功能。通過研究,驗(yàn)證了基于AnyCAD引擎快速搭建三維坐標(biāo)測量軟件的可行性,為通用型三維坐標(biāo)測量軟件的國產(chǎn)自主化提供有力的支撐,為軍工行業(yè)測量數(shù)據(jù)信息安全提供有力的保障,為車間實(shí)現(xiàn)測量儀器的統(tǒng)一管理和多種設(shè)備互聯(lián)等目標(biāo)做好準(zhǔn)備。

        1 三維坐標(biāo)測量軟件的系統(tǒng)設(shè)計(jì)

        三維坐標(biāo)測量儀器種類繁多,常見的有三坐標(biāo)測量機(jī)、激光跟蹤儀、經(jīng)緯儀、激光雷達(dá)等[10],每類測量儀器的測量原理不盡相同,但測量數(shù)據(jù)的類型基本一致,均為三維坐標(biāo)點(diǎn)。三維坐標(biāo)測量軟件的測量數(shù)據(jù)均源于此類測量儀器,坐標(biāo)測量軟件一般具有三維可視化功能,可以實(shí)時(shí)顯示測量數(shù)據(jù)[11];具備多種格式的數(shù)據(jù)導(dǎo)入功能,可以實(shí)現(xiàn)CAD模型的導(dǎo)入和不同設(shè)備測量數(shù)據(jù)的導(dǎo)入;具有通用的程序接口,便于連接多種設(shè)備;具備完善的數(shù)據(jù)處理功能,可以進(jìn)行三維幾何重建、尺寸測量、公差評(píng)價(jià)、模型匹配等。

        1.1 系統(tǒng)組成

        本文研究的三維坐標(biāo)測量軟件的主要功能分為以下4部分:三維可視化及交互[12]、設(shè)備管理及數(shù)據(jù)采集、CAD模型導(dǎo)入及幾何解析、測量數(shù)據(jù)處理,具體如圖1所示。

        圖1 三維坐標(biāo)測量軟件組成原理

        1.2 軟件架構(gòu)

        本文開發(fā)的三維坐標(biāo)測量軟件是基于Windows操作系統(tǒng)開發(fā)的WinForm類型應(yīng)用程序,采用模塊化設(shè)計(jì)方便更新和維護(hù),主要包括三維顯示交互模塊、三維幾何造型模塊、儀器接口模塊、數(shù)據(jù)處理算法模塊等,如圖2所示。

        圖2 三維坐標(biāo)測量軟件架構(gòu)

        2 軟件功能模塊設(shè)計(jì)

        2.1 CAD模型導(dǎo)入及解析

        CAD模型是零件加工制造的基礎(chǔ),在三維坐標(biāo)測量軟件中CAD模型主要有以下兩種作用:① 利用CAD模型進(jìn)行測量路徑規(guī)劃;② 測量數(shù)據(jù)與CAD模型進(jìn)行比對(duì)從而計(jì)算誤差。CAD模型數(shù)據(jù)中不僅包含結(jié)構(gòu)化的數(shù)據(jù)如三維點(diǎn)坐標(biāo),也包含幾何信息如直線的方向、平面的法向等信息,對(duì)CAD模型進(jìn)行幾何解析就是獲取所有的數(shù)據(jù)信息,以便于后續(xù)的測量和計(jì)算。

        AnyGeom幾何造型引擎具備幾何造型和模型解析的功能,模型解析的原理如圖3所示,從CAD模型上可以獲取其包含的所有幾何形狀的解析表達(dá)。

        圖3 CAD模型解析原理

        2.2 三維可視化原理

        三維可視化顯示是采用AnyViz顯示引擎,其原理如圖4所示,待顯示的物體通過SceneNode類進(jìn)行實(shí)例化,通過Geometry、Shape等相關(guān)類來描述形狀,通過Material類來描述外觀、材質(zhì),通過Matrix、Transform類來管理物體位置及觀察視角。

        圖4 三維可視化原理

        測量點(diǎn)數(shù)據(jù)三維可視化的代碼如下,其中mRenderView是AnyViz渲染器(以下簡稱渲染器)的實(shí)例對(duì)象。

        var material =PointsMaterial.Create("point-material");//創(chuàng)建顯示的外觀

        material.SetPointSize(2.0f);//設(shè)置顯示點(diǎn)的大小 material.GetTemplate().SetVertexColors(true);

        var geometry = GeometryBuilder.CreatePoints(new Float32Array(mPositions),new Float32Array(mColors));//通過點(diǎn)數(shù)據(jù)創(chuàng)建幾何對(duì)象

        var node = new PrimitiveSceneNode(geometry,material);//通過幾何對(duì)象創(chuàng)建顯示節(jié)點(diǎn)

        mRenderView.ShowSceneNode(node);//顯示節(jié)點(diǎn)

        2.3 測量數(shù)據(jù)處理

        測量數(shù)據(jù)為離散的三維坐標(biāo)點(diǎn),通過數(shù)據(jù)處理才能得到測量結(jié)果。數(shù)據(jù)處理功能是利用測量點(diǎn)數(shù)據(jù)進(jìn)行幾何形狀重建、距離計(jì)算、角度計(jì)算、投影、相交等。

        2.4 測量設(shè)備管理

        三維坐標(biāo)測量儀器采集的數(shù)據(jù)一般均為三維坐標(biāo)點(diǎn),因此可以通過設(shè)計(jì)統(tǒng)一的數(shù)據(jù)接口實(shí)現(xiàn)從不同的測量設(shè)備采集測量數(shù)據(jù)。測量設(shè)備生產(chǎn)商一般會(huì)向使用者提供用于二次開發(fā)的SDK。利用這些SDK可以通過軟件接口連接設(shè)備并獲取測量數(shù)據(jù),然后根據(jù)數(shù)據(jù)接口的格式進(jìn)行轉(zhuǎn)換,就可以將數(shù)據(jù)導(dǎo)入到三維坐標(biāo)測量軟件中。

        3 軟件的開發(fā)與實(shí)現(xiàn)

        本軟件基于Windows10 64-bit系統(tǒng),采用Visual Studio2017進(jìn)行開發(fā),利用AnyCAD SDK實(shí)現(xiàn)三維顯示、交互操作及模型導(dǎo)入,圖5為三維坐標(biāo)測量軟件主界面,主要包括軟件功能工具欄、設(shè)備與數(shù)據(jù)管理區(qū)、三維可視化顯示與交互區(qū)、儀器操作區(qū)等。

        圖5 三維坐標(biāo)測量軟件操作界面及主要功能展示

        3.1 三維可視化數(shù)據(jù)管理及人機(jī)交互的實(shí)現(xiàn)

        三維可視化數(shù)據(jù)管理是指對(duì)創(chuàng)建的測量數(shù)據(jù)、導(dǎo)入的幾何模型等進(jìn)行顯示、隱藏、刪除等操作。渲染器中的每個(gè)顯示節(jié)點(diǎn)可以設(shè)置唯一的id,可以通過id從渲染器中獲取某個(gè)顯示節(jié)點(diǎn),從而進(jìn)行管理操作。本文創(chuàng)建字典類型對(duì)象Dictionary m_displayNodes用于存儲(chǔ)已創(chuàng)建的數(shù)據(jù),其中string類型數(shù)據(jù)代表節(jié)點(diǎn)數(shù)據(jù)的名稱,uint代表節(jié)點(diǎn)數(shù)據(jù)在渲染器中的id。創(chuàng)建顯示數(shù)據(jù)的流程如圖6所示。隱藏、刪除操作是通過名稱獲取顯示節(jié)點(diǎn)的id,再通過id從渲染器中獲取節(jié)點(diǎn)對(duì)象,最后執(zhí)行隱藏、刪除操作。

        圖6 可視化數(shù)據(jù)管理流程圖

        人機(jī)交互是通過用戶輸入(鼠標(biāo)、鍵盤等)實(shí)現(xiàn)對(duì)顯示數(shù)據(jù)的操作,如旋轉(zhuǎn)、平移、縮放、拾取等。其中拾取操作是測量數(shù)據(jù)處理時(shí)的必要功能,本文設(shè)計(jì)了pickDisplayInfo函數(shù)用于響應(yīng)渲染器的選擇事件。

        public void pickDisplayInfo(PickedItem item)

        { switch (item.GetShapeType())

        { case EnumShapeFilter.Vertex:

        //處理函數(shù);break;

        case EnumShapeFilter.Face:

        //處理函數(shù);break;..}}

        其中,PickedItem對(duì)象包含了被選中的節(jié)點(diǎn)信息,如節(jié)點(diǎn)的幾何類型、id等,然后通過id獲取數(shù)據(jù)并處理。

        3.2 CAD模型解析的實(shí)現(xiàn)

        導(dǎo)入CAD模型是為了獲取待測零件各種幾何參數(shù)的理論設(shè)計(jì)值,借助AnyGeom幾何造型引擎可以實(shí)現(xiàn)對(duì)STP和IGES格式的三維模型導(dǎo)入,導(dǎo)入后得到TopoShape類型的對(duì)象,通過GetTopoShape()方法可以得到所有幾何拓?fù)浣Y(jié)構(gòu)和幾何參數(shù),GetChildren(EnumTopoShapeType)方法可以獲取指定類型的子拓?fù)浣Y(jié)構(gòu)的對(duì)象列表,比如獲取一個(gè)體的所有邊,一個(gè)邊的所有點(diǎn)等。通過TopoShape:FindChild()方法可以獲取指定索引和類型的子拓?fù)鋵?duì)象。模型解析的代碼實(shí)現(xiàn)如下。

        var shape = StepIO.Open(file);

        TopoShape totalshape = shape.GetTopoShape();

        TopoShapeList edgeList = totalshape.GetChildren(EnumTopoShapeType.Topo_EDGE);

        foreach (TopoShape edge in edgeList)

        {TopoShapeList vertexList=edge.GetChildren(EnumTopoShapeType.Topo_Vertex);

        foreach (TopoShape vertex in vertexList)

        { … //處理數(shù)據(jù)} }

        通過以上方法可以從CAD模型中獲取測量目標(biāo)的理論參數(shù)。圖7為CAD模型拾取某個(gè)面獲取其幾何解析參數(shù)的界面,信息包括原點(diǎn)坐標(biāo)和法線方向。

        圖7 CAD模型獲取幾何解析參數(shù)

        3.3 多種設(shè)備兼容的實(shí)現(xiàn)

        分別選取Leica激光跟蹤儀AT960和北京航天計(jì)量測試技術(shù)研究所研制的調(diào)頻激光雷達(dá)掃描儀,作為國外測量設(shè)備和國產(chǎn)設(shè)備的代表,以此驗(yàn)證多設(shè)備兼容的可行性,圖5中右測區(qū)域即為兩種儀器的操作界面。

        設(shè)計(jì)了測量數(shù)據(jù)接口函數(shù)addSinglePoint(string pointname,double x,double y,double z),其中包含測量點(diǎn)名稱和三維坐標(biāo)值。設(shè)計(jì)了設(shè)備管理類Class_Device用于管理不同的測量儀器,該類包含設(shè)備的操作界面、設(shè)備實(shí)例對(duì)象和設(shè)備名稱等屬性。Leica激光跟蹤儀提供的SDK為LMF.Tracker.Connection,通過其MeasurementArrived事件響應(yīng)函數(shù)可以獲取測量點(diǎn)的三維坐標(biāo)值;調(diào)頻激光雷達(dá)提供的SDK為LaserRanderDLL,通過其sendSingleMeas事件響應(yīng)函數(shù)可以獲取測量點(diǎn)的三維坐標(biāo)值。將測量點(diǎn)的三維坐標(biāo)值再添加自定義名稱,調(diào)用addSinglePoint函數(shù)即可將測量數(shù)據(jù)傳入測量軟件中。

        public class Class_Device

        { public Form_Device _formDevice;

        public Device _device;

        public string _name; }

        4 結(jié)束語

        本文將AnyCAD三維引擎應(yīng)用于三維坐標(biāo)測量軟件的開發(fā),通過AnyGeom幾何造型引擎實(shí)現(xiàn)CAD模型的導(dǎo)入及解析,通過AnyViz顯示引擎實(shí)現(xiàn)測量數(shù)據(jù)和數(shù)據(jù)處理結(jié)果的顯示,開發(fā)了一款通用型三維坐標(biāo)測量軟件,具備良好的三維可視化及人機(jī)交互、模型導(dǎo)入與解析等功能,同時(shí)能夠兼容多種測量儀器設(shè)備。通過研究,驗(yàn)證了基于AnyCAD平臺(tái)快速搭建具有國產(chǎn)自主知識(shí)產(chǎn)權(quán)坐標(biāo)測量軟件的可行性,并驗(yàn)證了對(duì)國內(nèi)外坐標(biāo)測量儀器同時(shí)兼容的可能性。

        猜你喜歡
        數(shù)據(jù)處理可視化解析
        基于CiteSpace的足三里穴研究可視化分析
        認(rèn)知診斷缺失數(shù)據(jù)處理方法的比較:零替換、多重插補(bǔ)與極大似然估計(jì)法*
        基于Power BI的油田注水運(yùn)行動(dòng)態(tài)分析與可視化展示
        云南化工(2021年8期)2021-12-21 06:37:54
        ILWT-EEMD數(shù)據(jù)處理的ELM滾動(dòng)軸承故障診斷
        三角函數(shù)解析式中ω的幾種求法
        基于CGAL和OpenGL的海底地形三維可視化
        “融評(píng)”:黨媒評(píng)論的可視化創(chuàng)新
        睡夢解析儀
        電競初解析
        商周刊(2017年12期)2017-06-22 12:02:01
        相機(jī)解析
        中文字幕人妻少妇引诱隔壁| 福利网在线| 精品少妇一区一区三区| 亚洲不卡毛片在线观看| 国产激情一区二区三区在线| 狠狠躁夜夜躁人人躁婷婷视频| 欧洲精品免费一区二区三区| 比比资源先锋影音网| 久久精品国产亚洲av成人| 国产爆乳乱码女大生Av| 亚洲AⅤ樱花无码| 亚洲最大不卡av网站| 麻豆视频黄片在线免费观看| 欧美性xxxxx极品老少| 四虎影视成人永久免费观看视频| 国产精品人妻一码二码尿失禁| 狠狠躁夜夜躁人人爽超碰97香蕉| 无码流畅无码福利午夜| 亚洲综合在线一区二区三区| 亚洲黄色一级在线观看| 白丝兔女郎m开腿sm调教室| 无码少妇一区二区三区| 亚洲男人天堂2017| 极品少妇一区二区三区四区| 你懂的视频在线看播放| 蜜桃日本免费观看mv| 国产va在线观看免费| 精品无码久久久久久久动漫| 天堂岛国精品在线观看一区二区| 国产熟妇一区二区三区网站| 91九色中文视频在线观看| 人妻av中文字幕久久| 中文字幕熟妇人妻在线视频| 无码久久流水呻吟| 亚洲毛片av一区二区三区| 日韩在线不卡一区三区av| 国产免费又色又爽粗视频| 亚洲一卡2卡3卡4卡5卡精品| 欧美极品美女| 2021精品综合久久久久| 日本视频在线播放一区二区|