CN109388843A - 一种基于vtk的桁架天线的可视化系统及方法、终端 - Google Patents
一种基于vtk的桁架天线的可视化系统及方法、终端 Download PDFInfo
- Publication number
- CN109388843A CN109388843A CN201810943949.3A CN201810943949A CN109388843A CN 109388843 A CN109388843 A CN 109388843A CN 201810943949 A CN201810943949 A CN 201810943949A CN 109388843 A CN109388843 A CN 109388843A
- Authority
- CN
- China
- Prior art keywords
- vtk
- coordinate
- model
- information
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/23—Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Processing Or Creating Images (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明属于计算机辅助设计技术领域,公开了一种基于VTK的桁架天线的可视化系统及方法、终端,分为搭建显示板梁结构三维模型的单文档可视化界面应用程序;设计的文件格式存储梁壳结构的有限元模型信息;有限元模型信息到设计好的单文档的显示程序的数据结构中;计算梁结构单元中两个截面上其它点的坐标;计算带有厚度的壳单元的其它点的坐标;创建板梁模型所有的实体单元;根据板梁模型所有的实体单元信息,创建VTK中的数据集,搭建图形显示的可视化管道;建立VTK渲染引擎管线,组成完整的VTK流水线可视化管道显示生成的三维实体模型。本发明使用面向对象的编程思想,具有很好的扩展性。
Description
技术领域
本发明属于计算机辅助设计技术领域,尤其涉及一种基于VTK的桁架天线的可视化系统及方法、终端。
背景技术
目前,业内常用的现有技术是这样的:在计算机辅助分析领域,国外经过多年的发展,市场上出现了许多的商用软件,例如ANSYS、Abqus等使用非常广泛的有限元商用分析软件。目前国内还处于起步阶段。优秀的有限元分析软件除了精确分析模型的之外,精确的显示有限元模型可以提高软件交互性。在机械工程的CAE领域,许多的结构都可以使用板、梁结构简化建模;了解板梁结构模型的可视化,具有普遍意义。大多商用的有限元分析软件在建立板梁结构的有限元模型时都是使用线、面的结构作为代替。使用梁板单元划分单元后,才显示成实体模型。
综上所述,现有技术存在的问题是:多数商用的有限元分析软件在建立板梁结构的有限元模型时都是使用线、面的结构作为代替;使用梁板单元划分单元后,才显示成实体模型。线、面结构建立的有限元模型,既简化模型,也方便建模。图形显示线、面模型比较简单,线面模型更有利于有限元分析。本方案中的显示模型的方法既能达到简化模型效果,还能显示实体模型,增强模型的显示效果。
解决上述技术问题的难度和意义:国内在图形软件系统方面研究起步较晚,没有具体和明确的板梁结构模型的可视化的方法。本发明提出一种基于VTK的桁架天线的可视化系统及方法,既可以用于VTK的桁架天线的可视化系统中,也可以作为有限元后软件中的后处理子模块,更可以开发板梁结构图形系统的基础。本发明方法的提出既在计算机图形显示方面做了探索,也在图形显示系统的开发方面进行了尝试。
发明内容
针对现有技术存在的问题,本发明提供了一种基于VTK的桁架天线的可视化系统及方法、终端。
本发明是这样实现的,一种基于VTK的桁架天线的可视化方法,所述基于VTK的桁架天线的可视化方法包括:
步骤一,采用开源的可视化工具VTK和微软的MFC类库来搭建显示三维模型的可视化界面的单文档应用程序;
步骤二,采用合适文件格式的TXT文本文档存储梁壳结构的有限元模型信息;信息包括的点、单元结点、单元截面和厚度信息;
步骤三,读取设计的文件中的有限元模型信息到设计好的单文档的显示程序的数据结构中;
步骤四,根据梁单元的截面信息和梁的两个结点的坐标信息,计算出两个截面上其它点的坐标,记录点的坐标和点的拓扑关系即创建一个实体的梁单元;
步骤五,根据板单元的厚度和已知结点的坐标,计算带有厚度的壳单元的其它点的坐标;记录这个实体单元点的坐标和新点的拓扑关系即创建一个壳实体单元;
步骤六,对于所有的单元根据单元类型选择执行步骤五、步骤六,创建板梁模型所有的实体单元;根据板梁模型所有的实体单元信息,创建VTK中的数据集,搭建图形显示的可视化管道;
步骤七,建立VTK渲染引擎管线,组成完整的VTK流水线可视化管道显示生成的三维实体模型。
进一步,所述步骤一具体包括:
(1)安装开源可视化工具VTK;
(2)创建单文档应用程序,实现数据与数据显示的分离;
(3)数据与显示的分离;在文档类中,创建VTK模型数据集,在视图类中创建vtkMFCWindow窗口类的对象作为视图的子窗口负责显示图形。
进一步,所述步骤二的文件的格式存储有限元模型数据。
进一步,所述步骤三读取数据具体包括:
(1)采用C++中的hash_map结构存储读入的模型相关数据,创建结构体变量,作为hash_map结构的元素,获取所要获得的模型信息;
(2)读取数据使用C++标准库中负责文件操作的ifstream类读取文件中的数据;文件的数据,按照固定格式先读入事先定义好的数据结构中,统一进行处理。
进一步,所述步骤四具体包括:
(1)获取到的单元结点和单元截面信息计算出结点所在截面上点的坐标;根据截面信息获取的拓扑关系创建VTK实体梁单元;
在计算截面上点时分为:建立单元局部坐标系,局部坐标系的建立分为两种情况;利用坐标变换,将局部坐标系中点的坐标,转换到全局坐标系中,转换所得点的坐标作为实体单元显示时所需的点;
(2)根据截面类型,得到点的拓扑关系,使用六边形截面代替圆截面,计算六边形的上的点的坐标;使用六棱柱显示这个梁单元,对矩形单元计算矩形上点的坐标,使用四棱柱显示这根梁单元。
进一步,所述步骤五获取的壳单元结点和壳厚度信息具体显示具体包括:
(1)计算出壳单元的法向量;
(2)根据壳单元的厚度信息,将所有结点沿着法向量方向和其反方向各平移厚度的一半,求得新的节点的坐标;
(3)在VTK中的寻找能够表达带有厚度的壳实体单元;三角形壳单元用三棱柱单元显示,对于四边形壳找四棱柱的单元显示;
所述步骤六创建实体模型的数据集具体包括:
(1)创建实体模型所需的点集vtkPoints,判断当前点是否已经被创建,如果已经被创建,直接将这个点的编号作为当前正在计算单元的点的编号,如果还没有计算,计算并且编号;
(2)根据单元的编号以及截面信息的结合步骤四的方法,创建对应的VTK实体单元;
(3)根据单元编号和单元类型结合步骤五中的方法,创建对应的VTK实体单元;
(4)将创建的点集和单元集合组成VTK模型UnstructuredGrid数据集;
所述步骤七建立VTK可视化管道具体包括:
(1)在单文档可视化程序的视图类中定义vtkRender、vtkMFCWindow对象,完成显示需要的渲染器和显示窗口的创建;
(2)在视图类的OnDraw(CDC*pDC)函数中使用vtkMFCWindow对象调用图形显示函数,完成图形的显示;
(3)在文档类中建立映射器vtkMapper和vtkActor对象,将步骤六中的VTK模型数据UnstructuredGrid转化为图形显示在步骤七中的窗口中。
本发明的另一目的在于提供一种实施所述基于VTK的桁架天线的可视化方法的基于VTK的桁架天线的可视化系统,所述基于VTK的桁架天线的可视化系统包括:
单文档应用程序模块,用于采用开源的可视化工具VTK和微软的MFC类库搭建显示三维模型的可视化界面的单文档应用程序;
有限元模型信息模块,用于采用合适文件格式的TXT文本文档存储梁壳结构的有限元模型信息;
读取模块,用于读取设计的文件中的有限元模型信息到设计好的单文档的显示程序的数据结构中;
截面坐标计算模块,用于根据梁单元的截面信息和梁的两个结点的坐标信息,计算出两个截面上其它点的坐标,记录点的坐标和点的拓扑关系即创建一个实体的梁单元;
壳单元坐标计算模块,用于根据板单元的厚度和已知结点的坐标,计算带有厚度的壳单元的其它点的坐标;记录这个实体单元点的坐标和新点的拓扑关系即创建一个壳实体单元;
创建模块,对于所有的单元根据单元类型选择,创建板梁模型所有的实体单元;根据板梁模型所有的实体单元信息,创建VTK中的数据集,搭建图形显示的可视化管道;
实体模型构建模块,用于建立VTK渲染引擎管线,组成完整的VTK流水线可视化管道显示生成的三维实体模型。
本发明的另一目的在于提供一种实现所述基于VTK的桁架天线的可视化方法的计算机程序。
本发明的另一目的在于提供一种实现所述基于VTK的桁架天线的可视化方法的信息数据处理终端。
本发明的另一目的在于提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行所述的基于VTK的桁架天线的可视化方法。
综上所述,本发明的优点及积极效果为:OpenGL一直被很多人用来进行图形显示系统的开发,但是其专业性交强,为了更高的显示效率使用c语言作为开发语言同样限制了图形系统开发的效率。为了提高OpenGL开发效率,降低学习难度,VTK出现了。VTK功能包是一种使用面向对象思想的基于OpenGL二次开发的图形可视化工具VTK功能包是使用的基于OpenGL的使用C++开发的图形可视化工具,它将常用的算法封装起来,细节隐藏起来,以类库的形式提供给可视化研究者和可视化程序的开发者,极大的简化图形显示的难度和提高了可视化软件开发的效率。VTK自带一些图形显示的交互器,大多数情况下可以直接使用。采用了基于VTK实现的桁架天线的可视化系统,相比使用OpenGL去开发更加的简单,且高效和容易显示出较好的效果。与此同时,本可视化系统,使用了三维显示的表面显示,相比于完全实体显示,显示的更快速高效。
下表1是使用VTK显示三维模型相对于OpenGL显示的对比。
表1是VTK和OpenGL显示图形得到对比
OpenGL | VTK | |
开发语言 | C语言 | C++、Java |
开发效率 | 较低 | 高效 |
应用难度 | 较难 | 简单 |
显示效果 | 一般 | 较好 |
附图说明
图1是本发明实施例提供的基于VTK的桁架天线的可视化系统结构示意图;
图中:1、单文档应用程序模块;2、有限元模型信息模块;3、读取模块;4、截面坐标计算模块;5、壳单元坐标计算模块;6、创建模块;7、实体模型构建模块。
图2是本发明实施例提供的基于VTK的桁架天线的可视化方法流程图。
图3是本发明实施例提供的基于VTK的桁架天线的可视化方法的程序框架图。
图4是本发明实施例提供的表示读取文件的格式示意图。
图5是本发明实施例提供的保存数据的格式示意图。
图6是本发明实施例提供的表示一个桁架天线的线面模型的例子示意图。
图7是本发明实施例提供的表示一个桁架天线的实体模型的例子示意图。
图8是本发明实施例提供的三维显示流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有大多商用的有限元分析软件在建立板梁结构的有限元模型时都是使用线、面的结构作为代替;使用梁板单元划分单元后,才显示成实体模型。本发明既可以显示由线面组成的板梁三维模型,也可以显示板梁结构的三维实体模型的实现方法。
下面结合附图对本发明的应用原理作详细的描述。
如图1所示,本发明实施例提供的基于VTK的桁架天线的可视化系统包括:
单文档应用程序模块1,用于采用开源的可视化工具VTK和微软的MFC类库搭建显示三维模型的可视化界面的单文档应用程序;
有限元模型信息模块2,用于采用合适文件格式的TXT文本文档存储梁壳结构的有限元模型信息;信息包括的点、单元结点、单元截面和厚度信息;
读取模块3,用于读取设计的文件中的有限元模型信息到设计好的单文档的显示程序的数据结构中;
截面坐标计算模块4,用于根据梁单元的截面信息和梁的两个结点的坐标信息,计算出两个截面上其它点的坐标,记录点的坐标和点的拓扑关系即创建一个实体的梁单元;
壳单元坐标计算模块5,用于根据板单元的厚度和已知结点的坐标,计算带有厚度的壳单元的其它点的坐标;记录这个实体单元点的坐标和新点的拓扑关系即创建一个壳实体单元;
创建模块6,对于所有的单元根据单元类型选择,创建板梁模型所有的实体单元;根据板梁模型所有的实体单元信息,创建VTK中的数据集,搭建图形显示的可视化管道;
实体模型构建模块7,用于建立VTK渲染引擎管线,组成完整的VTK流水线可视化管道显示生成的三维实体模型。
如图2所示,本发明实施例提供的基于VTK的桁架天线的可视化方法包括以下步骤:
S201:采用开源的可视化工具VTK和微软的MFC类库来搭建显示三维模型的可视化界面的单文档应用程序;
S202:采用合适文件格式的TXT文本文档存储梁壳结构的有限元模型信息;信息包括的点、单元结点、单元截面和厚度信息;
S203:读取设计的文件中的有限元模型信息到设计好的单文档的显示程序的数据结构中;
S204:根据梁单元的截面信息和梁的两个结点的坐标信息,计算出两个截面上其它点的坐标,记录点的坐标和点的拓扑关系即创建一个实体的梁单元;
S205:根据板单元的厚度和已知结点的坐标,计算带有厚度的壳单元的其它点的坐标。记录这个实体单元点的坐标和新点的拓扑关系即创建一个壳实体单元;
S206:对于所有的单元根据单元类型选择执行步骤S205、步骤S206,创建板梁模型所有的实体单元;根据板梁模型所有的实体单元信息,创建VTK中的数据集,搭建图形显示的可视化管道;
S207:建立VTK渲染引擎管线,组成完整的VTK流水线可视化管道显示生成的三维实体模型。
在本发明的优选实施例中,步骤S101具体包括:
(1)依靠跨平台工具cmake以及VS2013开发集成环境安装开源可视化工具VTK。
(2)在VS2013下创建单文档应用程序,实现数据与数据显示的分离。
(3)将所有模型相关的数据放在单文档程序的文档类中,将和显示相关的数据放在视图类中,实现数据与显示的分离。在文档类中,创建VTK模型数据集,在视图类中创建vtkMFCWindow窗口类的对象作为视图的子窗口负责显示图形。应用程序的框架如下图2所示。
在本发明的优选实施例中,步骤S102具体包括:用如图3的文件的格式存储有限元模型数据。
在本发明的优选实施例中,步骤S103具体包括:根据步骤S102中设计的文件的格式存储有限元模型数据,读取数据具体分为:
(1)采用C++中的hash_map结构存储读入的模型相关数据,具体定义结点的结构体、梁单元的结构体、壳单元结构体、截面信息结构体、梁单元结点与截面上点对应关系结构体、壳单元上点与实体单元上点的对应关系结构体、实体单元结构体;创建结构体变量,作为hash_map结构的元素,更快的获取你所要获得的模型信息。
(2)读取数据使用C++标准库中负责文件操作的ifstream类读取文件中的数据。文件中的数据,按照固定格式先读入事先定义好的数据结构中,然后再统一进行处理。
在本发明的优选实施例中,步骤S104具体包括:显示实体梁单元分为:
(1)对于梁单元来说,从步骤3中获取到的单元结点和单元截面信息可以计算出结点所在截面上点的坐标。根据截面信息获取的拓扑关系创建VTK实体梁单元。
在计算截面上点时又分为:
1)先建立单元局部坐标系,局部坐标系的建立分为两种情况。梁的单元与Z轴平行或者不平行两种,计算截面上点的在局部坐标系中位置。这两种情况都指定沿第一个结点指向第二个结点的方向为局部坐标系的X轴方向。对于这个方向与Z轴平行的情况,指定全局坐标系的Y轴方向为局部坐标系Z轴方向局部坐标系的X轴方向和Y轴放向叉乘求得;至于局部坐标系X轴不予全局坐标系的Z平行的情况,局部坐标系的X轴与全局坐标系的Z轴叉乘求得局部坐标系的Y轴方向,然后X轴与Y轴叉乘求得局部坐标系的Z轴方向。求得坐标轴的方向之后,使用单位向量表示。
2)利用坐标变换,将局部坐标系中点的坐标,转换到全局坐标系中。转换所得点的坐标作为实体单元显示时所需的点。
(2)根据截面类型,得到点的拓扑关系。选择VTK中已有的实体单元代替。对于圆形截面的梁单元,使用多变形近似,这里使用六边形截面代替圆截面,计算六边形的上的点的坐标。然后使用六棱柱显示这个梁单元。对矩形单元计算矩形上点的坐标,然后使用四棱柱显示这根梁单元。至于其它截面可以对VTK进行二次开发,开发新的实体单元,显示更多的梁结构模型的截面形状。
在本发明的优选实施例中,步骤S105具体包括:壳单元,根据步骤S103中获取的壳单元结点和壳厚度信息具体显示步骤分为:
(1)计算出壳单元的法向量。
(2)根据壳单元的厚度信息,将所有结点沿着法向量方向和其反方向各平移厚度的一半,求得新的节点的坐标。
(3)在VTK中的寻找能够表达带有厚度的壳实体单元。一般的壳单元都是三角形和四边形壳。三角形壳单元用三棱柱单元显示。对于四边形壳找四棱柱的单元显示。
在本发明的优选实施例中,步骤S106具体包括:创建实体模型的数据集可分为以下步骤:
(1)创建实体模型所需的点集vtkPoints;
实体单元中的点是在创建单元时候动态计算产生并且单元之间会有公共点。这样当前计算的单元中的点,在其它单元中可能已将被计算并且被编号。如果不考虑这一点,就存在点编号的二异性。因此需要判断当前这个点是否已经被创建,如果已经被创建,直接将这个点的编号作为当前正在计算单元的点的编号,如果还没有计算,计算并且编号。
(2)根据单元的编号以及截面信息的结合步骤4中的方法,创建对应的VTK实体单元。
(3)根据单元编号和单元类型结合步骤5中的方法,创建对应的VTK实体单元。
(4)将创建的点集和单元集合组成VTK模型UnstructuredGrid数据集。
在本发明的优选实施例中,步骤S107具体包括:建立VTK可视化管道分为:
(1)在单文档可视化程序的视图类中定义vtkRender、vtkMFCWindow对象,完成显示需要的渲染器和显示窗口的创建。
(2)在视图类的OnDraw(CDC*pDC)函数中使用vtkMFCWindow对象调用图形显示函数,完成图形的显示。
(3)在文档类中建立映射器vtkMapper和vtkActor对象,将步骤S106中的VTK模型数据UnstructuredGrid转化为图形显示在步骤S107中的窗口中。
具体实施例
以一个六边形桁架天线模型为例,使用本方法显示的六边形桁架线面模型如图6所示,实体模型如图7所示。结合说明书附图具体实施步骤如下:
第一步:桁架天线模型的信息按照如图2格式存储在文本文档中。信息中包含点的信息和单元的信息。单元中只包含beam梁单元以及梁截面信息。
第二步:创建单文档应用程序,主要生成的类有文档类CvtkSDIDoc、视图类CvtkSDIView以及框架类CMainFrame。在文档类CvtkSDIDoc中定义vtkPoints、vtkCellArray、vtkUnstructured类的对象,以及单元类型数组int*type和int*S_M_type。在视图类中定义vtkRender、vtkMFCWindow类的对象,/*在文档类中定义点、单元、不规则数据集对象如下*/
vtkPoints*points;//线框数据点集
vtkPoints*S_M_points;//表面模型的点集
vtkCellArray*cellarray;//线框单元集合
vtkCellArray*S_M_cellarray;//表面模型的集合
int*type;//线框模型单元类型
int*S_M_type;//表面模型单元类型
vtkUnstructuredGrid*cubeGrid;//线框模型数据集
vtkUnstructuredGrid*S_M_cubeGrid;//表面模型的数据集
//在视图类中定义:
vtkRenderer*pvtkRenderer;//定义渲染器
vtkMFCWindow*pvtkMFCWindow;//定义VTK自带的显示窗口
第三步:定义自定义数据结构存储模型信息,定义selfdefineDataType.h头文件用来放置所有的自定义类型的声明,核心代码如下
第四步:读取数据到第三步定义的自定义数据结构中,然后统一处理。读取数据的核心代码如下:
第五步:在读取数据之后,需要根据模型的信息,创建指定的单元的类型。对于六边形桁架来说,经过分析,指定六棱柱单元来显示周边桁架天线。
在文档类中定义:vtkHexagonalPrism**liulengzhu;//六边形梁单元
创建六边形桁架模型中的线单元和实体单元的以及创建实体单元数据集的核心代码如下:
第六步:搭建可视化管道
搭建可视化管道核心代码:
在文档类中定义:
第七步:并在视图类中通过vtkMFCWindow对象调用OnDraw()函数建立渲染引擎。通过上述步骤显示出来的六边形桁架天线的如图6和7所示。渲染引擎的具体核心代码如下:
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于VTK的桁架天线的可视化方法,其特征在于,所述基于VTK的桁架天线的可视化方法包括:
步骤一,采用开源的可视化工具VTK和微软的MFC类库来搭建显示三维模型的可视化界面的单文档应用程序;
步骤二,采用合适文件格式的TXT文本文档存储梁壳结构的有限元模型信息;信息包括的点、单元结点、单元截面和厚度信息;
步骤三,读取设计格式的文件中的有限元模型信息到设计好的单文档的显示程序的数据结构中;
步骤四,根据梁单元的截面信息和梁的两个结点的坐标信息,计算出两个截面上其它点的坐标,记录点的坐标和点的拓扑关系即创建一个实体的梁单元;
步骤五,根据板单元的厚度和已知结点的坐标,计算带有厚度的壳单元的其它点的坐标;记录这个实体单元点的坐标和新点的拓扑关系即创建一个壳实体单元;
步骤六,对于所有的单元根据单元类型选择执行步骤五、步骤六,创建板梁模型所有的实体单元;根据板梁模型所有的实体单元信息,创建VTK中的数据集,搭建图形显示的可视化管道;
步骤七,建立VTK渲染引擎管线,组成完整的VTK流水线可视化管道显示生成的三维实体模型。
2.如权利要求1所述的基于VTK的桁架天线的可视化方法,其特征在于,所述步骤一具体包括:
(1)安装开源可视化工具VTK;
(2)创建单文档应用程序,实现数据与数据显示的分离;
(3)数据与显示的分离;在文档类中,创建VTK模型数据集,在视图类中创建vtkMFCWindow窗口类的对象作为视图的子窗口负责显示图形。
3.如权利要求1所述的基于VTK的桁架天线的可视化方法,其特征在于,所述步骤二的文件的格式存储有限元模型数据。
4.如权利要求1所述的基于VTK的桁架天线的可视化方法,其特征在于,所述步骤三读取数据具体包括:
(1)采用C++中的hash_map结构存储读入的模型相关数据,创建结构体变量,作为hash_map结构的元素,获取所要获得的模型信息;
(2)读取数据使用C++标准库中负责文件操作的ifstream类读取文件中的数据;文件的数据,按照固定格式先读入事先定义好的数据结构中,统一进行处理。
5.如权利要求1所述的基于VTK的桁架天线的可视化方法,其特征在于,所述步骤四具体包括:
(1)获取到的单元结点和单元截面信息计算出结点所在截面上点的坐标;根据截面信息获取的拓扑关系创建VTK实体梁单元;
在计算截面上点时分为:建立单元局部坐标系,局部坐标系的建立分为两种情况;利用坐标变换,将局部坐标系中点的坐标,转换到全局坐标系中,转换所得点的坐标作为实体单元显示时所需的点的坐标;
(2)根据截面类型,得到点的拓扑关系,使用六边形截面代替圆截面,计算六边形的上的点的坐标;使用六棱柱显示这个梁单元,对矩形单元计算矩形上点的坐标,使用四棱柱显示这根梁单元。
6.如权利要求1所述的基于VTK的桁架天线的可视化方法,其特征在于,所述步骤五获取的壳单元结点和壳厚度信息具体显示具体包括:
(1)计算出壳单元的法向量;
(2)根据壳单元的厚度信息,将所有结点沿着法向量方向和其反方向各平移厚度的一半,求得新的节点的坐标;
(3)在VTK中的寻找能够表达带有厚度的壳实体单元;三角形壳单元用三棱柱单元显示,对于四边形壳找四棱柱的单元显示;
所述步骤六创建实体模型的数据集具体包括:
(1)创建实体模型所需的点集vtkPoints,判断当前点是否已经被创建,如果已经被创建,直接将这个点的编号作为当前正在计算单元的点的编号,如果还没有计算,计算并且编号;
(2)根据单元的编号以及截面信息的结合步骤四的方法,创建对应的VTK实体单元;
(3)根据单元编号和单元类型结合步骤五中的方法,创建对应的VTK实体单元;
(4)将创建的点集和单元集合组成VTK模型UnstructuredGrid数据集;
所述步骤七建立VTK可视化管道具体包括:
(1)在单文档可视化程序的视图类中定义vtkRender、vtkMFCWindow对象,完成显示需要的渲染器和显示窗口的创建;
(2)在视图类的OnDraw(CDC*pDC)函数中使用vtkMFCWindow对象调用图形显示函数,完成图形的显示;
(3)在文档类中建立映射器vtkMapper和vtkActor对象,将步骤六中的VTK模型数据UnstructuredGrid转化为图形显示在步骤七中的窗口中。
7.一种实施权利要求1所述基于VTK的桁架天线的可视化方法的基于VTK的桁架天线的可视化系统,其特征在于,所述基于VTK的桁架天线的可视化系统包括:
单文档应用程序模块,用于采用开源的可视化工具VTK和微软的MFC类库搭建显示三维模型的可视化界面的单文档应用程序;
有限元模型信息模块,用于采用合适文件格式的TXT文本文档存储梁壳结构的有限元模型信息;
读取模块,用于读取设计的文件中的有限元模型信息到设计好的单文档的显示程序的数据结构中;
截面坐标计算模块,用于根据梁单元的截面信息和梁的两个结点的坐标信息,计算出两个截面上其它点的坐标,记录点的坐标和点的拓扑关系即创建一个实体的梁单元;
壳单元坐标计算模块,用于根据板单元的厚度和已知结点的坐标,计算带有厚度的壳单元的其它点的坐标;记录这个实体单元点的坐标和新点的拓扑关系即创建一个壳实体单元;
创建模块,对于所有的单元根据单元类型选择,创建板梁模型所有的实体单元;根据板梁模型所有的实体单元信息,创建VTK中的数据集,搭建图形显示的可视化管道;
实体模型构建模块,用于建立VTK渲染引擎管线,组成完整的VTK流水线可视化管道显示生成的三维实体模型。
8.一种实现权利要求1~6任意一项所述基于VTK的桁架天线的可视化方法的计算机程序。
9.一种实现权利要求1~6任意一项所述基于VTK的桁架天线的可视化方法的信息数据处理终端。
10.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-6任意一项所述的基于VTK的桁架天线的可视化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810943949.3A CN109388843B (zh) | 2018-08-18 | 2018-08-18 | 一种基于vtk的桁架天线的可视化系统及方法、终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810943949.3A CN109388843B (zh) | 2018-08-18 | 2018-08-18 | 一种基于vtk的桁架天线的可视化系统及方法、终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109388843A true CN109388843A (zh) | 2019-02-26 |
CN109388843B CN109388843B (zh) | 2023-04-18 |
Family
ID=65418408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810943949.3A Active CN109388843B (zh) | 2018-08-18 | 2018-08-18 | 一种基于vtk的桁架天线的可视化系统及方法、终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109388843B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489725A (zh) * | 2019-07-08 | 2019-11-22 | 浙江兴土桥梁临时钢结构工程有限公司 | 三维可视化方法、装置、计算机设备及其存储介质 |
CN110795491A (zh) * | 2019-11-05 | 2020-02-14 | 上海波客实业有限公司 | 一种结构参数信息可视化方法 |
CN113538687A (zh) * | 2021-06-08 | 2021-10-22 | 广州颖力土木科技有限公司 | 基于vtk的有限元可视化方法、系统、装置及存储介质 |
CN115344530A (zh) * | 2022-10-18 | 2022-11-15 | 西安电子科技大学 | 一种基于vtk格式的多物理场单一数据文件表示方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001027858A1 (en) * | 1999-10-13 | 2001-04-19 | The Trustees Of Columbia University In The City Of New York | Petroleum reservoir simulation and characterization system and method |
US20160026646A1 (en) * | 2012-11-28 | 2016-01-28 | Korea Institute Of Science And Technology Information | Recording medium having data recorded therein in data file format structure for visualization of large capacity cfd parallel data and method for generating said data file format structure |
CN105354355A (zh) * | 2015-09-28 | 2016-02-24 | 中国人民解放军辽宁省军区装备部军械修理所 | 一种基于三维运动视景的仿真系统设计与实现方法 |
-
2018
- 2018-08-18 CN CN201810943949.3A patent/CN109388843B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001027858A1 (en) * | 1999-10-13 | 2001-04-19 | The Trustees Of Columbia University In The City Of New York | Petroleum reservoir simulation and characterization system and method |
US20160026646A1 (en) * | 2012-11-28 | 2016-01-28 | Korea Institute Of Science And Technology Information | Recording medium having data recorded therein in data file format structure for visualization of large capacity cfd parallel data and method for generating said data file format structure |
CN105354355A (zh) * | 2015-09-28 | 2016-02-24 | 中国人民解放军辽宁省军区装备部军械修理所 | 一种基于三维运动视景的仿真系统设计与实现方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489725A (zh) * | 2019-07-08 | 2019-11-22 | 浙江兴土桥梁临时钢结构工程有限公司 | 三维可视化方法、装置、计算机设备及其存储介质 |
CN110489725B (zh) * | 2019-07-08 | 2023-08-08 | 兴土股份有限公司 | 三维可视化方法 |
CN110795491A (zh) * | 2019-11-05 | 2020-02-14 | 上海波客实业有限公司 | 一种结构参数信息可视化方法 |
CN110795491B (zh) * | 2019-11-05 | 2023-06-06 | 上海波客实业有限公司 | 一种结构参数信息可视化方法 |
CN113538687A (zh) * | 2021-06-08 | 2021-10-22 | 广州颖力土木科技有限公司 | 基于vtk的有限元可视化方法、系统、装置及存储介质 |
CN115344530A (zh) * | 2022-10-18 | 2022-11-15 | 西安电子科技大学 | 一种基于vtk格式的多物理场单一数据文件表示方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109388843B (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109388843A (zh) | 一种基于vtk的桁架天线的可视化系统及方法、终端 | |
Lin et al. | Visualization of indoor thermal environment on mobile devices based on augmented reality and computational fluid dynamics | |
Arroyo Ohori et al. | Modeling cities and landscapes in 3D with CityGML | |
Ai et al. | A vector field model to handle the displacement of multiple conflicts in building generalization | |
Li et al. | A stroke-based method for automated generation of schematic network maps | |
CN110134752A (zh) | 三维大场景建模数据处理方法及装置 | |
Ackerman et al. | Computational modeling for climate change: Simulating and visualizing a resilient landscape architecture design approach | |
Zhou et al. | OutDet: an algorithm for extracting the outer surfaces of building information models for integration with geographic information systems | |
Xu et al. | Integration of a computational grid and virtual geographic environment to facilitate air pollution simulation | |
Zou et al. | Characteristics of models that impact transformation of BIMs to virtual environments to support facility management operations | |
Zhou et al. | Automated extraction of 3D vector topographic feature line from terrain point cloud | |
US20120191423A1 (en) | Method for local refinement of geometric or physical representation | |
Binucci et al. | 10 reasons to get interested in graph drawing | |
De Roo et al. | Bridging archaeology and GIS: influencing factors for a 4D archaeological GIS | |
CN114627971B (zh) | 用于固体系统的数据处理方法和装置 | |
CN116049501A (zh) | 一种空间场景空间关系自然语言描述生成方法 | |
KR101842681B1 (ko) | 대규모 생물학적 네트워크를 자동적으로 시각화하는 방법 및 장치 | |
JP3940834B2 (ja) | 数値地図情報データを用いた解析作業支援cae装置 | |
Janssen et al. | Parametric Modelling with GIS | |
CN114116948A (zh) | 地理矢量数据空间缓冲区分析方法、装置、设备及介质 | |
Pascaul et al. | An architecture for geographic information systems on the web-WebGIS | |
Germanaitė et al. | How to describe basic urban pattern in geographic information systems | |
Ma et al. | A Displacement Algorithm Considering Geometry Constraints to Resolve Spatial Conflicts between Roads and Buildings | |
Mascarenhas et al. | Isocontour based visualization of time-varying scalar fields | |
Fricke et al. | A virtual 3d city model for urban planning and decision-making-the east jerusalem case |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |