• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

      鮑晨興, 王鍇磊, 郭天茂

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

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

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

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

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

      1 三維坐標測量軟件的系統(tǒng)設計

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

      1.1 系統(tǒng)組成

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

      圖1 三維坐標測量軟件組成原理

      1.2 軟件架構

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

      圖2 三維坐標測量軟件架構

      2 軟件功能模塊設計

      2.1 CAD模型導入及解析

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

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

      圖3 CAD模型解析原理

      2.2 三維可視化原理

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

      圖4 三維可視化原理

      測量點數據三維可視化的代碼如下,其中mRenderView是AnyViz渲染器(以下簡稱渲染器)的實例對象。

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

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

      var geometry = GeometryBuilder.CreatePoints(new Float32Array(mPositions),new Float32Array(mColors));//通過點數據創(chuàng)建幾何對象

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

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

      2.3 測量數據處理

      測量數據為離散的三維坐標點,通過數據處理才能得到測量結果。數據處理功能是利用測量點數據進行幾何形狀重建、距離計算、角度計算、投影、相交等。

      2.4 測量設備管理

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

      3 軟件的開發(fā)與實現

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

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

      3.1 三維可視化數據管理及人機交互的實現

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

      圖6 可視化數據管理流程圖

      人機交互是通過用戶輸入(鼠標、鍵盤等)實現對顯示數據的操作,如旋轉、平移、縮放、拾取等。其中拾取操作是測量數據處理時的必要功能,本文設計了pickDisplayInfo函數用于響應渲染器的選擇事件。

      public void pickDisplayInfo(PickedItem item)

      { switch (item.GetShapeType())

      { case EnumShapeFilter.Vertex:

      //處理函數;break;

      case EnumShapeFilter.Face:

      //處理函數;break;..}}

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

      3.2 CAD模型解析的實現

      導入CAD模型是為了獲取待測零件各種幾何參數的理論設計值,借助AnyGeom幾何造型引擎可以實現對STP和IGES格式的三維模型導入,導入后得到TopoShape類型的對象,通過GetTopoShape()方法可以得到所有幾何拓撲結構和幾何參數,GetChildren(EnumTopoShapeType)方法可以獲取指定類型的子拓撲結構的對象列表,比如獲取一個體的所有邊,一個邊的所有點等。通過TopoShape:FindChild()方法可以獲取指定索引和類型的子拓撲對象。模型解析的代碼實現如下。

      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)

      { … //處理數據} }

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

      圖7 CAD模型獲取幾何解析參數

      3.3 多種設備兼容的實現

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

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

      public class Class_Device

      { public Form_Device _formDevice;

      public Device _device;

      public string _name; }

      4 結束語

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

      猜你喜歡
      數據處理可視化解析
      基于CiteSpace的足三里穴研究可視化分析
      認知診斷缺失數據處理方法的比較:零替換、多重插補與極大似然估計法*
      心理學報(2022年4期)2022-04-12 07:38:02
      基于Power BI的油田注水運行動態(tài)分析與可視化展示
      云南化工(2021年8期)2021-12-21 06:37:54
      ILWT-EEMD數據處理的ELM滾動軸承故障診斷
      水泵技術(2021年3期)2021-08-14 02:09:20
      三角函數解析式中ω的幾種求法
      基于CGAL和OpenGL的海底地形三維可視化
      “融評”:黨媒評論的可視化創(chuàng)新
      傳媒評論(2019年4期)2019-07-13 05:49:14
      睡夢解析儀
      電競初解析
      商周刊(2017年12期)2017-06-22 12:02:01
      相機解析
      宁乡县| 醴陵市| 图木舒克市| 万载县| 山阴县| 鹰潭市| 九江市| 定襄县| 海淀区| 东平县| 盐源县| 银川市| 瑞安市| 大宁县| 洱源县| 建湖县| 安仁县| 衢州市| 万荣县| 阿克陶县| 酒泉市| 定结县| 深泽县| 高邑县| 龙海市| 正定县| 睢宁县| 博客| 九台市| 开平市| 高州市| 辉南县| 根河市| 视频| 锦屏县| 商丘市| 介休市| 夹江县| 辉南县| 景谷| 祁阳县|